public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/26] Big big real mode improvements
@ 2012-06-27 15:18 Avi Kivity
  2012-06-27 15:18 ` [PATCH v2 01/26] KVM: VMX: Return correct CPL during transition to protected mode Avi Kivity
                   ` (31 more replies)
  0 siblings, 32 replies; 34+ messages in thread
From: Avi Kivity @ 2012-06-27 15:18 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: kvm

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


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [PATCH 0/5] Big real mode - addendum
@ 2012-06-13 14:30 Avi Kivity
  2012-06-13 14:30 ` [PATCH 3/5] KVM: x86 emulator: make read_segment_descriptor() return the address Avi Kivity
  0 siblings, 1 reply; 34+ messages in thread
From: Avi Kivity @ 2012-06-13 14:30 UTC (permalink / raw)
  To: Marcelo Tosatti, kvm

Some testing unconvered a few more missing instructions; here they are.

Avi Kivity (5):
  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

 arch/x86/kvm/emulate.c |   63 ++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 53 insertions(+), 10 deletions(-)

-- 
1.7.10.1


^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2012-06-27 15:23 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-27 15:18 [PATCH v2 00/26] Big big real mode improvements Avi Kivity
2012-06-27 15:18 ` [PATCH v2 01/26] KVM: VMX: Return correct CPL during transition to protected mode Avi Kivity
2012-06-27 15:19 ` [PATCH 1/5] KVM: x86 emulator: emulate BSWAP Avi Kivity
2012-06-27 15:19 ` [PATCH v2 02/26] KVM: Split cpuid register access from computation Avi Kivity
2012-06-27 15:19 ` [PATCH 2/5] KVM: x86 emulator: emulate LLDT Avi Kivity
2012-06-27 15:19 ` [PATCH v2 03/26] KVM: x86 emulator: change ->get_cpuid() accessor to use the x86 semantics Avi Kivity
2012-06-27 15:19 ` [PATCH 3/5] KVM: x86 emulator: make read_segment_descriptor() return the address Avi Kivity
2012-06-27 15:19 ` [PATCH v2 04/26] KVM: x86 emulator: emulate cpuid Avi Kivity
2012-06-27 15:19 ` [PATCH 4/5] KVM: x86 emulator: make loading TR set the busy bit Avi Kivity
2012-06-27 15:19 ` [PATCH v2 05/26] KVM: x86 emulator: allow loading null SS in long mode Avi Kivity
2012-06-27 15:19 ` [PATCH 5/5] KVM: x86 emulator: implement LTR Avi Kivity
2012-06-27 15:19 ` [PATCH v2 06/26] KVM: x86 emulator: fix LIDT/LGDT in long mode Avi Kivity
2012-06-27 15:19 ` [PATCH v2 07/26] KVM: VMX: Relax check on unusable segment Avi Kivity
2012-06-27 15:19 ` [PATCH v2 08/26] KVM: VMX: Limit iterations with emulator_invalid_guest_state Avi Kivity
2012-06-27 15:19 ` [PATCH v2 09/26] KVM: x86 emulator: emulate LEAVE Avi Kivity
2012-06-27 15:19 ` [PATCH v2 10/26] KVM: x86 emulator: initialize memop Avi Kivity
2012-06-27 15:19 ` [PATCH v2 11/26] KVM: Fix SS default ESP/EBP based addressing Avi Kivity
2012-06-27 15:19 ` [PATCH v2 12/26] KVM: x86 emulator: emulate SGDT/SIDT Avi Kivity
2012-06-27 15:19 ` [PATCH v2 13/26] KVM: VMX: Fix interrupt exit condition during emulation Avi Kivity
2012-06-27 15:19 ` [PATCH v2 14/26] KVM: VMX: Continue emulating after batch exhausted Avi Kivity
2012-06-27 15:19 ` [PATCH v2 15/26] KVM: x86 emulator: emulate LAHF Avi Kivity
2012-06-27 15:19 ` [PATCH v2 16/26] KVM: x86 emulator: fix byte-sized MOVZX/MOVSX Avi Kivity
2012-06-27 15:19 ` [PATCH v2 17/26] KVM: x86 emulator: split push logic from push opcode emulation Avi Kivity
2012-06-27 15:19 ` [PATCH v2 18/26] KVM: x86 emulator: implement ENTER Avi Kivity
2012-06-27 15:19 ` [PATCH v2 19/26] KVM: VMX: Stop invalid guest state emulation on pending event Avi Kivity
2012-06-27 15:19 ` [PATCH v2 20/26] KVM: VMX: Improve error reporting during invalid guest state emulation Avi Kivity
2012-06-27 15:19 ` [PATCH v2 21/26] KVM: x86 emulator: emulate BSWAP Avi Kivity
2012-06-27 15:19 ` [PATCH v2 22/26] KVM: x86 emulator: emulate LLDT Avi Kivity
2012-06-27 15:19 ` [PATCH v2 23/26] KVM: x86 emulator: make read_segment_descriptor() return the address Avi Kivity
2012-06-27 15:19 ` [PATCH v2 24/26] KVM: x86 emulator: make loading TR set the busy bit Avi Kivity
2012-06-27 15:19 ` [PATCH v2 25/26] KVM: x86 emulator: implement LTR Avi Kivity
2012-06-27 15:19 ` [PATCH v2 26/26] KVM: VMX: Emulate invalid guest state by default Avi Kivity
2012-06-27 15:23 ` [PATCH v2 00/26] Big big real mode improvements Avi Kivity
  -- strict thread matches above, loose matches on Subject: below --
2012-06-13 14:30 [PATCH 0/5] Big real mode - addendum Avi Kivity
2012-06-13 14:30 ` [PATCH 3/5] KVM: x86 emulator: make read_segment_descriptor() return the address Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox