Skip to content
Tags

, , ,

New Implementation for Allocation of Hugepages in Xen

March 3, 2011

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 less 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 when the kernel requests for hugepages, it makes a hypercall to xen hypervisor. Hypervisor will return mfn from the link-list and these will will be mapped to p2m mapping table in kernel. Like this kernel can allocate hugepages in virtualized  environment.

Advertisements

From → Hugepages, Kernel, Xen

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: