]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit3ebfb8a06c8ec7d0b5731c35ad9e1661dfdc63c1
tree154d350360e1f619d357bf3ded4d2ac3cefeadb2
parentb88f42aa0aafe35e7ee1a7ab3d03d2cce2bc74a7
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