• Aneesh Kumar K.V's avatar
    KVM: PPC: BOOK3S: HV: Add mixed page-size support for guest · 1f365bb0
    Aneesh Kumar K.V authored
    On recent IBM Power CPUs, while the hashed page table is looked up using
    the page size from the segmentation hardware (i.e. the SLB), it is
    possible to have the HPT entry indicate a larger page size.  Thus for
    example it is possible to put a 16MB page in a 64kB segment, but since
    the hash lookup is done using a 64kB page size, it may be necessary to
    put multiple entries in the HPT for a single 16MB page.  This
    capability is called mixed page-size segment (MPSS).  With MPSS,
    there are two relevant page sizes: the base page size, which is the
    size used in searching the HPT, and the actual page size, which is the
    size indicated in the HPT entry. [ Note that the actual page size is
    always >= base page size ].
    
    We use "ibm,segment-page-sizes" device tree node to advertise
    the MPSS support to PAPR guest. The penc encoding indicates whether
    we support a specific combination of base page size and actual
    page size in the same segment. We also use the penc value in the
    LP encoding of HPTE entry.
    
    This patch exposes MPSS support to KVM guest by advertising the
    feature via "ibm,segment-page-sizes". It also adds the necessary changes
    to decode the base page size and the actual page size correctly from the
    HPTE entry.
    Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    1f365bb0
book3s_hv.c 62.7 KB