On Mon, Aug 16, 2010 at 4:19 PM, Avi Kivity <avi@xxxxxxxxxx> wrote: > On 08/16/2010 02:37 AM, Mohammed Gamal wrote: >> >> On Mon, Aug 16, 2010 at 12:46 AM, Mohammed Gamal<m.gamal005@xxxxxxxxx> >> wrote: >>> >>> This patch introduces real mode interrupt injection for VMX. >>> It currently invokes the x86 emulator to emulate interrupts >>> instead of manually setting VMX controls. >>> >>> Needless to say, this is not meant for merging in its current state. >>> The emulator still needs some more work to get this completely >>> operational. >>> >>> Mohammed Gamal (4): >>> x86 emulator: Expose emulate_int_real() >>> x86: Separate emulation context initialization in a separate function >>> x86: Add kvm_inject_realmode_interrupt() wrapper >>> VMX: Emulated real mode interrupt injection >>> >>> arch/x86/include/asm/kvm_emulate.h | 3 +- >>> arch/x86/kvm/vmx.c | 65 >>> +++---------------------------- >>> arch/x86/kvm/x86.c | 75 >>> ++++++++++++++++++++++-------------- >>> arch/x86/kvm/x86.h | 1 + >>> 4 files changed, 55 insertions(+), 89 deletions(-) >>> --- >>> Changes since v2: >>> - Refactored emulation context initialization code >>> - Commit eip value from the decode cache to the emulation context in >>> x86.c rather than the emulator >>> - Add kvm_* prefix to inject_realmode_interrupt() global symbol for >>> consistency >>> >> Here is a full trace of a MINIX guest since bootup. Looks like we get >> stuck somewhere in the BIOS. >> >> https://docs.google.com/leaf?id=0B9UodZT1IuENMzJhNWQxM2YtYzE3YS00YWY4LTk2YTgtZWY3ODNhMWUxMDkx&sort=name&layout=list&num=50 > > I debugged this for a bit - emulate_int_real() is completely broken. > emulate_push() doesn't push anything, it only schedules a push; running > these back-to-back will result in only the last push to be executed. > So we need write back the decode cache after each push. Or let emulate_push() change the emulation context directly. Please CMIIW > With that fixed, I get the boot splash. Not 100% perfect but much closer. > > -- > error compiling committee.c: too many arguments to function > > -- 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