• Aneesh Kumar K.V's avatar
    powerpc/mm/radix: Create separate mappings for hot-plugged memory · af9d00e9
    Aneesh Kumar K.V authored
    To enable memory unplug without splitting kernel page table
    mapping, we force the max mapping size to the LMB size. LMB
    size is the unit in which hypervisor will do memory add/remove
    operation.
    
    Pseries systems supports max LMB size of 256MB. Hence on pseries,
    we now end up mapping memory with 2M page size instead of 1G. To improve
    that we want hypervisor to hint the kernel about the hotplug
    memory range. That was added that as part of
    
    commit b6eca183 ("powerpc/kernel: Enables memory
    hot-remove after reboot on pseries guests")
    
    But PowerVM doesn't provide that hint yet. Once we get PowerVM
    updated, we can then force the 2M mapping only to hot-pluggable
    memory region using memblock_is_hotpluggable(). Till then
    let's depend on LMB size for finding the mapping page size
    for linear range.
    
    With this change KVM guest will also be doing linear mapping with
    2M page size.
    
    The actual TLB benefit of mapping guest page table entries with
    hugepage size can only be materialized if the partition scoped
    entries are also using the same or higher page size. A guest using
    1G hugetlbfs backing guest memory can have a performance impact with
    the above change.
    Signed-off-by: default avatarBharata B Rao <bharata@linux.ibm.com>
    Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    [mpe: Fold in fix from Aneesh spotted by lkp@intel.com]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200709131925.922266-5-aneesh.kumar@linux.ibm.com
    af9d00e9
mmu.h 7.34 KB