• Lai Jiangshan's avatar
    KVM: MMU: Don't allocate gfns page for direct mmu pages · 2032a93d
    Lai Jiangshan authored
    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: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    2032a93d
mmu.c 83 KB