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] Linux: removal of contiguous_bitmap broke kexec

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Linux: removal of contiguous_bitmap broke kexec
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Tue, 25 Nov 2008 11:04:54 +0000
Delivery-date: Tue, 25 Nov 2008 03:04:28 -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
Since kexec uses xen_destroy_contiguous_region() on memory it is about
to free, but passed this through xen_limit_pages_to_max_mfn() only, the
contiguous_bitmap check in the old code prevented any action to be taken
on such regions. This could therefore be fixed in at least three different
ways:

1) Since the call to xen_destroy_contiguous_region() really was pointless
before, we could just eliminate that from kernel/kexec.c.

2) xen_destroy_contiguous_region() could check the region it is passed
and bail out if it turns out not to be contiguous.

3) We could track which regions were actually acted upon by
xen_limit_pages_to_max_mfn() (through PageForeign logic) and attempt
to undo the limitation in the destructor (and at once again eliminate the
[mismatched] call to xen_destroy_contiguous_region()). Since this case
is not performance critical, there shouldn't be an issue with not batching
these. And a check of the kexec code indicates it doesn't use the index
member of struct page.

Opinions appreciated. Thanks,
Jan


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

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