[PATCH tip/core/rcu 0/3] SRCU updates for 4.11

From: Paul E. McKenney
Date: Sat Jan 14 2017 - 04:21:00 EST


Hello!

This series provides updates to SRCU:

1. This is a rewrite of the algorithm simplifying reader-count
tracking. Algorithm courtesy of Mathieu Desnoyers, implementation
courtesy of Lance Roy.

2. Force full grace-period ordering in SRCU.

3. Add CBMC-based formal verification for SRCU, courtesy of Lance Roy.

Thanx, Paul

------------------------------------------------------------------------

include/linux/rcupdate.h | 12
include/linux/srcu.h | 4
kernel/rcu/rcutorture.c | 18
kernel/rcu/srcu.c | 122 +--
kernel/rcu/tree.h | 12
tools/testing/selftests/rcutorture/formal/srcu-cbmc/.gitignore | 1
tools/testing/selftests/rcutorture/formal/srcu-cbmc/Makefile | 16
tools/testing/selftests/rcutorture/formal/srcu-cbmc/include/linux/.gitignore | 1
tools/testing/selftests/rcutorture/formal/srcu-cbmc/include/linux/kconfig.h | 1
tools/testing/selftests/rcutorture/formal/srcu-cbmc/include/linux/types.h | 155 ++++
tools/testing/selftests/rcutorture/formal/srcu-cbmc/modify_srcu.awk | 375 ++++++++++
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/assume.h | 16
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/barriers.h | 41 +
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/bug_on.h | 13
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/combined_source.c | 13
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/config.h | 27
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/include_srcu.c | 31
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/int_typedefs.h | 33
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/locks.h | 220 +++++
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/misc.c | 11
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/misc.h | 58 +
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/percpu.h | 92 ++
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/preempt.c | 78 ++
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/preempt.h | 58 +
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/simple_sync_srcu.c | 50 +
tools/testing/selftests/rcutorture/formal/srcu-cbmc/src/workqueues.h | 102 ++
tools/testing/selftests/rcutorture/formal/srcu-cbmc/tests/store_buffering/.gitignore | 1
tools/testing/selftests/rcutorture/formal/srcu-cbmc/tests/store_buffering/Makefile | 11
tools/testing/selftests/rcutorture/formal/srcu-cbmc/tests/store_buffering/assert_end.fail | 1
tools/testing/selftests/rcutorture/formal/srcu-cbmc/tests/store_buffering/force.fail | 1
tools/testing/selftests/rcutorture/formal/srcu-cbmc/tests/store_buffering/force2.fail | 1
tools/testing/selftests/rcutorture/formal/srcu-cbmc/tests/store_buffering/force3.fail | 1
tools/testing/selftests/rcutorture/formal/srcu-cbmc/tests/store_buffering/test.c | 72 +
tools/testing/selftests/rcutorture/formal/srcu-cbmc/tests/test_script.sh | 102 ++
34 files changed, 1661 insertions(+), 89 deletions(-)