linux/include
Peter Oskolkov 2a36ab717e rseq/membarrier: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ
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
History 2020-09-25 14:23:27 +02:00
..
acpi ACPI updates for 5.9-rc1 2020-08-03 20:37:22 -07:00
asm-generic iomap: constify ioreadX() iomem argument (as in generic implementation) 2020-08-14 19:56:57 -07:00
clocksource include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
crypto mm, treewide: rename kzfree() to kfree_sensitive() 2020-08-07 11:33:22 -07:00
drm Linux 5.8 2020-08-11 11:58:31 +10:00
dt-bindings Here's some more updates that missed the last pull request because I 2020-08-12 12:19:49 -07:00
keys It's been a busy cycle for documentation - hopefully the busiest for a 2020-08-04 22:47:54 -07:00
kunit kunit: add support for named resources 2020-06-26 14:12:00 -06:00
kvm KVM: arm64: timers: Move timer registers to the sys_regs file 2020-07-07 09:28:38 +01:00
linux rseq/membarrier: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ 2020-09-25 14:23:27 +02:00
math-emu nds32: Mark expected switch fall-throughs 2019-08-29 11:06:56 -05:00
media media updates for v5.9-rc1 2020-08-07 13:00:53 -07:00
memory memory: add Renesas RPC-IF driver 2020-07-01 22:45:14 +01:00
misc ocxl: Address kernel doc errors & warnings 2020-07-29 23:47:52 +10:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-08-13 20:03:11 -07:00
pcmcia pcmcia: Replace zero-length array with flexible-array 2020-05-18 10:28:31 +02:00
ras RAS: Use consistent types for UUIDs 2019-01-25 16:40:40 +01:00
rdma RDMA 5.9 merge window pull request 2020-08-06 16:43:36 -07:00
scsi scsi: core: Only return started requests from scsi_host_find_tag() 2020-07-24 22:09:56 -04:00
soc include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
sound ALSA: hda: Add dma stop delay variable 2020-08-05 12:27:47 +02:00
target scsi: target: Make iscsit_register_transport() return void 2020-08-04 20:56:56 -04:00
trace Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-08-13 20:03:11 -07:00
uapi rseq/membarrier: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ 2020-09-25 14:23:27 +02:00
vdso lib/vdso: Allow to add architecture-specific vdso data 2020-08-06 10:57:30 +02:00
video video: Replace zero-length array with flexible-array member 2020-03-02 16:32:17 +01:00
xen xen: branch for v5.9-rc1b 2020-08-14 13:34:37 -07:00