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] Should shadow_lock be spin_lock_recursive?

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Should shadow_lock be spin_lock_recursive?
From: Arun Sharma <arun.sharma@xxxxxxxxx>
Date: Wed, 11 May 2005 10:42:54 -0700
Cc: "Ling, Xiaofeng" <xiaofeng.ling@xxxxxxxxx>
Delivery-date: Wed, 11 May 2005 17:42:28 +0000
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/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
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

During our testing, we found this code path where xen attempts to grab the shadow_lock, while holding it - leading to a deadlock.

>> free_dom_mem->
>> shadow_sync_and_drop_references->
>> shadow_lock -> ..................... first lock
>> shadow_remove_all_access->
>> remove_all_access_in_page->
>> put_page->
>> free_domheap_pages->
>> shadow_drop_references->
>> shadow_lock -> ..................... second lock

Questions:

- should shadow lock be recursive?
- is shadow lock too coarse grained? It seems to have led to a lot of code refactoring (__foo without lock and foo with lock). But there may be more such instances we haven't found yet.

        -Arun

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

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