KVM: ppc: use prefetchable mappings for guest memory
authorHollis Blanchard <hollisb@us.ibm.com>
Mon, 10 Nov 2008 20:57:35 +0000 (14:57 -0600)
committerAvi Kivity <avi@redhat.com>
Wed, 31 Dec 2008 14:52:26 +0000 (16:52 +0200)
commitdf9b856c454e331bc394c80903fcdea19cae2a33
treeaa266ad64c3bed1f895d2f8132b62c25bae882e4
parentbf5d4025c9fe8a64c5905c00bf4292319d634903
KVM: ppc: use prefetchable mappings for guest memory

Bare metal Linux on 440 can "overmap" RAM in the kernel linear map, so that it
can use large (256MB) mappings even if memory isn't a multiple of 256MB. To
prevent the hardware prefetcher from loading from an invalid physical address
through that mapping, it's marked Guarded.

However, KVM must ensure that all guest mappings are backed by real physical
RAM (since a deliberate access through a guarded mapping could still cause a
machine check). Accordingly, we don't need to make our mappings guarded, so
let's allow prefetching as the designers intended.

Curiously this patch didn't affect performance at all on the quick test I
tried, but it's clearly the right thing to do anyways and may improve other
workloads.

Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/powerpc/kvm/44x_tlb.c