• Mark Rutland's avatar
    arm64: hibernate: reduce TLB maintenance scope · 0a7d87a7
    Mark Rutland authored
    In break_before_make_ttbr_switch we perform broadcast TLB maintenance
    for the inner shareable domain, and use a DSB ISH to complete this.
    However, at the point we execute this, secondary CPUs are either
    physically offline, or executing code outside of the kernel. Upon
    entering the kernel, secondary CPUs will invalidate their TLBs before
    enabling their MMUs.
    
    Thus we do not need to invalidate TLBs of other CPUs, and as with
    idmap_cpu_replace_ttbr1 we can reduce the scope of maintenance to the
    TLBs of the local CPU. This keeps our TLB maintenance code consistent,
    and is a minor optimisation.
    
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Acked-by: default avatarJames Morse <james.morse@arm.com>
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    0a7d87a7
hibernate-asm.S 5.17 KB