On Sun, Jul 29, 2012 at 06:50:09PM +0100, Chris Clayton wrote: > On 07/29/12 17:34, Avi Kivity wrote: > >On 07/29/2012 06:47 PM, Avi Kivity wrote: > >>>What might have happened is that the movdqu instruction faulted (as it's > >>>an fpu instruction), and on the way back from the fault, ds and es > >>>didn't get restored correctly. > >>> > >>>You can test this by writing a trivial version of g_str_equal() > >>>somewhere in the qemu source code and rebuilding it. > >>> > >>> > >> > >>from entry_32.S: > >> > >>.macro RESTORE_REGS pop=0 > >> RESTORE_INT_REGS > >>1: popl_cfi %ds > >> /*CFI_RESTORE ds;*/ > >>2: popl_cfi %es > >> /*CFI_RESTORE es;*/ > >>3: popl_cfi %fs > >> /*CFI_RESTORE fs;*/ > >> POP_GS \pop > >>.pushsection .fixup, "ax" > >>4: movl $0, (%esp) > >> jmp 1b > >>5: movl $0, (%esp) > >> jmp 2b > >>6: movl $0, (%esp) > >> jmp 3b > >>.popsection > >> > >>this piece of code tries to restore %ds, and if it fails, zeros it, > >>which is consistent with the core dump. > >> > >>This could happen if kvm is failing to restore GDT correctly. > >> > > > >Possible culprit: b2da15ac26a0c00. > > > > > That commit isn't in qermu-kvm-1.1.1. > It is in kernel. > I'm testing a build with g_str_equal implemented in kvm.c and so far > I haven't had a crash in 6 invocations. That hasn't been possible > with vanilla qemu-kvm-1.1.{0,1}, but I'll do a few more, just to be > sure. > > Thanks for your help, Avi. -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html