public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] VMX: Invalid guest state emulation
@ 2008-08-17 13:36 Mohammed Gamal
  2008-08-18 10:15 ` Avi Kivity
  0 siblings, 1 reply; 2+ messages in thread
From: Mohammed Gamal @ 2008-08-17 13:36 UTC (permalink / raw)
  To: kvm; +Cc: avi, riel, laurent.vivier, guillaume.thouvenin

The patch series adds invalid guest state emulation for VMX hosts, which is needed in order to properly support real mode guests.
Usually, a guest would be in an VMX-invalid state during mode switches from real to protected mode or vice versa.
We handle this invalid state by using the x86 emulator to emulate instructions until we arrive back to a VMX-friendly state.
This is achieved by:
- Adding thorough guest state checking in order to catch and handle invalid states
- Adding a guest state handler which emulates instructions till guest state is valid
- Adding an "emulation required" flag, enabled on mode switches, to indicated that emulation is needed 
- Checking for guest state on vcpu_run() and emulating instructions instead of entering VMX if the state is invalid.

The next step needed is to add more instructions to the x86 emulator, since we might run into instructions not supported yet.
In order not to interfere with normal KVM operation, a module parameter 'emulate_invalid_guest_state' -which is disabled by default- that is used in 
order to drive emulation. Bear in mind that currently you can't use this patch alone to get real mode guests to work. There is still a lot of work 
needed on the x86 emulator in order not to run into failures running these guests.

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

end of thread, other threads:[~2008-08-18 10:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-17 13:36 [PATCH 0/4] VMX: Invalid guest state emulation Mohammed Gamal
2008-08-18 10:15 ` Avi Kivity

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