Cherry-picked 1b17cb796f5d40ffa239c6926385abd83a77a49b s390/fpu: signals vs. floating point control register
** Also affects: linux (Ubuntu Xenial) Importance: High Assignee: Andy Whitcroft (apw) Status: Triaged ** Changed in: linux (Ubuntu Xenial) Status: Triaged => Fix Committed ** Changed in: linux (Ubuntu Xenial) Assignee: Andy Whitcroft (apw) => Tim Gardner (timg-tpi) -- You received this bug notification because you are a member of नेपाली भाषा समायोजकहरुको समूह, which is subscribed to Xenial. Matching subscriptions: Ubuntu 16.04 Bugs 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 Committed Status in linux source package in Xenial: Fix Committed 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/~group.of.nepali.translators Post to : group.of.nepali.translators@lists.launchpad.net Unsubscribe : https://launchpad.net/~group.of.nepali.translators More help : https://help.launchpad.net/ListHelp