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

[Xen-ia64-devel][PATCH][RFC] Task: support huge page RE: [Xen-ia64-devel] Xen/IA64 Healthiness Report -Cset#11460



This patch is not for check in. And this patch is based on Cset11456

Hi Magnus,

Currently, memory allocated for domU and VTI-domain is 16K contiguous.
That means all huge page TLB entries must be broken into 16K TLB
entries. This definitely impact overall performance, for instance, in
linux, region 7 is using 16M page size. IA64 is supposed to be used at
high end server, many services running on IA64 are using huge page, like
Oracle is using 256M page in region 4, if XEN/IA64 still use 16K
contiguous physical page, we can image, this can impact performance
dramatically. So domU, VTI-domain and dom0 need to support huge page.

Attached patch is an experiment to use 16M page on VTI-domain. A very
tricky way is used to allocate 16M contiguous memory for VTI-domain, so
it's just for reference.
Applying this patch, I can see 2%~3% performance gains when running KB
on VTI-domain(UP), you may know performance of KB on VTI-domain is not
bad:-), that means the improvement is somewhat big. 
As we know, KB doesn't use 256M, the performance gain is coming from 16M
page in region 7, if we run some applications, which use 256M huge page,
and then we may get more improvement.

In my mind, we need do below things (there may be more) if we want to
support huge page.
1. Add an option "order" in configure file vtiexample.vti. if order=0,
XEN/IA64 allocate 16K contiguous memory for domain, if order=1, allocate
32K,  and so on. Thus user can chose page size for domain.

2. This order option will be past to increase_reservation() function as
extent_order argument, increase_reservation() will allocate contiguous
memory for domain.

3.  There may be some memory blocks, which we also want
increase_reservation to allocate for us, such as shared page, or
firmware memory for VTI domain etc. So we may need to call
increase_reservation() several times to allocate memories with different
page size.

4. Per_LP_VHPT may need to be modified to support huge page.

5. VBD/VNIF may need to be modified to use copy mechanism instead of
flipping page.

6. Ballon driver may need to be modified to increase or decrease domain
memory by page size not 16K.

Magnus, would you like to take this task?

Comments are always welcome.


Thanks,
Anthony




>> Please do not work yet on xencomm.
>> I am now back from holidays and I will work on xencomm now.
>
>Ok, I will not spend any time on it then. Feel free to drop me a line
if
>you need help with something though. Thanks!
>
>/ magnus


Attachment: vti_huge_page.patch
Description: vti_huge_page.patch

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

 


Rackspace

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