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.


-- 
error compiling committee.c: too many arguments to function


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to