From: Avi K. <av...@qu...> - 2008-04-25 06:52:51
|
Guillaume Thouvenin wrote: > On Thu, 24 Apr 2008 11:05:39 -0500 > Anthony Liguori <an...@co...> wrote: > > >> The first stage is to detect vmentry failures and run x86_emulate() for >> a single instruction. If you look at the mailing list, you'll see >> patches from myself and Guillaume. This should be enough to allow most >> Ubuntu installer CDs to work under KVM. >> > > Howdy, > > Here is the last patch I have. It can detects a vmentry failure and it > emulates one instruction. I added the emulation of several instructions > like "ljmp", "mov Sreg, reg", "mov reg, Sreg"... The problem I'm > working on is that once I entered in emulation of real mode I do not > manage to recover a VMX friendly state (in my case cs.rpl == > ss.rpl). So I emulate more and more instructions. > > I added a trace to see instructions that are emulated (emulation of > 0xa8 is in progress so it currently fails): > > [60108.040894] emulation at (46e53) rip 6e13: ea 18 6e 18 > Here cs.rpl == cpl == 0 > [60108.072108] emulation at (46e58) rip 6e18: 66 b8 20 00 > [60108.103997] emulation at (46e5c) rip 6e1c: 8e d8 8c d0 > [60108.148114] emulation at (46e5e) rip 6e1e: 8c d0 81 e4 > [60108.180117] emulation at (46e60) rip 6e20: 81 e4 ff ff > [60108.212008] emulation at (46e66) rip 6e26: c1 e0 04 01 > [60108.244926] emulation at (46e69) rip 6e29: 01 c4 66 b8 > [60108.272948] emulation at (46e6b) rip 6e2b: 66 b8 08 00 > mov $8, %eax > [60108.304953] emulation at (46e6f) rip 6e2f: 8e d0 8e c0 > mov %eax, %ss Here, ss.rpl == 0 -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. |