On Thu, Sep 24, 2020 at 09:51:43AM -0400, Mathieu Desnoyers wrote:
----- On Sep 23, 2020, at 7:36 PM, Peter Oskolkov posk@google.com wrote:
This patchset is based on Google-internal RSEQ work done by Paul Turner and Andrew Hunter.
When working with per-CPU RSEQ-based memory allocations, it is sometimes important to make sure that a global memory location is no longer accessed from RSEQ critical sections. For example, there can be two per-CPU lists, one is "active" and accessed per-CPU, while another one is inactive and worked on asynchronously "off CPU" (e.g. garbage collection is performed). Then at some point the two lists are swapped, and a fast RCU-like mechanism is required to make sure that the previously active list is no longer accessed.
This patch introduces such a mechanism: in short, membarrier() syscall issues an IPI to a CPU, restarting a potentially active RSEQ critical section on the CPU.
Acked-by: Mathieu Desnoyers mathieu.desnoyers@efficios.com
Thanks!, I've queued them in:
git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/core
please double check the Subject/Changelog edits I made. Once all the robots are green, I'll push out the lot to -tip.