* [PATCH tip/core/rcu 1/9] torture: Add a check for CONFIG_RCU_STALL_COMMON for TINY01
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
@ 2017-01-14 9:25 ` Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 2/9] torture: Add CONFIG_PROVE_RCU_REPEATEDLY=y for TINY02 Paul E. McKenney
` (8 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-14 9:25 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, dvhart, fweisbec,
oleg, bobby.prani, Paul E. McKenney
This commit verifies coverage of testing with CONFIG_RCU_STALL_COMMON=n.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
tools/testing/selftests/rcutorture/configs/rcu/TINY01 | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01
index 0a63e073a00c..6db705e55487 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01
@@ -7,6 +7,7 @@ CONFIG_HZ_PERIODIC=n
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ_FULL=n
CONFIG_RCU_TRACE=n
+#CHECK#CONFIG_RCU_STALL_COMMON=n
CONFIG_DEBUG_LOCK_ALLOC=n
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
CONFIG_PREEMPT_COUNT=n
--
2.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH tip/core/rcu 2/9] torture: Add CONFIG_PROVE_RCU_REPEATEDLY=y for TINY02
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 1/9] torture: Add a check for CONFIG_RCU_STALL_COMMON for TINY01 Paul E. McKenney
@ 2017-01-14 9:25 ` Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 3/9] torture: Add tests without slow grace period setup/cleanup Paul E. McKenney
` (7 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-14 9:25 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, dvhart, fweisbec,
oleg, bobby.prani, Paul E. McKenney
This commit adds CONFIG_PROVE_RCU_REPEATEDLY=y, which has been untested
for quite some time.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
tools/testing/selftests/rcutorture/configs/rcu/TINY02 | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02
index f1892e0371c9..3a05bac2ef29 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02
@@ -8,6 +8,7 @@ CONFIG_NO_HZ_IDLE=n
CONFIG_NO_HZ_FULL=n
CONFIG_RCU_TRACE=y
CONFIG_PROVE_LOCKING=y
+CONFIG_PROVE_RCU_REPEATEDLY=y
#CHECK#CONFIG_PROVE_RCU=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
--
2.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH tip/core/rcu 3/9] torture: Add tests without slow grace period setup/cleanup
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 1/9] torture: Add a check for CONFIG_RCU_STALL_COMMON for TINY01 Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 2/9] torture: Add CONFIG_PROVE_RCU_REPEATEDLY=y for TINY02 Paul E. McKenney
@ 2017-01-14 9:25 ` Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 4/9] torture: Run at least one test with CONFIG_DEBUG_OBJECTS_RCU_HEAD Paul E. McKenney
` (6 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-14 9:25 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, dvhart, fweisbec,
oleg, bobby.prani, Paul E. McKenney
This commit moves CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP,
CONFIG_RCU_TORTURE_TEST_SLOW_INIT, and CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT
from CFcommon to all of the TREE scenarios other than TREE08 and TREE09
in order to do at least some testing without these Kconfig options set.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
tools/testing/selftests/rcutorture/configs/rcu/CFcommon | 3 ---
tools/testing/selftests/rcutorture/configs/rcu/TREE01 | 3 +++
tools/testing/selftests/rcutorture/configs/rcu/TREE02 | 3 +++
tools/testing/selftests/rcutorture/configs/rcu/TREE03 | 3 +++
tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 3 +++
tools/testing/selftests/rcutorture/configs/rcu/TREE05 | 3 +++
tools/testing/selftests/rcutorture/configs/rcu/TREE06 | 3 +++
tools/testing/selftests/rcutorture/configs/rcu/TREE07 | 3 +++
8 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/CFcommon b/tools/testing/selftests/rcutorture/configs/rcu/CFcommon
index f824b4c9d9d9..d2d2a86139db 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/CFcommon
+++ b/tools/testing/selftests/rcutorture/configs/rcu/CFcommon
@@ -1,5 +1,2 @@
CONFIG_RCU_TORTURE_TEST=y
CONFIG_PRINTK_TIME=y
-CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
-CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
-CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE01 b/tools/testing/selftests/rcutorture/configs/rcu/TREE01
index f572b873c620..359cb258f639 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE01
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE01
@@ -16,3 +16,6 @@ CONFIG_DEBUG_LOCK_ALLOC=n
CONFIG_RCU_BOOST=n
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
CONFIG_RCU_EXPERT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
+CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE02 b/tools/testing/selftests/rcutorture/configs/rcu/TREE02
index ef6a22c44dea..638150c777ed 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE02
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE02
@@ -20,3 +20,6 @@ CONFIG_PROVE_LOCKING=n
CONFIG_RCU_BOOST=n
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
CONFIG_RCU_EXPERT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
+CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE03 b/tools/testing/selftests/rcutorture/configs/rcu/TREE03
index 7a17c503b382..3b93ee544e70 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE03
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE03
@@ -17,3 +17,6 @@ CONFIG_RCU_BOOST=y
CONFIG_RCU_KTHREAD_PRIO=2
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
CONFIG_RCU_EXPERT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
+CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04
index 17cbe098b115..a5fa5042fb7a 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04
@@ -19,3 +19,6 @@ CONFIG_RCU_NOCB_CPU=n
CONFIG_DEBUG_LOCK_ALLOC=n
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
CONFIG_RCU_EXPERT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
+CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05
index 1257d3227b1e..d4cdc0d74e16 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05
@@ -19,3 +19,6 @@ CONFIG_PROVE_LOCKING=y
#CHECK#CONFIG_PROVE_RCU=y
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
CONFIG_RCU_EXPERT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
+CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06
index d3e456b74cbe..4cb02bd28f08 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06
@@ -20,3 +20,6 @@ CONFIG_PROVE_LOCKING=y
#CHECK#CONFIG_PROVE_RCU=y
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
CONFIG_RCU_EXPERT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
+CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE07 b/tools/testing/selftests/rcutorture/configs/rcu/TREE07
index 3956b4131f72..b12a3ea1867e 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE07
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE07
@@ -19,3 +19,6 @@ CONFIG_RCU_NOCB_CPU=n
CONFIG_DEBUG_LOCK_ALLOC=n
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
CONFIG_RCU_EXPERT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
+CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
+CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
--
2.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH tip/core/rcu 4/9] torture: Run at least one test with CONFIG_DEBUG_OBJECTS_RCU_HEAD
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
` (2 preceding siblings ...)
2017-01-14 9:25 ` [PATCH tip/core/rcu 3/9] torture: Add tests without slow grace period setup/cleanup Paul E. McKenney
@ 2017-01-14 9:25 ` Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 5/9] torture: Run one test with DEBUG_LOCK_ALLOC but not PROVE_LOCKING Paul E. McKenney
` (5 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-14 9:25 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, dvhart, fweisbec,
oleg, bobby.prani, Paul E. McKenney
This commit enables the CONFIG_DEBUG_OBJECTS_RCU_HEAD Kconfig option
in TREE02 in order to do at least some testing with this enabled.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
tools/testing/selftests/rcutorture/configs/rcu/TREE02 | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE02 b/tools/testing/selftests/rcutorture/configs/rcu/TREE02
index 638150c777ed..c1ab5926568b 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE02
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE02
@@ -23,3 +23,4 @@ CONFIG_RCU_EXPERT=y
CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
+CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
--
2.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH tip/core/rcu 5/9] torture: Run one test with DEBUG_LOCK_ALLOC but not PROVE_LOCKING
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
` (3 preceding siblings ...)
2017-01-14 9:25 ` [PATCH tip/core/rcu 4/9] torture: Run at least one test with CONFIG_DEBUG_OBJECTS_RCU_HEAD Paul E. McKenney
@ 2017-01-14 9:25 ` Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 6/9] torture: Run a couple scenarios with CONFIG_RCU_EQS_DEBUG Paul E. McKenney
` (4 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-14 9:25 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, dvhart, fweisbec,
oleg, bobby.prani, Paul E. McKenney
This commit sets CONFIG_DEBUG_LOCK_ALLOC but not CONFIG_PROVE_LOCKING
for TREE08 in order to have at least one test with this configuration.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
tools/testing/selftests/rcutorture/configs/rcu/TREE08 | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE08 b/tools/testing/selftests/rcutorture/configs/rcu/TREE08
index bb9b0c1a23c2..22181eb390fc 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE08
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE08
@@ -17,8 +17,7 @@ CONFIG_RCU_FANOUT_LEAF=2
CONFIG_RCU_NOCB_CPU=y
CONFIG_RCU_NOCB_CPU_ALL=y
CONFIG_DEBUG_LOCK_ALLOC=n
-CONFIG_PROVE_LOCKING=y
-#CHECK#CONFIG_PROVE_RCU=y
+CONFIG_PROVE_LOCKING=n
CONFIG_RCU_BOOST=n
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
CONFIG_RCU_EXPERT=y
--
2.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH tip/core/rcu 6/9] torture: Run a couple scenarios with CONFIG_RCU_EQS_DEBUG
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
` (4 preceding siblings ...)
2017-01-14 9:25 ` [PATCH tip/core/rcu 5/9] torture: Run one test with DEBUG_LOCK_ALLOC but not PROVE_LOCKING Paul E. McKenney
@ 2017-01-14 9:25 ` Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 7/9] torture: Update RCU test scenario documentation Paul E. McKenney
` (3 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-14 9:25 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, dvhart, fweisbec,
oleg, bobby.prani, Paul E. McKenney
This commit runs TREE04 and TREE08 with CONFIG_RCU_EQS_DEBUG=y,
enabling dyntick-counter checking on those two tests.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 1 +
tools/testing/selftests/rcutorture/configs/rcu/TREE08 | 1 +
2 files changed, 2 insertions(+)
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04
index a5fa5042fb7a..5af758e783c7 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04
@@ -22,3 +22,4 @@ CONFIG_RCU_EXPERT=y
CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP=y
CONFIG_RCU_TORTURE_TEST_SLOW_INIT=y
CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT=y
+CONFIG_RCU_EQS_DEBUG=y
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE08 b/tools/testing/selftests/rcutorture/configs/rcu/TREE08
index 22181eb390fc..099cc63c6a3b 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TREE08
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE08
@@ -21,3 +21,4 @@ CONFIG_PROVE_LOCKING=n
CONFIG_RCU_BOOST=n
CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
CONFIG_RCU_EXPERT=y
+CONFIG_RCU_EQS_DEBUG=y
--
2.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH tip/core/rcu 7/9] torture: Update RCU test scenario documentation
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
` (5 preceding siblings ...)
2017-01-14 9:25 ` [PATCH tip/core/rcu 6/9] torture: Run a couple scenarios with CONFIG_RCU_EQS_DEBUG Paul E. McKenney
@ 2017-01-14 9:25 ` Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 8/9] locktorture: Fix potential memory leak with rw lock test Paul E. McKenney
` (2 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-14 9:25 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, dvhart, fweisbec,
oleg, bobby.prani, Paul E. McKenney
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
.../selftests/rcutorture/doc/TREE_RCU-kconfig.txt | 33 ++++++++++++++++++++--
1 file changed, 31 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
index 4e2b1893d40d..364801b1a230 100644
--- a/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
+++ b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
@@ -14,6 +14,7 @@ CONFIG_NO_HZ_FULL_SYSIDLE -- Do one.
CONFIG_PREEMPT -- Do half. (First three and #8.)
CONFIG_PROVE_LOCKING -- Do several, covering CONFIG_DEBUG_LOCK_ALLOC=y and not.
CONFIG_PROVE_RCU -- Hardwired to CONFIG_PROVE_LOCKING.
+CONFIG_PROVE_RCU_REPEATEDLY -- Do one.
CONFIG_RCU_BOOST -- one of PREEMPT_RCU.
CONFIG_RCU_KTHREAD_PRIO -- set to 2 for _BOOST testing.
CONFIG_RCU_FANOUT -- Cover hierarchy, but overlap with others.
@@ -25,7 +26,12 @@ CONFIG_RCU_NOCB_CPU_NONE -- Do one.
CONFIG_RCU_NOCB_CPU_ZERO -- Do one.
CONFIG_RCU_TRACE -- Do half.
CONFIG_SMP -- Need one !SMP for PREEMPT_RCU.
-!RCU_EXPERT -- Do a few, but these have to be vanilla configurations.
+CONFIG_RCU_EXPERT=n -- Do a few, but these have to be vanilla configurations.
+CONFIG_RCU_EQS_DEBUG -- Do at least one for CONFIG_NO_HZ_FULL and not.
+CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP -- Do for all but a couple TREE scenarios.
+CONFIG_RCU_TORTURE_TEST_SLOW_INIT -- Do for all but a couple TREE scenarios.
+CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT -- Do for all but a couple TREE scenarios.
+
RCU-bh: Do one with PREEMPT and one with !PREEMPT.
RCU-sched: Do one with PREEMPT but not BOOST.
@@ -72,7 +78,30 @@ CONFIG_RCU_TORTURE_TEST_RUNNABLE
Always used in KVM testing.
+CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT_DELAY
+CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY
+CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP_DELAY
+
+ Inspection suffices, ignore.
+
CONFIG_PREEMPT_RCU
CONFIG_TREE_RCU
+CONFIG_TINY_RCU
+
+ These are controlled by CONFIG_PREEMPT and/or CONFIG_SMP.
+
+CONFIG_SPARSE_RCU_POINTER
+
+ Makes sense only for sparse runs, not for kernel builds.
+
+CONFIG_SRCU
+CONFIG_TASKS_RCU
+
+ Selected by CONFIG_RCU_TORTURE_TEST, so cannot disable.
+
+CONFIG_RCU_TRACE
+
+ Implied by CONFIG_RCU_TRACE for Tree RCU.
+
- These are controlled by CONFIG_PREEMPT.
+boot parameters ignored: TBD
--
2.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH tip/core/rcu 8/9] locktorture: Fix potential memory leak with rw lock test
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
` (6 preceding siblings ...)
2017-01-14 9:25 ` [PATCH tip/core/rcu 7/9] torture: Update RCU test scenario documentation Paul E. McKenney
@ 2017-01-14 9:25 ` Paul E. McKenney
2017-01-14 9:25 ` [PATCH tip/core/rcu 9/9] torture: Enable DEBUG_OBJECTS_RCU_HEAD for Tiny RCU Paul E. McKenney
2017-01-14 21:13 ` [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Josh Triplett
9 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-14 9:25 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, dvhart, fweisbec,
oleg, bobby.prani, Yang Shi, Paul E. McKenney
From: Yang Shi <yang.shi@linaro.org>
When running locktorture module with the below commands with kmemleak enabled:
$ modprobe locktorture torture_type=rw_lock_irq
$ rmmod locktorture
The below kmemleak got caught:
root@10:~# echo scan > /sys/kernel/debug/kmemleak
[ 323.197029] kmemleak: 2 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
root@10:~# cat /sys/kernel/debug/kmemleak
unreferenced object 0xffffffc07592d500 (size 128):
comm "modprobe", pid 368, jiffies 4294924118 (age 205.824s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 c3 7b 02 00 00 00 00 00 .........{......
00 00 00 00 00 00 00 00 d7 9b 02 00 00 00 00 00 ................
backtrace:
[<ffffff80081e5a88>] create_object+0x110/0x288
[<ffffff80086c6078>] kmemleak_alloc+0x58/0xa0
[<ffffff80081d5acc>] __kmalloc+0x234/0x318
[<ffffff80006fa130>] 0xffffff80006fa130
[<ffffff8008083ae4>] do_one_initcall+0x44/0x138
[<ffffff800817e28c>] do_init_module+0x68/0x1cc
[<ffffff800811c848>] load_module+0x1a68/0x22e0
[<ffffff800811d340>] SyS_finit_module+0xe0/0xf0
[<ffffff80080836f0>] el0_svc_naked+0x24/0x28
[<ffffffffffffffff>] 0xffffffffffffffff
unreferenced object 0xffffffc07592d480 (size 128):
comm "modprobe", pid 368, jiffies 4294924118 (age 205.824s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 3b 6f 01 00 00 00 00 00 ........;o......
00 00 00 00 00 00 00 00 23 6a 01 00 00 00 00 00 ........#j......
backtrace:
[<ffffff80081e5a88>] create_object+0x110/0x288
[<ffffff80086c6078>] kmemleak_alloc+0x58/0xa0
[<ffffff80081d5acc>] __kmalloc+0x234/0x318
[<ffffff80006fa22c>] 0xffffff80006fa22c
[<ffffff8008083ae4>] do_one_initcall+0x44/0x138
[<ffffff800817e28c>] do_init_module+0x68/0x1cc
[<ffffff800811c848>] load_module+0x1a68/0x22e0
[<ffffff800811d340>] SyS_finit_module+0xe0/0xf0
[<ffffff80080836f0>] el0_svc_naked+0x24/0x28
[<ffffffffffffffff>] 0xffffffffffffffff
It is because cxt.lwsa and cxt.lrsa don't get freed in module_exit, so free
them in lock_torture_cleanup() and free writer_tasks if reader_tasks is
failed at memory allocation.
Signed-off-by: Yang Shi <yang.shi@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
kernel/locking/locktorture.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
index f8c5af52a131..d3de04b12f8c 100644
--- a/kernel/locking/locktorture.c
+++ b/kernel/locking/locktorture.c
@@ -780,6 +780,10 @@ static void lock_torture_cleanup(void)
else
lock_torture_print_module_parms(cxt.cur_ops,
"End of test: SUCCESS");
+
+ kfree(cxt.lwsa);
+ kfree(cxt.lrsa);
+
end:
torture_cleanup_end();
}
@@ -924,6 +928,8 @@ static int __init lock_torture_init(void)
GFP_KERNEL);
if (reader_tasks == NULL) {
VERBOSE_TOROUT_ERRSTRING("reader_tasks: Out of memory");
+ kfree(writer_tasks);
+ writer_tasks = NULL;
firsterr = -ENOMEM;
goto unwind;
}
--
2.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH tip/core/rcu 9/9] torture: Enable DEBUG_OBJECTS_RCU_HEAD for Tiny RCU
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
` (7 preceding siblings ...)
2017-01-14 9:25 ` [PATCH tip/core/rcu 8/9] locktorture: Fix potential memory leak with rw lock test Paul E. McKenney
@ 2017-01-14 9:25 ` Paul E. McKenney
2017-01-14 21:13 ` [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Josh Triplett
9 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-14 9:25 UTC (permalink / raw)
To: linux-kernel
Cc: mingo, jiangshanlai, dipankar, akpm, mathieu.desnoyers, josh,
tglx, peterz, rostedt, dhowells, edumazet, dvhart, fweisbec,
oleg, bobby.prani, Paul E. McKenney
The RCU torture tests currently do not run any Tiny RCU scenarios for
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y. This is a hole in the test, given
that someone might need this in real life and given that Tiny RCU uses
different callback-handling code than does Tree RCU. This commit
therefore enables this Kconfig option for scenario TINY02.
Reported-by: "Ahmed, Iftekhar" <ahmedi@oregonstate.edu>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
tools/testing/selftests/rcutorture/configs/rcu/TINY02 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02
index 3a05bac2ef29..a59f7686e219 100644
--- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02
+++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02
@@ -11,5 +11,5 @@ CONFIG_PROVE_LOCKING=y
CONFIG_PROVE_RCU_REPEATEDLY=y
#CHECK#CONFIG_PROVE_RCU=y
CONFIG_DEBUG_LOCK_ALLOC=y
-CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
+CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
CONFIG_PREEMPT_COUNT=y
--
2.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11
2017-01-14 9:25 [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Paul E. McKenney
` (8 preceding siblings ...)
2017-01-14 9:25 ` [PATCH tip/core/rcu 9/9] torture: Enable DEBUG_OBJECTS_RCU_HEAD for Tiny RCU Paul E. McKenney
@ 2017-01-14 21:13 ` Josh Triplett
2017-01-15 5:39 ` Paul E. McKenney
9 siblings, 1 reply; 12+ messages in thread
From: Josh Triplett @ 2017-01-14 21:13 UTC (permalink / raw)
To: Paul E. McKenney
Cc: linux-kernel, mingo, jiangshanlai, dipankar, akpm,
mathieu.desnoyers, tglx, peterz, rostedt, dhowells, edumazet,
dvhart, fweisbec, oleg, bobby.prani
On Sat, Jan 14, 2017 at 01:25:33AM -0800, Paul E. McKenney wrote:
> Hello!
>
> This series provides torture-test updates:
>
> 1. Add a check for CONFIG_RCU_STALL_COMMON for TINY01, in order
> to complain if this case is not tested.
>
> 2. Add CONFIG_PROVE_RCU_REPEATEDLY=y for TINY02, in order to test
> this case.
>
> 3. Add tests without slow grace period setup/cleanup, as this case
> is what is actually used in production.
>
> 4. Run at least one test with CONFIG_DEBUG_OBJECTS_RCU_HEAD, to make
> sure that this case is tested regularly.
>
> 5. Run one test with DEBUG_LOCK_ALLOC but not PROVE_LOCKING, to make
> sure that this case is tested regularly.
>
> 6. Run a couple scenarios with CONFIG_RCU_EQS_DEBUG, again to make
> sure that this case is tested regularly.
>
> 7. Update RCU test scenario documentation.
>
> 8. Fix potential memory leak with rw lock test, courtesy of Yang Shi.
>
> 9. Enable DEBUG_OBJECTS_RCU_HEAD for Tiny RCU, you guessed it, to
> make sure that this case is regularly tested.
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11
2017-01-14 21:13 ` [PATCH tip/core/rcu 0/9] Torture-test changes for 4.11 Josh Triplett
@ 2017-01-15 5:39 ` Paul E. McKenney
0 siblings, 0 replies; 12+ messages in thread
From: Paul E. McKenney @ 2017-01-15 5:39 UTC (permalink / raw)
To: Josh Triplett
Cc: linux-kernel, mingo, jiangshanlai, dipankar, akpm,
mathieu.desnoyers, tglx, peterz, rostedt, dhowells, edumazet,
dvhart, fweisbec, oleg, bobby.prani
On Sat, Jan 14, 2017 at 01:13:36PM -0800, Josh Triplett wrote:
> On Sat, Jan 14, 2017 at 01:25:33AM -0800, Paul E. McKenney wrote:
> > Hello!
> >
> > This series provides torture-test updates:
> >
> > 1. Add a check for CONFIG_RCU_STALL_COMMON for TINY01, in order
> > to complain if this case is not tested.
> >
> > 2. Add CONFIG_PROVE_RCU_REPEATEDLY=y for TINY02, in order to test
> > this case.
> >
> > 3. Add tests without slow grace period setup/cleanup, as this case
> > is what is actually used in production.
> >
> > 4. Run at least one test with CONFIG_DEBUG_OBJECTS_RCU_HEAD, to make
> > sure that this case is tested regularly.
> >
> > 5. Run one test with DEBUG_LOCK_ALLOC but not PROVE_LOCKING, to make
> > sure that this case is tested regularly.
> >
> > 6. Run a couple scenarios with CONFIG_RCU_EQS_DEBUG, again to make
> > sure that this case is tested regularly.
> >
> > 7. Update RCU test scenario documentation.
> >
> > 8. Fix potential memory leak with rw lock test, courtesy of Yang Shi.
> >
> > 9. Enable DEBUG_OBJECTS_RCU_HEAD for Tiny RCU, you guessed it, to
> > make sure that this case is regularly tested.
>
> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Applied, thank you!
Thanx, Paul
^ permalink raw reply [flat|nested] 12+ messages in thread