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

[Xen-devel] [VTD][PATCH] Do dpci eoi outside of irq_lock


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Han, Weidong" <weidong.han@xxxxxxxxx>
  • Date: Tue, 30 Oct 2007 14:20:02 +0800
  • Cc: "Kay, Allen M" <allen.m.kay@xxxxxxxxx>
  • Delivery-date: Mon, 29 Oct 2007 23:23:08 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcgavOXFCbnl68j8RXGWnVWbKRESFQ==
  • Thread-topic: [Xen-devel] [VTD][PATCH] Do dpci eoi outside of irq_lock

Deadlock may occur if do hvm_dpci_eoi() inside of irq_lock on MP
platform. For example, there are two physical cpus. If interrupt is
injected on cpu0, but vcpu is migrated to cpu1 and it does eoi inside of
irq_lock, then IPI will be issued to cpu0. At the same time, cpu0 may
have disabled irq and is acquiring the same irq_lock. In addition,
current code cannot guarantee do hvm_dpci_eoi() inside of irq_lock when
timeout. This patch does hvm_dpci_eoi() outside of irq_lock, and solves
above problems.

Signed-off-by: Xiaohui Xin <xiaohui.xin@xxxxxxxxx>
Signed-off-by: Weidong Han <weidong.han@xxxxxxxxx>

Attachment: eoi_lock.patch
Description: eoi_lock.patch

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.