On Fri, Jul 02, 2021 at 02:01:47PM +0200, Laurent Vivier wrote: > Le 02/07/2021 à 12:34, Cornelia Huck a écrit : > > On Wed, Jun 23 2021, Ilya Leoshkevich <i...@linux.ibm.com> wrote: > > > >> qemu-s390x puts a wrong value into SIGILL's siginfo_t's psw.addr: it > >> should be a pointer to the instruction following the illegal > >> instruction, but at the moment it is a pointer to the illegal > >> instruction itself. This breaks OpenJDK, which relies on this value. > >> A similar problem exists for SIGFPE and SIGTRAP. > >> > >> Patch 1 fixes the issue, patch 2 adds a test. > >> > >> v1: https://lists.nongnu.org/archive/html/qemu-devel/2021-05/msg06592.html > >> v1 -> v2: Use a better buglink (Cornelia), simplify the inline asm > >> magic in the test and add an explanation (David). > >> > >> v2: https://lists.nongnu.org/archive/html/qemu-devel/2021-05/msg06649.html > >> v2 -> v3: Fix SIGSEGV handling (found when trying to run valgrind under > >> qemu-user). > >> > >> v3: https://lists.nongnu.org/archive/html/qemu-devel/2021-06/msg00299.html > >> v3 -> v4: Fix compiling the test on Ubuntu 20.04 (Jonathan). > >> > >> v4: https://lists.nongnu.org/archive/html/qemu-devel/2021-06/msg05848.html > >> v4 -> v5: Greatly simplify the fix (Ulrich). > >> > >> Note: the compare-and-trap SIGFPE issue is being fixed separately. > >> https://lists.nongnu.org/archive/html/qemu-devel/2021-06/msg05690.html > >> > >> Ilya Leoshkevich (2): > >> target/s390x: Fix SIGILL/SIGFPE/SIGTRAP psw.addr reporting > >> tests/tcg/s390x: Test SIGILL and SIGSEGV handling > >> > >> linux-user/s390x/cpu_loop.c | 5 + > >> tests/tcg/s390x/Makefile.target | 1 + > >> tests/tcg/s390x/signal.c | 165 ++++++++++++++++++++++++++++++++ > >> 3 files changed, 171 insertions(+) > >> create mode 100644 tests/tcg/s390x/signal.c > > > > What's the status of this and > > <20210621141452.2045-1-jonathan.albre...@linux.vnet.ibm.com>? linux-user > > is not really my turf, but it would be sad if this fell through the > > cracks. > > > > If from the S390x point of view they are correct, I can collect them via > linux-user.
It's certainly correct that SIGILL, SIGFPE and SIGTRAP are delivered with psw.addr pointing *after* the faulting instruction, that forms in effect part of the kernel ABI on s390x. We're planning to document this in the next revision of the ABI document, see here: https://github.com/IBM/s390x-abi/issues/2 I can also confirm that this patch fixes the problems I was seeing when running the s390x wasmtime JIT under qemu. Bye, Ulrich -- Dr. Ulrich Weigand GNU/Linux compilers and toolchain ulrich.weig...@de.ibm.com