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] Hugepages don't work on the Xen Linux git tree

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: [Xen-devel] Hugepages don't work on the Xen Linux git tree
From: Dave McCracken <dcm@xxxxxxxx>
Date: Mon, 19 Apr 2010 21:27:29 -0500
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>, Xen Developers List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 19 Apr 2010 19:28:13 -0700
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
User-agent: KMail/1.12.4 (Linux/2.6.32; KDE/4.3.4; x86_64; ; )
I hadn't actually tested mainline Linux or the Xen Linux git tree in awhile, 
since we're focusing on RedHat released versions.  When I actually tried to 
use it today it fell over dead as soon as I tried to map a hugepage.

The current method for mapping hugepages does not work at all with Xen.  We 
have set_huge_pte_at() in arch/x86/include/asm/hugetlb.h which does a 
set_pte_at(), but passes it a pmd pointer and a pmd entry.  This will succeed 
on a native Linux kernel, but after passing through the paravirt vector to 
xen_set_pte_at(), it fails miserably.  It expects 
HYPERVISOR_update_va_mapping() to do the right thing and it doesn't.

The fix I have in older kernels is for set_huge_pte_at() to call set_pmd() 
instead.  However, in this brave new world of paravirt vectors, should I 
instead set up a vector for it?  What is the architecturally right thing to 
do?  However we decide to do it, expect a patch for it shortly afterward.

Thanks,
Dave McCracken

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

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