diff options
| author | Sean Christopherson <[email protected]> | 2021-10-08 19:12:17 -0700 |
|---|---|---|
| committer | Paolo Bonzini <[email protected]> | 2021-12-08 04:24:56 -0500 |
| commit | 29802380b6793eabcac648e1c097c7bd6333f3d4 (patch) | |
| tree | 2a26904bb189ac6d3f119873e493792f38c4c06b /tools/perf/scripts/python/flamegraph.py | |
| parent | 74ba5bc872d3fb173b94fe9a1b8f6eaa807fc4ad (diff) | |
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 <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/flamegraph.py')
0 files changed, 0 insertions, 0 deletions