summaryrefslogtreecommitdiff
path: root/scripts/basic
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2021-10-09 05:12:21 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2021-12-08 12:24:57 +0300
commitbaed82c8e4893a3258267dad198e04691d2f7c09 (patch)
tree88e85fa1ff4c6f8eb758d58621c9290e0f73439e /scripts/basic
parent724b3962ef808388005b860450bfbef6bade26b3 (diff)
downloadlinux-baed82c8e4893a3258267dad198e04691d2f7c09.tar.xz
KVM: VMX: Remove vCPU from PI wakeup list before updating PID.NV
Remove the vCPU from the wakeup list before updating the notification vector in the posted interrupt post-block helper. There is no need to wake the current vCPU as it is by definition not blocking. Practically speaking this is a nop as it only shaves a few meager cycles in the unlikely case that the vCPU was migrated and the previous pCPU gets a wakeup IRQ right before PID.NV is updated. The real motivation is to allow for more readable code in the future, when post-block is merged with vmx_vcpu_pi_load(), at which point removal from the list will be conditional on the old notification vector. Opportunistically add comments to document why KVM has a per-CPU spinlock that, at first glance, appears to be taken only on the owning CPU. Explicitly call out that the spinlock must be taken with IRQs disabled, a detail that was "lost" when KVM switched from spin_lock_irqsave() to spin_lock(), with IRQs disabled for the entirety of the relevant path. Signed-off-by: Sean Christopherson <seanjc@google.com> Message-Id: <20211009021236.4122790-29-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'scripts/basic')
0 files changed, 0 insertions, 0 deletions