From: Guillaume T. <gui...@ex...> - 2008-04-08 13:03:11
|
On Tue, 08 Apr 2008 07:14:13 -0500 Anthony Liguori <an...@co...> wrote: > Guillaume Thouvenin wrote: > > On Mon, 07 Apr 2008 11:05:06 -0500 > > Anthony Liguori <an...@co...> wrote: > > > > > >> Perhaps a viable way to fix this upstream would be to catch the vmentry > >> failure, look to see if SS.CPL != CS.CPL, and if so, invoke > >> x86_emulate() in a loop until SS.CPL == CS.CPL. > >> > > > > I tried this solution some time ago but unfortunately x86_emulate() > > failed. I suspected a problem with guest EIP that could different > > between the vmentry catch and the emulation. I will rebase my patch and > > post them on the mailing list. > > > > x86 emulate is missing support for jmp far which is used to switch into > protected mode. It just needs to be added. Ok I see. I understand now why you said in a previous email that KVM needs to have a proper load_seg() function like the Xen's x86_emulate. This function is used to load the segment in a far jmp. I will look how it is done in Xen and I will try to copy the stuff like you did. Regards, Guillaume |