d2060bd42e
Add a kvm_x86_ops hook to detect a nested pending "hypervisor timer" and
use it to effectively open a window for servicing the expired timer.
Like pending SMIs on VMX, opening a window simply means requesting an
immediate exit.
This fixes a bug where an expired VMX preemption timer (for L2) will be
delayed and/or lost if a pending exception is injected into L2. The
pending exception is rightly prioritized by vmx_check_nested_events()
and injected into L2, with the preemption timer left pending. Because
no window opened, L2 is free to run uninterrupted.
Fixes:
|
||
---|---|---|
.. | ||
capabilities.h | ||
evmcs.c | ||
evmcs.h | ||
nested.c | ||
nested.h | ||
ops.h | ||
pmu_intel.c | ||
vmcs12.c | ||
vmcs12.h | ||
vmcs_shadow_fields.h | ||
vmcs.h | ||
vmenter.S | ||
vmx.c | ||
vmx.h |