[Bug 55201] host panic when "creating guest, doing scp and killing QEMU process" continuously

bugzilla-daemon
2013-03-14T10:37:30Z

Gleb <gleb@redhat.com> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |gleb@redhat.com

--- Comment #3 from Gleb <gleb@redhat.com> 2013-03-14 10:37:25 ---
There is a deadlock in pvclock handling:

cpu0: cpu1:
kvm_gen_update_masterclock()
kvm_guest_time_update()
spin_lock(pvclock_gtod_sync_lock)
local_irq_save(flags)

spin_lock(pvclock_gtod_sync_lock)

kvm_make_mclock_inprogress_request(kvm)
make_all_cpus_request()
smp_call_function_many()

Now if smp_call_function_many() called by cpu0 tries to call function on cpu1
there will be a deadlock. It shouldn't do it though since
make_all_cpus_request() is careful to not IPI to cpus that are not in a guest
mode and cpu1 is not in a guest mode. The only way I see the deadlock may
happen is if make_all_cpus_request() fails to allocate "cpus" cpu mask in which
case it IPIs all online cpus.