Re: qemu-kvm-1.1.0 crashing with kernel 3.5.0-rc6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/29/12 18:54, Gleb Natapov wrote:
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.


Sorry, so it is.

With kernel 3.5.0 with b2da15ac26a0c00 reverted, I have just had 15 clean invocations of vanilla qemu-kvm-1.1.1. So that commit would seem to be the problem.

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.


Similarly, with my "local" implementation of g_str_equal, I've had 15 clean invocations on vanilla kernel 3.5.0.

I'm more than happy to test patches to fix this regression, but it will be tomorrow before I will be able to do so.

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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux