mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-13 14:14:37 +00:00
2a36ab717e
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. Signed-off-by: Peter Oskolkov <posk@google.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Link: https://lkml.kernel.org/r/20200923233618.2572849-1-posk@google.com |
||
---|---|---|
.. | ||
autogroup.h | ||
clock.h | ||
coredump.h | ||
cpufreq.h | ||
cputime.h | ||
deadline.h | ||
debug.h | ||
hotplug.h | ||
idle.h | ||
init.h | ||
isolation.h | ||
jobctl.h | ||
loadavg.h | ||
mm.h | ||
nohz.h | ||
numa_balancing.h | ||
prio.h | ||
rt.h | ||
sd_flags.h | ||
signal.h | ||
smt.h | ||
stat.h | ||
sysctl.h | ||
task.h | ||
task_stack.h | ||
topology.h | ||
types.h | ||
user.h | ||
wake_q.h | ||
xacct.h |