VirtualBox fails to run correctly under kernel 5.18.0. I noticed a problem in the 5.18-rcX cycle and bisected the problem to commit 6e8ec2552c7d ("random: use computational hash for entropy extraction"). That commit has been confirmed as the one causing the problem. We now know the cause. The changes in the random number generator employ the SSSE3 instructions. which in turn affects the FPU. The current belief is that the VirtualBox vcpu is not saving the state of the FPU when a hard IRQ occurs. If any code using SSSE3 runs in the host during that interrupt, the state of the FPU in the guest is incorrect, and the guest gets a kernel exception. Thus far, the only kernel code using that instruction set is the random number generator. It is easy to test for this condition. In the guest start a multi-cpu build of the kernel, or some other large project. Within a few seconds, gcc will get an error. The attached patch will cause rng not to use SSSE3 instructions, thereby bypassing the problem. Generation of random numbers may be a bit slower, but have no loss of robustness. If possible, I would like the patch applied to 5.18.X kernels until Oracle fixes the problem. Finding the fault is beyond my understanding of the implementation of virtual CPUs. Larry Finger - openSUSE VirtualBox Maintainer
participants (1)
-
Larry Finger