diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-10-27 13:29:35 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-10-27 13:29:35 +0000 |
commit | 043e01a4f80f4af518008fa60ac73178d315b5e0 (patch) | |
tree | c85c3976c26cc7f9c4480a03b86d949002d96ebe /xen/common/kernel.c | |
parent | 2d80f0404ba4b82e27ada015f89170ff5ccd8e71 (diff) | |
download | xen-043e01a4f80f4af518008fa60ac73178d315b5e0.tar.gz xen-043e01a4f80f4af518008fa60ac73178d315b5e0.tar.bz2 xen-043e01a4f80f4af518008fa60ac73178d315b5e0.zip |
x86: highmem handling assistance hypercalls
While looking at the origin of very frequently executed hypercalls I
realized that the high page accessor functions in Linux would be good
candidates to handle in the hypervisor - clearing or copying to/from
a high page is a pretty frequent operation (provided there's enough
memory in the domain). While prior to the first submission I only
measured kernel builds (where the results are not hinting at a
meaningful improvement), I now found time to do a more specific
analysis: page clearing is being improved by about 20%, page copying
doesn't seem to significantly benefit (though that may be an effect of
the simplistic copy_page() implementation Xen currently uses) -
nevertheless I would think that if one function is supported by the
hypervisor, then the other should also be.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/common/kernel.c')
-rw-r--r-- | xen/common/kernel.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/common/kernel.c b/xen/common/kernel.c index 2a88602e51..f3af91f2ed 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -221,7 +221,8 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg) fi.submap |= 1U << XENFEAT_supervisor_mode_kernel; #ifdef CONFIG_X86 if ( !is_hvm_vcpu(current) ) - fi.submap |= 1U << XENFEAT_mmu_pt_update_preserve_ad; + fi.submap |= (1U << XENFEAT_mmu_pt_update_preserve_ad) | + (1U << XENFEAT_highmem_assist); #endif break; default: |