[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] test_x86_emulator (was Re: [PATCH optional v2 01/10] hvm/hpet: Add manual unit test code.)
On 04/14/14 03:40, Jan Beulich wrote: On 11.04.14 at 19:40, <dslutz@xxxxxxxxxxx> wrote:Testing movdqu %xmm2,(%ecx)... okay Testing movdqu (%edx),%xmm4... okay Breakpoint 3, main (argc=<optimized out>, argv=<optimized out>) at test_x86_emulator.c:661 661 if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 16, 64) ) (gdb) p rc $4 = 7 (gdb) qI don't see how a return code of 7 could ever be observed here. But It's then apparently not the suspected XMM register clobbering. On ac0f56a + All these patches (which should not effect this) It is more complex then it appears at 1st look. -O1: ... Testing movdqu (%edx),%xmm4... okay Testing vmovdqu %ymm2,(%ecx)... skipped Testing vmovdqu (%edx),%ymm4... skipped Testing movsd %xmm5,(%ecx)... okay Testing movaps (%edx),%xmm7... okay ... -O2: ... Testing movdqu (%edx),%xmm4... okay Testing vmovdqu %ymm2,(%ecx)... failed! make: *** [run] Error 1 How I got here: ... Testing movq (%edx),%mm5... okay Testing movdqu %xmm2,(%ecx)... okay Testing movdqu (%edx),%xmm4... okay Breakpoint 1, main (argc=<optimized out>, argv=<optimized out>) at test_x86_emulator.c:702 702 printf("%-40s", "Testing vmovdqu %ymm2,(%ecx)..."); (gdb) c Continuing. Breakpoint 3, x86_emulate (ctxt=ctxt@entry=0x7fffffffdb80, ops=ops@entry=0x6152a0 <emulops>) at x86_emulate/x86_emulate.c:4164 4164 get_fpu(X86EMUL_FPU_ymm, &fic); (gdb) p rc $2 = 0 (gdb) s get_fpu (exception_callback=0x402a60 <fpu_handle_exception>, exception_callback_arg=0x7fffffffd7d0, type=X86EMUL_FPU_ymm, ctxt=0x7fffffffdb80) at test_x86_emulator.c:138 138 switch ( type ) (gdb) n 137 { (gdb) 138 switch ( type ) (gdb) 154 return X86EMUL_OKAY; (gdb) 138 switch ( type ) (gdb) 152 return X86EMUL_UNHANDLEABLE; (gdb) 138 switch ( type ) (gdb) 132 int get_fpu( (gdb) 155 } (gdb) x86_emulate (ctxt=ctxt@entry=0x7fffffffdb80, ops=ops@entry=0x6152a0 <emulops>) at x86_emulate/x86_emulate.c:4525 4525 } (gdb) main (argc=<optimized out>, argv=<optimized out>) at test_x86_emulator.c:719 719 if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 16, 64) ) (gdb) 934 printf("failed!\n"); And so I tried at the lower -O1, and "it works". This is from 4.3.1...I.e. not really meaningful if not proven to behave the same on -unstable. And anyway, if you're not up to debugging this, I don't think there's much we can do. Since I know almost nothing about both AVX instructions and x86_emulate, it is hard for me to quickly help. -Don Slutz Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |