Skip to content

introduce sys_membarrier(): process-wide memory barrier (v8)

Mathieu Desnoyers linux-arch lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest3 patches 37 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3Create spin lock/spin unlock with distinct memory barrierarch/x86/Kconfig arch/x86/include/asm/spinlock-mb.h include/asm-generic/spinlock-mb.h +2 more+65 -06 replies
2/3scheduler: add full memory barriers upon task switch at runqueue lock/unlockkernel/sched.c+20 -431 replies
3/3introduce sys_membarrier(): process-wide memory barrier (v8)arch/x86/ia32/ia32entry.S arch/x86/include/asm/unistd_32.h arch/x86/include/asm/unistd_64.h +4 more+180 -10 replies

Reviews trailers per patch

2 of 3 patches have a Reviewed-by or Acked-by.

PatchKOSAKI MotohiroSteven Rostedt
1/3
2/3A-b
3/3A-b A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [patch 0/3] introduce sys_membarrier(): process-wide memory barrier (v8)

Hi,

Here is an updated version of the sys_membarrier system call. It implements a system call that allows userspace to distribute the overhead of memory barriers asymmetrically. It is particularly useful for Userspace RCU (liburcu), to allow the RCU read-side to only issue compiler barriers, matched by calls to sys_membarrier() in the userspace synchronize_rcu().

Even though sys_membarrier should be portable to other architecture as-is without arch-specific modifications, I propose to incrementally reserve the system call IDs as we test it on each architecture.

Here is a version that I think should be ready for merging. It is based on the 2.6.33-rc6 kernel. I would appreciate if people who gave their Acked-by in the RFC rounds could confirm their Acked-by following the patch set updates.

Thanks,

Mathieu

Signature · 2 lines
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68