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.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to