KVM: PPC: Keep page physical addresses in per-slot arrays
authorPaul Mackerras <paulus@samba.org>
Mon, 12 Dec 2011 12:28:21 +0000 (12:28 +0000)
committerAvi Kivity <avi@redhat.com>
Mon, 5 Mar 2012 12:52:35 +0000 (14:52 +0200)
commitb2b2f16508de10bb1863bdd4ec1fa212111df5b4
tree154d350360e1f619d357bf3ded4d2ac3cefeadb2
parent8936dda4c2ed070ecebd786baf35b08584accf4a
KVM: PPC: Keep page physical addresses in per-slot arrays

This allocates an array for each memory slot that is added to store
the physical addresses of the pages in the slot.  This array is
vmalloc'd and accessed in kvmppc_h_enter using real_vmalloc_addr().
This allows us to remove the ram_pginfo field from the kvm_arch
struct, and removes the 64GB guest RAM limit that we had.

We use the low-order bits of the array entries to store a flag
indicating that we have done get_page on the corresponding page,
and therefore need to call put_page when we are finished with the
page.  Currently this is set for all pages except those in our
special RMO regions.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/powerpc/include/asm/kvm_host.h
arch/powerpc/kvm/book3s_64_mmu_hv.c
arch/powerpc/kvm/book3s_hv.c
arch/powerpc/kvm/book3s_hv_rm_mmu.c