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] odd IRQ behavior

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] odd IRQ behavior
From: "Cihula, Joseph" <joseph.cihula@xxxxxxxxx>
Date: Thu, 26 Feb 2009 17:58:24 -0800
Accept-language: en-US
Acceptlanguage: en-US
Delivery-date: Thu, 26 Feb 2009 17:58:56 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcmYft/BQyNL3H4qSR26RJ7HKdFeNQ==
Thread-topic: odd IRQ behavior
Sometime after c/s 19133 (I tried bisecting but there were some indeterminate 
results), during a shutdown/reboot in the tboot routines when it creates the 
1:1 mapping for itself, the map_pages_to_xen() call ends up in 
alloc_domheap_pages() where it triggers the assertion 'ASSERT(!in_irq());'.  In 
addition, and even stranger, is that when resuming from S3 is generates another 
assertion, 'BUG_ON(unlikely(in_irq()));' in invalidate_shadow_ldt().  From some 
debugging, the first assertion on entry is because the irq_count is 1 and the 
second is because it's -1.

Adding a irq_exit() before map_pages_to_xen() fixes the first assertion and 
causes the second, which is then fixed by irq_enter() on resume.

But why are these necessary?  Even if we say that something has caused the 
irq_count to go positive before shutdown (but what-it wasn't like this before 
pulling a more recent tree), the irq_exit() that gets rid of the assertion 
means that the count has gone to 0-so why is it negative on resume?

Joe


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

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