Re: Qemu & KVM bug

From: Avi Kivity
Date: Wed Feb 13 2008 - 11:58:45 EST


Marcelo Tosatti wrote:
On Wed, Feb 13, 2008 at 04:24:53PM +0100, Jiri Kosina wrote:
On Wed, 13 Feb 2008, Zdenek Kabelac wrote:

I get this bug in my log whenever I start qemu-kvm - I do not use kqemu module - so it's with plain kernel modules. If more details are needed - just ask. (Cpu; C2D)
BUG: sleeping function called from invalid context at kernel/rwsem.c:48
in_atomic():1, irqs_disabled():0
INFO: lockdep is turned off.
Pid: 26600, comm: qemu-kvm Not tainted 2.6.25-rc1 #29
This has been obviously caused by Marcelo's (added to CC) commit 10589a4699b, which added down_write(mmap_sem) to alloc_apic_access_page(), which is called with preempt disabled from vmx_create_vcpu().

alloc_apic_access_page() called mutex_lock, so the warning would trigger
before that change.

I think it's fine to allocate the APIC page after put_cpu(), since no vcpu state is required.



Looks right, but wants a changelog and signoff, of course.

--
Any sufficiently difficult bug is indistinguishable from a feature.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/