Dave McCracken
2009-Jun-16 15:53 UTC
[Xen-devel] [PATCH] Add 2M page support to Xen balloon driver
This patch adds a kernel command line option "balloon_hugepages" that, when enabled, will make the balloon driver work in 2M pages (ie hugepages). This will work in conjunction with the "superpages" domain creation option so once a domain is created with 2M contiguous pages it will continue to free and re- allocate at the 2M page size. Note that the current hypervisor code does not allow 2M page allocations for all guest domains. Keir has agreed to change the hypervisor to allow them, but for now "balloon_hugepages" should only be specified on hypervisors that have this change. Dave McCracken Oracle Corp. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jan Beulich
2009-Jun-17 08:42 UTC
Re: [Xen-devel] [PATCH] Add 2M page support to Xen balloon driver
>>> Dave McCracken <dcm@mccr.org> 16.06.09 17:53 >>> > >This patch adds a kernel command line option "balloon_hugepages" that, when >enabled, will make the balloon driver work in 2M pages (ie hugepages). This >will work in conjunction with the "superpages" domain creation option so once >a domain is created with 2M contiguous pages it will continue to free and re- >allocate at the 2M page size. > >Note that the current hypervisor code does not allow 2M page allocations for >all guest domains. Keir has agreed to change the hypervisor to allow them, >but for now "balloon_hugepages" should only be specified on hypervisors that >have this change.How would that work with future (currently only some piece of dead code in xen-netfront.c does so) code altering the p2m map outside of the balloon driver? Shouldn''t you at least verify the large page you allocated is indeed machine-contiguous? Also, after reasonably long uptime and on a reasonably loaded machine - how good are the chances you would be able to allocate a large page through alloc_pages() in the first place? Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2009-Jun-17 16:40 UTC
Re: [Xen-devel] [PATCH] Add 2M page support to Xen balloon driver
On 06/17/09 01:42, Jan Beulich wrote:>> This patch adds a kernel command line option "balloon_hugepages" that, when >> enabled, will make the balloon driver work in 2M pages (ie hugepages). This >> will work in conjunction with the "superpages" domain creation option so once >> a domain is created with 2M contiguous pages it will continue to free and re- >> allocate at the 2M page size. >> >> Note that the current hypervisor code does not allow 2M page allocations for >> all guest domains. Keir has agreed to change the hypervisor to allow them, >> but for now "balloon_hugepages" should only be specified on hypervisors that >> have this change. >> > > How would that work with future (currently only some piece of dead code in > xen-netfront.c does so) code altering the p2m map outside of the balloon > driver? Shouldn''t you at least verify the large page you allocated is indeed > machine-contiguous? >I have some experimental patches to move memory around at boot time to avoid e820 holes. It would need to take care with 2M pages. The dma code also updates the p2m map when it makes a page range contiguous.> Also, after reasonably long uptime and on a reasonably loaded machine - > how good are the chances you would be able to allocate a large page > through alloc_pages() in the first place? >I think you lose the ability to allocate 2M pages pretty quickly; probably only a few mins on a moderately loaded server (depends on total memory size, of course). On the other hand, the VM can now relocate user and pagecache pages to try and satisfy large memory allocations, so maybe it can manage it for longer or even indefinitely. J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel