[PATCH v2 00/26] Big big real mode improvements

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

 



This patchset fixes several bugs in the emulator and in vmx invalid guest
state emulation.  They are sufficient to boot several Linux and Windows
guests, so the last patch turns vmx invalid guest state emulation on by
default.

The first patch is a little hacky; we should try to emulate svm here by making
cpl a state, not a cache.

Changes from v1:
 - folded addendum patchset (BSWAP..LTR) into this one
 - fix stack_size() miscalculation for 64-bit, ENTER patch
 - generate #GP when loading NULL to SS, if CPL!=RPL (noted by Kevin)
 - fix SS base for ESP/EBP addressing without SIB
 - more testing

Avi Kivity (26):
  KVM: VMX: Return correct CPL during transition to protected mode
  KVM: Split cpuid register access from computation
  KVM: x86 emulator: change ->get_cpuid() accessor to use the x86
    semantics
  KVM: x86 emulator: emulate cpuid
  KVM: x86 emulator: allow loading null SS in long mode
  KVM: x86 emulator: fix LIDT/LGDT in long mode
  KVM: VMX: Relax check on unusable segment
  KVM: VMX: Limit iterations with emulator_invalid_guest_state
  KVM: x86 emulator: emulate LEAVE
  KVM: x86 emulator: initialize memop
  KVM: Fix SS default ESP/EBP based addressing
  KVM: x86 emulator: emulate SGDT/SIDT
  KVM: VMX: Fix interrupt exit condition during emulation
  KVM: VMX: Continue emulating after batch exhausted
  KVM: x86 emulator: emulate LAHF
  KVM: x86 emulator: fix byte-sized MOVZX/MOVSX
  KVM: x86 emulator: split push logic from push opcode emulation
  KVM: x86 emulator: implement ENTER
  KVM: VMX: Stop invalid guest state emulation on pending event
  KVM: VMX: Improve error reporting during invalid guest state
    emulation
  KVM: x86 emulator: emulate BSWAP
  KVM: x86 emulator: emulate LLDT
  KVM: x86 emulator: make read_segment_descriptor() return the address
  KVM: x86 emulator: make loading TR set the busy bit
  KVM: x86 emulator: implement LTR
  KVM: VMX: Emulate invalid guest state by default

 arch/x86/include/asm/kvm_emulate.h |   6 +-
 arch/x86/kvm/cpuid.c               |  38 ++++--
 arch/x86/kvm/cpuid.h               |   1 +
 arch/x86/kvm/emulate.c             | 273 +++++++++++++++++++++++++++++--------
 arch/x86/kvm/vmx.c                 |  38 ++++--
 arch/x86/kvm/x86.c                 |  20 +--
 6 files changed, 276 insertions(+), 100 deletions(-)

-- 
1.7.11

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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