Update: this also reproduces as a ring-0 VMM assertion (Guru Meditation), not only an RCU stall, and it lands in the nested-paging (EPT) code
Description
Intermittent permanent RCU expedited stall in a Linux SMP guest, beginning 2-4 seconds after kernel start. One secondary vCPU (varies per boot; observed CPU 1 and CPU 4) stops responding to expedited grace period IPIs while idle in pv_native_safe_halt and never wakes again. The stall never resolves; observed for 68+ minutes, with the jiffies counter in the stall reports tracking uptime back to roughly t+2s.
Depending on when it lands, the guest either hangs visibly during boot, or comes up half-wedged: the lightdm greeter renders black while ModemManager, systemd-hostnamed, fail2ban-server and dockerd accumulate hung-task warnings (blocked > 241s) behind synchronize_rcu_expedited.
The NMI watchdog backtrace DOES reach the stuck vCPU (RIP: pv_native_safe_halt+0xf/0x20, trace default_idle -> default_idle_call -> do_idle -> cpu_startup_entry -> start_secondary), so NMI delivery works while the normal IPI wakeup path does not. The host-side VBox.log for stalled sessions is clean: native VT-x ("VT-x w/ nested paging and unrestricted guest execution hw support", no NEM fallback), no guru meditation, no timer catch-up warnings.
Guest kernel 6.19.14+kali-amd64 on the identical VM has never shown this across months of daily use, including clean boots today interleaved with 7.0.12 failures. Upgrading VirtualBox 7.2.8 -> 7.2.12 did not change behavior; the attached log is a 7.2.12 stall session.
Frequency
2026-07-14: at least five stalled boots and one fully clean boot of guest kernel 7.0.12, across VirtualBox 7.2.8 and 7.2.12 on the same host. Guest kernel 6.19.14: zero failures ever. No deterministic trigger found; behavior is consistent with a timing race in waking a halted vCPU.
Guest dmesg excerpts
Early-hang boot (7.2.8 host, victim CPU 1, 68 minutes into the stall):
rcu: INFO: rcu_preempt detected expedited stalls on CPUs/tasks: { 1-...D } 1021209 jiffies s: 249 root: 0x2/.
rcu: blocking rcu_node structures (internal RCU debug):
NMI backtrace for cpu 1
CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Tainted: G W OE 7.0.12+kali-amd64 #1 PREEMPT(lazy) Kali 7.0.12-2kali1
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
RIP: 0010:pv_native_safe_halt+0xf/0x20
default_idle+0x9/0x20
default_idle_call+0x2f/0x130
do_idle+0x27a/0x2b0
cpu_startup_entry+0x29/0x30
start_secondary+0x126/0x180
common_startup_64+0x13e/0x141
Late-stall boot (7.2.12 host, victim CPU 4; reports repeat every ~63s with jiffies tracking uptime):
[ 25.596153] rcu: INFO: rcu_preempt detected expedited stalls on CPUs/tasks: { 4-...D } 5463 jiffies s: 541 root: 0x10/.
[ 89.054636] rcu: INFO: rcu_preempt detected expedited stalls on CPUs/tasks: { 4-...D } 21335 jiffies s: 541 root: 0x10/.
[ 152.507686] ... 37207 jiffies ...
[ 342.877738] ... 84823 jiffies ...
[ 363.347161] INFO: task ModemManager:896 blocked for more than 241 seconds.
[ 363.347560] INFO: task ModemManager:896 is blocked on a mutex likely owned by task (systemd-hostn):899.
[ 363.347656] INFO: task (systemd-hostn):899 blocked for more than 241 seconds.
[ 363.347991] INFO: task (fail2ban-serv):1017 blocked for more than 241 seconds.
[ 363.348299] INFO: task dockerd:1086 blocked for more than 241 seconds.
Blocked tasks show synchronize_rcu_expedited+0xd8/0x220 in their stacks.
Environment
- Host: Windows 11 Pro 10.0.26200.8655, Intel Core i9-13900K (hybrid, 8 P + 16 E cores), 64 GB RAM
- VirtualBox: 7.2.8 r173730 and 7.2.12 r174389 (both reproduce)
- Guest: Kali rolling, kernel 7.0.12-2kali1 (
7.0.12+kali-amd64, PREEMPT_DYNAMIC, lazy preemption). Known good on same VM: 6.19.14+kali-amd64
- Guest Additions: 7.2.8 r173730 (ISO install)
- VM config: 8 vCPUs, ICH9, BIOS firmware, 16 GB RAM, IO-APIC on, x2APIC on, paravirt provider KVM (GIM KVM active, TSC mode RealTSCOffset), nested paging on, unrestricted guest on, large pages on, VMSVGA with 3D disabled. Nested VT-x was enabled during all failures above.
Workaround
Pinning the guest to kernel 6.19.14 on the identical VM configuration avoids the issue reliably (months of use, zero failures, including clean boots interleaved with 7.0.12 failures on the same day). No VM configuration change (vCPU count, x2APIC, nested VT-x, paravirt provider) was tested as a workaround.
Attachments
VBox.log of the 7.2.12 stall session (victim CPU 4) is attached in the first comment. Guest-side screenshots of both stall variants available, plus full guest kernel journal on request.
Update: this also reproduces as a ring-0 VMM assertion (Guru Meditation), not only an RCU stall, and it lands in the nested-paging (EPT) code
Description
Intermittent permanent RCU expedited stall in a Linux SMP guest, beginning 2-4 seconds after kernel start. One secondary vCPU (varies per boot; observed CPU 1 and CPU 4) stops responding to expedited grace period IPIs while idle in
pv_native_safe_haltand never wakes again. The stall never resolves; observed for 68+ minutes, with the jiffies counter in the stall reports tracking uptime back to roughly t+2s.Depending on when it lands, the guest either hangs visibly during boot, or comes up half-wedged: the lightdm greeter renders black while ModemManager, systemd-hostnamed, fail2ban-server and dockerd accumulate hung-task warnings (blocked > 241s) behind
synchronize_rcu_expedited.The NMI watchdog backtrace DOES reach the stuck vCPU (RIP:
pv_native_safe_halt+0xf/0x20, tracedefault_idle -> default_idle_call -> do_idle -> cpu_startup_entry -> start_secondary), so NMI delivery works while the normal IPI wakeup path does not. The host-side VBox.log for stalled sessions is clean: native VT-x ("VT-x w/ nested paging and unrestricted guest execution hw support", no NEM fallback), no guru meditation, no timer catch-up warnings.Guest kernel 6.19.14+kali-amd64 on the identical VM has never shown this across months of daily use, including clean boots today interleaved with 7.0.12 failures. Upgrading VirtualBox 7.2.8 -> 7.2.12 did not change behavior; the attached log is a 7.2.12 stall session.
Frequency
2026-07-14: at least five stalled boots and one fully clean boot of guest kernel 7.0.12, across VirtualBox 7.2.8 and 7.2.12 on the same host. Guest kernel 6.19.14: zero failures ever. No deterministic trigger found; behavior is consistent with a timing race in waking a halted vCPU.
Guest dmesg excerpts
Early-hang boot (7.2.8 host, victim CPU 1, 68 minutes into the stall):
Late-stall boot (7.2.12 host, victim CPU 4; reports repeat every ~63s with jiffies tracking uptime):
Blocked tasks show
synchronize_rcu_expedited+0xd8/0x220in their stacks.Environment
7.0.12+kali-amd64, PREEMPT_DYNAMIC, lazy preemption). Known good on same VM:6.19.14+kali-amd64Workaround
Pinning the guest to kernel 6.19.14 on the identical VM configuration avoids the issue reliably (months of use, zero failures, including clean boots interleaved with 7.0.12 failures on the same day). No VM configuration change (vCPU count, x2APIC, nested VT-x, paravirt provider) was tested as a workaround.
Attachments
VBox.log of the 7.2.12 stall session (victim CPU 4) is attached in the first comment. Guest-side screenshots of both stall variants available, plus full guest kernel journal on request.