summaryrefslogtreecommitdiffstats
path: root/certs/check-blacklist-hashes.awk
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2024-06-07 19:26:05 +0200
committerSean Christopherson <seanjc@google.com>2024-06-28 17:59:04 +0200
commit32f55e475ce2c4b8b124d335fcfaf1152ba977a1 (patch)
tree1198ebcb805decd54f53d9bc68ddd6d3fc4e8d0d /certs/check-blacklist-hashes.awk
parentKVM: nVMX: Add a helper to get highest pending from Posted Interrupt vector (diff)
downloadlinux-32f55e475ce2c4b8b124d335fcfaf1152ba977a1.tar.xz
linux-32f55e475ce2c4b8b124d335fcfaf1152ba977a1.zip
KVM: nVMX: Request immediate exit iff pending nested event needs injection
When requesting an immediate exit from L2 in order to inject a pending event, do so only if the pending event actually requires manual injection, i.e. if and only if KVM actually needs to regain control in order to deliver the event. Avoiding the "immediate exit" isn't simply an optimization, it's necessary to make forward progress, as the "already expired" VMX preemption timer trick that KVM uses to force a VM-Exit has higher priority than events that aren't directly injected. At present time, this is a glorified nop as all events processed by vmx_has_nested_events() require injection, but that will not hold true in the future, e.g. if there's a pending virtual interrupt in vmcs02.RVI. I.e. if KVM is trying to deliver a virtual interrupt to L2, the expired VMX preemption timer will trigger VM-Exit before the virtual interrupt is delivered, and KVM will effectively hang the vCPU in an endless loop of forced immediate VM-Exits (because the pending virtual interrupt never goes away). Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20240607172609.3205077-3-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'certs/check-blacklist-hashes.awk')
0 files changed, 0 insertions, 0 deletions