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

bugzilla-daemon
2013-04-07T02:19:19Z

Jay Ren <yongjie.ren@intel.com> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |CODE_FIX

--- Comment #8 from Jay Ren <yongjie.ren@intel.com> 2013-04-07 02:19:13 ---
I verified this against the latest kvm.git tree (next branch).
The following commit fixed this bug.

commit c09664bb44184b3846e8c5254db4eae4b932682a
Author: Marcelo Tosatti <mtosatti@redhat.com>
Date: Mon Mar 18 13:54:32 2013 -0300

KVM: x86: fix deadlock in clock-in-progress request handling

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.

Fix by moving pvclock_gtod_sync_lock protected section outside irq
disabled section.

Analyzed by Gleb Natapov <gleb@redhat.com>
Acked-by: Gleb Natapov <gleb@redhat.com>
Reported-and-Tested-by: Yongjie Ren <yongjie.ren@intel.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>