• Nicholas Piggin's avatar
    powerpc/64s: Stop using bit in HSPRG0 to test winkle · 544686ca
    Nicholas Piggin authored
    
    
    The POWER8 idle code has a neat trick of programming the power on engine
    to restore a low bit into HSPRG0, so idle wakeup code can test and see
    if it has been programmed this way and therefore lost all state. Restore
    time can be reduced if winkle has not been reached.
    
    However this messes with our r13 PACA pointer, and requires HSPRG0 to be
    written to. It also optimizes the slowest and most uncommon case at the
    expense of another SPR write in the common nap state wakeup.
    
    Remove this complexity and assume winkle sleeps always require a state
    restore. This speedup could be made entirely contained within the winkle
    idle code by counting per-core winkles and setting a thread bitmap when
    all have gone to winkle.
    Reviewed-by: default avatarGautham R. Shenoy <ego@linux.vnet.ibm.com>
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    544686ca
idle_book3s.S 18.4 KB