xen: avoid hypercalls when updating unpinned pud/pmd
authorJeremy Fitzhardinge <jeremy@goop.org>
Sat, 31 May 2008 00:24:27 +0000 (01:24 +0100)
committerIngo Molnar <mingo@elte.hu>
Mon, 2 Jun 2008 11:24:40 +0000 (13:24 +0200)
commite2426cf85f8db5891fb5831323d2d0c176c4dadc
tree630dbc2032df606566f7249aa326c1e2a120c1ce
parent15ce60056b24a65b65e28de973a9fd8ac0750a2f
xen: avoid hypercalls when updating unpinned pud/pmd

When operating on an unpinned pagetable (ie, one under construction or
destruction), it isn't necessary to use a hypercall to update a
pud/pmd entry.  Jan Beulich observed that a similar optimisation
avoided many thousands of hypercalls while doing a kernel build.

One tricky part is that early in the kernel boot there's no page
structure, so we can't check to see if the page is pinned.  In that
case, we just always use the hypercall.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/xen/enlighten.c
arch/x86/xen/mmu.c
arch/x86/xen/mmu.h