diff options
| author | Sean Christopherson <seanjc@google.com> | 2021-10-08 19:12:17 -0700 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2021-12-08 04:24:56 -0500 |
| commit | 29802380b6793eabcac648e1c097c7bd6333f3d4 (patch) | |
| tree | 2a26904bb189ac6d3f119873e493792f38c4c06b /tools/perf/scripts/python/syscall-counts.py | |
| parent | KVM: VMX: Use boolean returns for Posted Interrupt "test" helpers (diff) | |
| download | linux-29802380b6793eabcac648e1c097c7bd6333f3d4.tar.gz linux-29802380b6793eabcac648e1c097c7bd6333f3d4.zip | |
KVM: VMX: Drop pointless PI.NDST update when blocking
Don't update Posted Interrupt's NDST, a.k.a. the target pCPU, in the
pre-block path, as NDST is guaranteed to be up-to-date. The comment
about the vCPU being preempted during the update is simply wrong, as the
update path runs with IRQs disabled (from before snapshotting vcpu->cpu,
until after the update completes).
Since commit 8b306e2f3c41 ("KVM: VMX: avoid double list add with VT-d
posted interrupts", 2017-09-27) The vCPU can get preempted _before_
the update starts, but not during. And if the vCPU is preempted before,
vmx_vcpu_pi_load() is responsible for updating NDST when the vCPU is
scheduled back in. In that case, the check against the wakeup vector in
vmx_vcpu_pi_load() cannot be true as that would require the notification
vector to have been set to the wakeup vector _before_ blocking.
Opportunistically switch to using vcpu->cpu for the list/lock lookups,
which do not need pre_pcpu since the same commit.
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20211009021236.4122790-25-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts.py')
0 files changed, 0 insertions, 0 deletions
