[PATCH tip/core/rcu v2 0/3] SRCU updates for 4.11
From: Paul E. McKenney
Date: Sun Jan 15 2017 - 17:41:53 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.
Updates since v1:
o Applied Ingo Molnar feedback.
o Fix some checkpatch issues.
Thanx, Paul
------------------------------------------------------------------------
include/linux/rcupdate.h | 12
include/linux/srcu.h | 10
kernel/rcu/rcutorture.c | 19
kernel/rcu/srcu.c | 128 +--
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, 1666 insertions(+), 97 deletions(-)