|
|
![](http://www.xen.org/images/globals/pixel.gif) |
|
|
|
|
|
|
|
xen-devel
[Xen-devel] PATCH: Hugepage support for Domains booting with 4KB pages
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
|
xen_patch_210311_0227.patch
Description: application/download
jeremy-kernel.patch
Description: application/download
our_hugepage_approach.ppt
Description: MS-Powerpoint presentation
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|