From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yang, Sheng" Subject: Re: device-assignment deadlock Date: Tue, 12 May 2009 17:05:52 +0800 Message-ID: <200905121705.53176.sheng.yang@intel.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Alex Williamson Return-path: Received: from mga11.intel.com ([192.55.52.93]:54565 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751579AbZELJFH (ORCPT ); Tue, 12 May 2009 05:05:07 -0400 Content-Disposition: inline Sender: kvm-owner@vger.kernel.org List-ID: [I was kicked off from the mailing list by periodic unknown reason last Friday... Sorry] > Hi Sheng, > > I think I'm running into the following deadlock in the kvm kernel module > when trying to use device assignment: > > CPU A CPU B > kvm_vm_ioctl_deassign_dev_irq() > mutex_lock(&kvm->lock); worker_thread() > -> kvm_deassign_irq() -> >kvm_assigned_dev_interrupt_work_handler() > -> deassign_host_irq() mutex_lock(&kvm->lock); > -> cancel_work_sync() [blocked] > I wonder if we need finer granularity locking to avoid this. > Suggestions? Thanks, This part again... I think simply move kvm_deassign_irq() out of critical region is OK, and I also add the lock which seems missing in deassign_guest_irq(). Would post a patch soon. -- regards Yang, Sheng