[RFC PATCH 0/2] Introduce serialized smp_call_function APIs

Mathieu Desnoyers posted 2 patches 2 years, 4 months ago
include/linux/smp.h       |  40 ++++++++++++++
kernel/sched/membarrier.c |  24 +++------
kernel/smp.c              | 106 +++++++++++++++++++++++++++++++++-----
3 files changed, 141 insertions(+), 29 deletions(-)
[RFC PATCH 0/2] Introduce serialized smp_call_function APIs
Posted by Mathieu Desnoyers 2 years, 4 months ago
commit 944d5fe50f3f ("sched/membarrier: reduce the ability to hammer on sys_membarrier")
introduces a mutex over all membarrier operations to reduce its ability
to slow down the rest of the system.

This RFC series has two objectives:

1) Move this mutex to the smp_call_function APIs so other system calls
   using smp_call_function IPIs are limited in the same way,

2) Restore scalability of MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ with
   MEMBARRIER_CMD_FLAG_CPU, which targets specific CPUs with IPIs.
   This may or may not be useful, and I would welcome benchmarks from
   users of this feature to figure out if this is worth it.

This series applies on top of v6.8.

Thanks,

Mathieu

Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Andrew Hunter <ahh@google.com>
Cc: Maged Michael <maged.michael@gmail.com>
Cc: gromer@google.com
Cc: Avi Kivity <avi@scylladb.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Peter Oskolkov <posk@google.com>

Mathieu Desnoyers (2):
  smp: Implement serialized smp_call_function APIs
  sched/membarrier: Use serialized smp_call_function APIs

 include/linux/smp.h       |  40 ++++++++++++++
 kernel/sched/membarrier.c |  24 +++------
 kernel/smp.c              | 106 +++++++++++++++++++++++++++++++++-----
 3 files changed, 141 insertions(+), 29 deletions(-)

-- 
2.39.2
Re: [RFC PATCH 0/2] Introduce serialized smp_call_function APIs
Posted by Avi Kivity 2 years, 4 months ago
[resend in plain text for the list]

On Wed, 2024-03-13 at 16:56 -0400, Mathieu Desnoyers wrote:
> commit 944d5fe50f3f ("sched/membarrier: reduce the ability to hammer
> on sys_membarrier")
> introduces a mutex over all membarrier operations to reduce its
> ability
> to slow down the rest of the system.
> 
> This RFC series has two objectives:
> 
> 1) Move this mutex to the smp_call_function APIs so other system
> calls
>    using smp_call_function IPIs are limited in the same way,
> 
> 2) Restore scalability of MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ with
>    MEMBARRIER_CMD_FLAG_CPU, which targets specific CPUs with IPIs.
>    This may or may not be useful, and I would welcome benchmarks from
>    users of this feature to figure out if this is worth it.
> 

I see this doesn't restore scaling of MEMBARRIER_CMD_PRIVATE_EXPEDITED,
which I use (and wasn't aware was broken).

I don't have comments on the patches, but do have ideas on how to work
around the problem in Seastar. So this was a useful heads-up for me.