[kvm-unit-tests PATCH 0/8] x86: APIC bug fix and cleanup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Fix a bug introduced by the UEFI support where setup_tss() can race with
enable_x2apic() and crash the test due to attempting to read an x2APIC MSR
prior to enabling x2APIC (failure manifests in smptest3).

In an attempt to avoid similar bugs in the future, clean up the per-cpu
stuff and convert apic_ops into a per-cpu pointer.  32-bit KUT has a
chick-and-egg problem due to using the APIC ID to choose the selector
for GS (the per-cpu segment), so the original bug "has" to say on a
dedicated helper.

Sean Christopherson (8):
  x86: Always use legacy xAPIC to get APIC ID during TSS setup
  x86: nVMX: Load actual GS.base for both guest and host
  x86: smp: Replace spaces with tabs
  x86: desc: Replace spaces with tabs
  x86: Add proper helpers for per-cpu reads/writes
  x86: apic: Replace spaces with tabs
  x86: apic: Track APIC ops on a per-cpu basis
  x86: apic: Make xAPIC and I/O APIC pointers static

 lib/x86/apic-defs.h |   3 +-
 lib/x86/apic.c      | 157 ++++++++++++++++++++++++--------------------
 lib/x86/apic.h      |   5 +-
 lib/x86/desc.c      | 120 ++++++++++++++++-----------------
 lib/x86/desc.h      |  68 +++++++++----------
 lib/x86/setup.c     |   4 +-
 lib/x86/smp.c       | 128 +++++++++++++++++-------------------
 lib/x86/smp.h       |  67 +++++++++++++++++++
 x86/vmx.c           |   4 +-
 9 files changed, 311 insertions(+), 245 deletions(-)


base-commit: 3df301615cead4142fe28629d86142de32fc6768
-- 
2.35.0.rc0.227.g00780c9af4-goog




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux