1. 02 Apr, 2020 1 commit
    • Nicholas Piggin's avatar
      powerpc/64s: Fix doorbell wakeup msgclr optimisation · 0c89649a
      Nicholas Piggin authored
      Commit 3282a3da ("powerpc/64: Implement soft interrupt replay in C")
      broke the doorbell wakeup optimisation introduced by commit a9af97aa
      ("powerpc/64s: msgclr when handling doorbell exceptions from system
      reset").
      
      This patch restores the msgclr, in C code. It's now done in the system
      reset wakeup path rather than doorbell interrupt replay where it used
      to be, because it is always the right thing to do in the wakeup case,
      but it may be rarely of use in other interrupt replay situations in
      which case it's wasted work - we would have to run measurements to see
      if that was a worthwhile optimisation, and I suspect it would not be.
      
      The results are similar to those in the original commit, test on POWER8
      of context_switch selftests benchmark with polling idle disabled (e.g.,
      always nap, giving cross-CPU IPIs) gives the following results:
      
                                        broken           patched
        Different threads, same core:   317k/s           375k/s    +18.7%
        Different cores:                280k/s           282k/s     +1.0%
      
      Fixes: 3282a3da ("powerpc/64: Implement soft interrupt replay in C")
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20200402121212.1118218-1-npiggin@gmail.com
      0c89649a
  2. 01 Apr, 2020 39 commits