Allan Graves
2009-Oct-29 23:18 UTC
[Xen-users] 64 bit Intel HVM Weirdness - setjmp\longjump fp exception in Xen, not on real hardware or AMD HVM
The following program will crash with a fp exception on an INTEL 64 bit HVM domU only: #include <setjmp.h> jmp_buf env; main() { if(setjmp(env)) return; longjmp(env, 1); } This can be seen using both Linux and Windows 64 bit Guests. My machine is a Core 2 Duo with both VT-D and VT-X extensions enabled. Unfortunately, this is blocking our usage of 64 bit HVM Windows guests. A similar issue was reported in KVM and recently fixed, some of their analysis is below: --------------------------------------------------> >> It seems that the problem can be reproduced by compiling the > >> following simple program using cygwin''s gcc. The program crashes on > >> w2k3-amd64 on kvm-83 on core2-duo, and it does not crash on the > >> same w2k3-amd64 installation on kvm-83 on AMD Phenom. > >> > >> #include <setjmp.h> > >> > >> jmp_buf env; main() { if(setjmp(env)) return; longjmp(env, 1); } > >> > >> The problem seems to be in the instruction ``mov gs,ax'''' (Intel > >> syntax) in the longjmp() code. If I let the virtual machine execute > >> the instruction, the program crashes. However, if I step over the > >> instruction using the vs2008 debugger, the program completes > >> without crashing. Thus, I think that this is the instruction that > >> Avi is looking for, but I don''t know how to proceed from here. > >> -------------------------------------------------------http://markmail.org/message/owy3x7pf6oywdx5e#query:+page:1+mid:spz6vmdothb2njfb+state:results Anyone have a solution to this? :) Allan _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Pasi Kärkkäinen
2009-Oct-30 13:16 UTC
Re: [Xen-users] 64 bit Intel HVM Weirdness - setjmp\longjump fp exception in Xen, not on real hardware or AMD HVM
On Thu, Oct 29, 2009 at 07:18:46PM -0400, Allan Graves wrote:> The following program will crash with a fp exception on an INTEL 64 bit HVM > domU only: > #include <setjmp.h> > jmp_buf env; main() { if(setjmp(env)) return; longjmp(env, 1); } > > > This can be seen using both Linux and Windows 64 bit Guests. > > > My machine is a Core 2 Duo with both VT-D and VT-X extensions enabled. > > Unfortunately, this is blocking our usage of 64 bit HVM Windows guests. > > A similar issue was reported in KVM and recently fixed, some of their > analysis is below: > -------------------------------------------------- > >>> It seems that the problem can be reproduced by compiling the > >>> following simple program using cygwin''s gcc. The program crashes on > >>> w2k3-amd64 on kvm-83 on core2-duo, and it does not crash on the > >>> same w2k3-amd64 installation on kvm-83 on AMD Phenom. > >>> > >>> #include <setjmp.h> > >>> > >>> jmp_buf env; main() { if(setjmp(env)) return; longjmp(env, 1); } > >>> > >>> The problem seems to be in the instruction ``mov gs,ax'''' (Intel > >>> syntax) in the longjmp() code. If I let the virtual machine execute > >>> the instruction, the program crashes. However, if I step over the > >>> instruction using the vs2008 debugger, the program completes > >>> without crashing. Thus, I think that this is the instruction that > >>> Avi is looking for, but I don''t know how to proceed from here. > >>> ------------------------------------------------------- > http://markmail.org/message/owy3x7pf6oywdx5e#query:+page:1+mid:spz6vmdothb2njfb+state:results > > > Anyone have a solution to this? :) >I think this should be sent to xen-devel instead :) -- Pasi _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users