Okay, I need to figure out whether this Java crash on s390x is a user-mode or system-mode issue. Let's start by looking at the error message. The problem occurs when running `java --version` and results in a SIGILL (illegal instruction) signal. The error points to the function __kernel_getcpu+0x8 in the file linux-vdso64.so.1. That's part of the kernel's virtual dynamic shared object, which is used for certain system calls. SIGILL usually means an illegal or unrecognized machine instruction was executed. In this case, it's happening in a library provided by the Linux kernel (vdso), so that suggests something is wrong with how the kernel is handling these instructions. Looking deeper, since it's on an s390x architecture, which is IBM Z/Architecture, there might be specific CPU features or instruction sets being used. The Java runtime might be trying to use a feature that isn't supported in user-mode, but since vdso is part of the kernel, this could relate to system-level issues. The fact that it's in the vdso indicates it's not just a regular library but something provided by the kernel for efficient system calls. If the instruction causing the crash is at an offset within __kernel_getcpu, perhaps the guest CPU doesn't support that particular opcode when running under QEMU virtualization. QEMU might be emulating some instructions incorrectly or failing to pass through certain features required by the Java runtime on s390x. This could be a problem with how QEMU is handling the CPU model or the instruction set extensions needed for this specific operation. Since the issue arises in the kernel's vdso and involves an illegal instruction, it seems more related to system-level operations rather than user applications. The JVM isn't doing anything wrong; it's just encountering an unexpected situation when interacting with the kernel's services. system