KVM: Avoid wasting pages for small lpage_info arrays
authorTakuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Sun, 20 May 2012 04:15:07 +0000 (13:15 +0900)
committerAvi Kivity <avi@redhat.com>
Tue, 5 Jun 2012 13:29:49 +0000 (16:29 +0300)
commitc1a7b32a14138f908df52d7c53b5ce3415ec6b50
tree6f61d847e217212de98c8bdc9563ef09e25019e1
parent92eca8faad2d1b136c939bc122842dcdabd6ff46
KVM: Avoid wasting pages for small lpage_info arrays

lpage_info is created for each large level even when the memory slot is
not for RAM.  This means that when we add one slot for a PCI device, we
end up allocating at least KVM_NR_PAGE_SIZES - 1 pages by vmalloc().

To make things worse, there is an increasing number of devices which
would result in more pages being wasted this way.

This patch mitigates this problem by using kvm_kvzalloc().

Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/x86.c
include/linux/kvm_host.h
virt/kvm/kvm_main.c