• N
    powerpc/64s/idle: Avoid SRR usage in idle sleep/wake paths · 9d292501
    Nicholas Piggin 提交于
    Idle code now always runs at the 0xc... effective address whether
    in real or virtual mode. This means rfid can be ditched, along
    with a lot of SRR manipulations.
    
    In the wakeup path, carry SRR1 around in r12. Use mtmsrd to change
    MSR states as required.
    
    This also balances the return prediction for the idle call, by
    doing blr rather than rfid to return to the idle caller.
    
    On POWER9, 2-process context switch on different cores, with snooze
    disabled, increases performance by 2%.
    Signed-off-by: NNicholas Piggin <npiggin@gmail.com>
    [mpe: Incorporate v2 fixes from Nick]
    Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
    9d292501
book3s_hv_rmhandlers.S 74.0 KB