[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] PATCH: Hugepage support for Domains booting with 4KB pages


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Keshav Darak <keshav_darak@xxxxxxxxx>
  • Date: Sun, 20 Mar 2011 15:34:51 -0700 (PDT)
  • Cc: jeremy@xxxxxxxx, keir@xxxxxxx
  • Delivery-date: Sun, 20 Mar 2011 15:37:26 -0700
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:Cc:MIME-Version:Content-Type; b=W1Sd/NQ6o/xkYZzYBrhgp4imTvjdK4eBhiX9QaI8fjwv6kJVcuozj1EBuyazIiml9pFgvr8R2wBBbux5ESvxUedK0WxMWYr3c6FQR/xQy0Bam+/qcxfT0p1a8Plv37AtxEm8Iua4UoP+rEZFFQ9mqmw39vTAzHd7UPYh2Q93dXM=;
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

We have implemented hugepage support for guests in following manner

In our implementation we added a parameter hugepage_num which is specified in the config file of the DomU. It is the number of hugepages that the guest is guaranteed to receive whenever the kernel asks for hugepage by using its boot time parameter or reserving after booting (eg. Using echo XX > /proc/sys/vm/nr_hugepages). During creation of the domain we reserve MFN's for these hugepages and store them in the list. The listhead of this list is inside the domain structure with name "hugepage_list". When the domain is booting, at that time the memory seen by the kernel is allocated memory  less the amount required for hugepages. The function reserve_hugepage_range is called as a initcall. Before this function the xen_extra_mem_start points to this apparent end of the memory. In this function we reserve the PFN range for the hugepages which are going to be allocated by kernel by incrementing the xen_extra_mem_start. We maintain these PFNs as pages in "xen_hugepfn_list" in the kernel.

Now before the kernel requests for hugepages, it makes a hypercall HYPERVISOR_memory_op  to get count of hugepages allocated to it and accordingly reserves the pfn range.
then whenever kernel requests for hugepages it again make hypercall HYPERVISOR_memory_op to get the preallocated hugepage and according makes the p2m mapping on both sides (xen as well as kernel side)

The approach can be better explained using the presentation attached.

--
Keshav Darak
Kaustubh Kabra
Ashwin Vasani
Aditya Gadre

Attachment: xen_patch_210311_0227.patch
Description: application/download

Attachment: jeremy-kernel.patch
Description: application/download

Attachment: our_hugepage_approach.ppt
Description: MS-Powerpoint presentation

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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.