]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: MMU: Don't allocate gfns page for direct mmu pages
authorLai Jiangshan <laijs@cn.fujitsu.com>
Wed, 26 May 2010 08:49:59 +0000 (16:49 +0800)
committerAvi Kivity <avi@redhat.com>
Sun, 1 Aug 2010 07:35:52 +0000 (10:35 +0300)
commitb0c969edc2bec11c9300d9d316f80c5fc9f985f1
treef0bbd50c3f237fa93c87207dc29602cbdcf9ad63
parent960abbd5b64721e297533ab9ffa2d89c75f4a90d
KVM: MMU: Don't allocate gfns page for direct mmu pages

When sp->role.direct is set, sp->gfns does not contain any essential
information, leaf sptes reachable from this sp are for a continuous
guest physical memory range (a linear range).
So sp->gfns[i] (if it was set) equals to sp->gfn + i. (PT_PAGE_TABLE_LEVEL)
Obviously, it is not essential information, we can calculate it when need.

It means we don't need sp->gfns when sp->role.direct=1,
Thus we can save one page usage for every kvm_mmu_page.

Note:
  Access to sp->gfns must be wrapped by kvm_mmu_page_get_gfn()
  or kvm_mmu_page_set_gfn().
  It is only exposed in FNAME(sync_page).

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Documentation/kvm/mmu.txt
arch/x86/kvm/mmu.c
arch/x86/kvm/paging_tmpl.h