summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw@amazon.co.uk>2026-08-31 22:26:38 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2026-09-04 17:34:05 +0200
commit1835551d4304abb1edcbf5d1ba71945279051236 (patch)
treebbcaaa5993b44902dfc3a728e7ece4f4bd05351b /tools/perf/scripts/python
parenteacdb76c5f04956035c5d7f7e1973028f30684a2 (diff)
downloadlinux-next-1835551d4304abb1edcbf5d1ba71945279051236.tar.gz
linux-next-1835551d4304abb1edcbf5d1ba71945279051236.zip
KVM: x86/xen: Use 32-bit locked bts for vcpu_info evtchn_pending_sel
Replace test_and_set_bit() on vcpu_info->evtchn_pending_sel with an explicit 'lock btsl' in kvm_xen_set_evtchn_fast(). The generic test_and_set_bit() uses a 64-bit locked operation ('lock btsq') on x86-64, and the address of the per-vCPU info is guest-controlled and only required to be 32-bit aligned, so an 8-byte access can generate a split-lock #AC exception. Since evtchn_pending_sel is at most 64 bits wide and port_word_bit ranges 0-63, a 32-bit 'lock btsl' suffices for both native and compat vcpu_info layouts, and only requires the 4-byte alignment that is already guaranteed by the registration path. This also eliminates the bogus cast of compat_vcpu_info's 32-bit evtchn_pending_sel to 'unsigned long *' which was the original source of the split-lock hazard. Note, KVM reuses the local gpc. The atomic accesses to pending_bits is on the page-aligned per-VM shared_info structure, i.e. doesn't need the same treatment as the access is guaranteed to be 64-bit aligned. Fixes: 14243b387137 ("KVM: x86/xen: Add KVM_IRQ_ROUTING_XEN_EVTCHN and event channel delivery") Reported-by: sashiko-bot@kernel.org Closes: https://lore.kernel.org/all/20260604193554.1BA311F00893@smtp.kernel.org Suggested-by: Sean Christopherson <seanjc@google.com> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> Assisted-by: Claude:claude-mythos-5 Reviewed-by: Paul Durrant <paul@xen.org> Link: https://patch.msgid.link/20260831213632.81023-8-dwmw2@infradead.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions