Hi, Keir, in do_IRQ, why do we call the irq_enter only in __do_IRQ_guest and the action->handler(), instead of the whole flow of do_IRQ? I asked this because we noticed a bug that the map/unmap_domain_page() is called in a interrupt handler''s ack() method, which is not guarded by irq_enter(), thus the "ASSERT(!in_irq())" in map/unmap_domain_page() is not work expected to guard this calling. Thanks --jyh _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 18/09/2010 03:22, "Jiang, Yunhong" <yunhong.jiang@intel.com> wrote:> Hi, Keir, in do_IRQ, why do we call the irq_enter only in __do_IRQ_guest and > the action->handler(), instead of the whole flow of do_IRQ? > > I asked this because we noticed a bug that the map/unmap_domain_page() is > called in a interrupt handler''s ack() method, which is not guarded by > irq_enter(), thus the "ASSERT(!in_irq())" in map/unmap_domain_page() is not > work expected to guard this calling.Okay, xen-unstable:22175 fixes do_IRQ() to be better covered by irq_enter()/irq_exit(). Xen-unstable:22177 fixes map_domain_page()/unmap_domain_page() to be IRQ safe. If these work okay for you then they are candidates for backport for 4.0.2. -- Keir> Thanks > --jyh_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
>-----Original Message----- >From: Keir Fraser [mailto:keir.fraser@eu.citrix.com] >Sent: Saturday, September 18, 2010 4:00 PM >To: Jiang, Yunhong >Cc: xen-devel >Subject: Re: the irq_enter in do_IRQ > >On 18/09/2010 03:22, "Jiang, Yunhong" <yunhong.jiang@intel.com> wrote: > >> Hi, Keir, in do_IRQ, why do we call the irq_enter only in __do_IRQ_guest and >> the action->handler(), instead of the whole flow of do_IRQ? >> >> I asked this because we noticed a bug that the map/unmap_domain_page() is >> called in a interrupt handler''s ack() method, which is not guarded by >> irq_enter(), thus the "ASSERT(!in_irq())" in map/unmap_domain_page() is not >> work expected to guard this calling. > >Okay, xen-unstable:22175 fixes do_IRQ() to be better covered by >irq_enter()/irq_exit(). Xen-unstable:22177 fixes >map_domain_page()/unmap_domain_page() to be IRQ safe. > >If these work okay for you then they are candidates for backport for 4.0.2. > > -- Keir > >> Thanks >> --jyh >Thanks for your changeset very much. As this issue is discovered in our nightly test, we will check it later and gives the feedback then. Thanks --jyh _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel