[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH 10/16]: PVH xen: introduce vmx_pvh.c
At 16:05 -0800 on 19 Feb (1361289934), Mukesh Rathor wrote: > On Thu, 24 Jan 2013 16:31:22 +0000 > Tim Deegan <tim@xxxxxxx> wrote: > > > At 18:01 -0800 on 11 Jan (1357927270), Mukesh Rathor wrote: > > > + > > > + case EXIT_REASON_CPUID: /* 10 */ > > > + { > > > + if ( guest_kernel_mode(vp, regs) ) { > > > + pv_cpuid(regs); > > > + > > > + /* Because we are setting CR4.OSFXSR to 0, we need > > > to disable > > > + * this because, during boot, user process > > > "init" (which doesn't > > > + * do cpuid), will do 'pxor xmm0,xmm0' and cause > > > #UD. For now > > > + * disable this. HVM doesn't allow setting of > > > CR4.OSFXSR. > > > + * fixme: this and also look at CR4.OSXSAVE */ > > > + > > > + __clear_bit(X86_FEATURE_FXSR, ®s->edx); > > > > Shouldn't this be gated on which leaf the guest asked for? > > Yup, looking at it. X86_FEATURE_FXSR is EAX==1, but it doesn't work. > The user process "init" running nash is executing pxor %xmm0, %xmm0 and > taking #UD. Strangely, it works with EAX==0, meaning if I clear the bit > for EAX==0, changing the intel string "ineI". This user process doesn't > do cpuid, so it must be affected by it some other way. > > Pretty hard to debug since it's in nash user code from ramdisk and I am > not able to set breakpoint or put printf's easily to figure why clearing > bit for EAX==0 makes it work, or what's going on for PV and HVM guest. > CR0.EM is 0, so UD is coming from CR4.OSFXSR==0. Reading the SDMs to > learn OSFXSR stuff better.... Perhaps you need to clear the FXSR feature bit in leaf 0x80000001:EDX as well? Tim. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |