X-Xen: Huge page support in Xen
Project Members: Aditya Gadre, Ashwin Vasani, Kaustubh Kabra, Keshav Darak
This page was published in Ottawa Linux Symposium 2011.
Huge pages are the memory pages of size 2MB. Huge pages improve the performance of the system by 15-20% since number of page walks required for translation from a virtual address to physical 2MB page are reduced as compared to page walks required for translation from a virtual address to physical 4KB page. Also the number of TLB entries per 2MB chunk in memory is reduced by a factor of 512 as compared to 4KB pages.
In the context of virtualization, i.e. Xen hyper-visor,we propose an innovative design and implementation to support huge pages for paravirtualized guest paging operations.
Our solution presented in this paper is unique in the way that it modifies a layer of memory management at the level of physical memory in Xen. The solution allocates 2MB pages, i.e. ,huge page, along with the normal 4 KB pages before a domain boots. As the design partitions a domain’s committed memory into 2MB chunks as per demand before a domain boots, the availability of the huge pages increases and more number of actual physical huge pages can be provided to the paravirtualized domain. This increases the performance of the applications hosted on the guest operating system which require the huge page support.
This design solves the problem of availability of 2MB chunk in guest’s physical address space (virtualized) as well as the Xen’s physical address space.