------- Comment From a.efrem...@ru.ibm.com 2016-03-04 07:54 EDT------- Verified on kernel 4.4.0-9 on a VM.
root@s3529003:~# uname -a Linux s3529003 4.4.0-9-generic #24-Ubuntu SMP Mon Feb 29 19:30:59 UTC 2016 s390x s390x s390x GNU/Linux root@s3529003:~# gcc-5 -o test test.c root@s3529003:~# ./test registering signal handler firing trap received signal! fpc: 0000ff00 FPC is set correctly -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1548414 Title: Floating-point exception handler receives empty Data-Exception Code in Floating Point Control register Status in linux package in Ubuntu: Fix Released Status in linux source package in Xenial: Fix Released Bug description: == Comment: #0 - Alexander Efremkin <a.efrem...@ru.ibm.com> - 2016-02-17 12:18:14 == With a C program sets FPE handler and triggers an FPE exception, it expects that machine-dependent context data, which is passed to the handler, will contain sensible values. In this scenario, however, FPC register was zero and contained no DXC (Data-Exception Code) indication: #include <stdio.h> #include <string.h> #include <signal.h> void trapFunction() { asm volatile ("lhi %r1,0\n\t" "cit %r1,0,8\n\t"); } static void sigFPE_handler(int signal, siginfo_t *info, void *context) { ucontext_t *uc = context; mcontext_t mc = uc->uc_mcontext; fpregset_t fpregs = mc.fpregs; unsigned int fpc = fpregs.fpc; printf("received signal!\n"); printf("fpc: %08x\n", fpc ); } int main() { struct sigaction action; memset(&action, '\0', sizeof(action)); printf("registering signal handler\n"); action.sa_flags |= SA_SIGINFO; action.sa_sigaction = sigFPE_handler; if (sigaction(SIGFPE, &action, NULL)) printf("error calling sigaction\n"); printf("firing trap\n"); trapFunction(); return 0; } This program prints "fpc: 00000000", but the expected output is "fpc: 0000ff00".. The IBM Java team has encountered test failures around the use of trap instructions; Linux on z Distribution Test reproduced the issue on the following system: z13 LPAR Ubuntu 16.04 Kernel 4.4.0-4-generic gcc (Ubuntu 5.3.1-8ubuntu2) 5.3.1 20160205 libc6 2.21-0ubuntu5 Also, similar issue has been found during test of SIMD (vector) instructions, FPC contents was also zero, whereas it expected at least an exception mask and vector-defined DXC. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1548414/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp