WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] map_domain_page_global() and interrupts

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] map_domain_page_global() and interrupts
From: Andrew Gallagher <ajcg@xxxxxxxxxxx>
Date: Sat, 28 Jul 2007 17:02:49 -0700 (PDT)
Delivery-date: Mon, 30 Jul 2007 10:00:09 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
In the file xen/arch/x86/x86_32/domain_page.c, the map_domain_page_global function has the following assertion: ASSERT(!in_irq() && local_irq_is_enabled()). This assertion is followed by use of a spin lock without disabling then reenabling irqs.

The assertion that the function is not called from an interrupted context seems to flag this function as not interrupt safe. Why is this? Is the use of the IOREMAP_VIRT not interrupt safe itself. The only reason this seems to be not interrupt safe is becuase of the use of a spinlock without disabling and reenabling irqs.

My question is that, if interrupts are disabled then reenabled before and after acquiring and releasing the spinlock, is it then ok to call this function from the context of an interrupt?

Thanks,
Andrew

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

<Prev in Thread] Current Thread [Next in Thread>