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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to