• Balbir Singh's avatar
    powerpc/mm/radix: Split linear mapping on hot-unplug · 4dd5f8a9
    Balbir Singh authored
    This patch splits the linear mapping if the hot-unplug range is
    smaller than the mapping size. The code detects if the mapping needs
    to be split into a smaller size and if so, uses the stop machine
    infrastructure to clear the existing mapping and then remap the
    remaining range using a smaller page size.
    
    The code will skip any region of the mapping that overlaps with kernel
    text and warn about it once. We don't want to remove a mapping where
    the kernel text and the LMB we intend to remove overlap in the same
    TLB mapping as it may affect the currently executing code.
    
    I've tested these changes under a kvm guest with 2 vcpus, from a split
    mapping point of view, some of the caveats mentioned above applied to
    the testing I did.
    
    Fixes: 4b5d62ca ("powerpc/mm: add radix__remove_section_mapping()")
    Signed-off-by: default avatarBalbir Singh <bsingharora@gmail.com>
    [mpe: Tweak change log to match updated behaviour]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    4dd5f8a9
pgtable-radix.c 24.4 KB