linux/include
Oleg Nesterov 89da3b94bb rcu/sync: Simplify the state machine
With this patch rcu_sync has a single state variable and the transition rules
become really simple:

	GP_IDLE   - owned by the first rcu_sync_enter() which moves it to

	GP_ENTER  - owned by rcu-callback which moves it to

	GP_PASSED - owned by the last rcu_sync_exit() which moves it to

	GP_EXIT   - and this is the only "nontrivial" state.

		rcu-callback moves it back to GP_IDLE unless another enter()
		comes before a GP pass.

		If rcu-callback is invoked before the next rcu_sync_exit() it
		must see gp_count incremented by that enter() and set GP_PASSED.

		Otherwise, if the next rcu_sync_exit() wins the race, it will
		move it to

	GP_REPLAY - owned by rcu-callback which moves it to GP_EXIT

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
[ paulmck: While here, apply READ_ONCE() and WRITE_ONCE() to ->gp_state. ]
[ paulmck: Tweaks to make htmldocs happy. (Reported by kbuild test robot.) ]
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
2019-05-28 09:05:23 -07:00
..
acpi More ACPI updates for 5.2-rc1 2019-05-15 08:58:49 -07:00
asm-generic Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 10:23:24 -07:00
clocksource
crypto crypto: shash - remove shash_desc::flags 2019-04-25 15:38:12 +08:00
drm drm pull request for 5.2 2019-05-08 21:35:19 -07:00
dt-bindings ARM: Device-tree updates 2019-05-16 08:38:17 -07:00
keys
kvm
linux rcu/sync: Simplify the state machine 2019-05-28 09:05:23 -07:00
math-emu
media media updates for v5.2-rc1 2019-05-16 11:57:16 -07:00
memory
misc ocxl: Provide global MMIO accessors for external drivers 2019-05-03 02:55:02 +10:00
net AFS fixes 2019-05-16 17:00:13 -07:00
pcmcia
ras
rdma RDMA: Add EFA related definitions 2019-05-06 13:47:50 -03:00
scsi
soc Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 11:11:20 -07:00
sound sound fixes for 5.2-rc1 2019-05-17 13:57:54 -07:00
target
trace The major changes in this tracing update includes: 2019-05-15 16:05:47 -07:00
uapi * ARM: support for SVE and Pointer Authentication in guests, PMU improvements 2019-05-17 10:33:30 -07:00
video
xen