locking/selftests: More granular debug_locks_verbose
authorPeter Zijlstra <peterz@infradead.org>
Wed, 9 Dec 2020 15:42:57 +0000 (16:42 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 14 Jan 2021 10:20:16 +0000 (11:20 +0100)
Showing all tests all the time is tiresome.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Documentation/admin-guide/kernel-parameters.txt
lib/locking-selftest.c

index c722ec1..611a5c3 100644 (file)
                        insecure, please do not use on production kernels.
 
        debug_locks_verbose=
-                       [KNL] verbose self-tests
-                       Format=<0|1>
+                       [KNL] verbose locking self-tests
+                       Format: <int>
                        Print debugging info while doing the locking API
                        self-tests.
-                       We default to 0 (no extra messages), setting it to
-                       1 will print _a lot_ more information - normally
-                       only useful to kernel developers.
+                       Bitmask for the various LOCKTYPE_ tests. Defaults to 0
+                       (no extra messages), setting it to -1 (all bits set)
+                       will print _a_lot_ more information - normally only
+                       useful to lockdep developers.
 
        debug_objects   [KNL] Enable object debugging
 
index 23376ee..3306f43 100644 (file)
@@ -1390,6 +1390,8 @@ static void dotest(void (*testcase_fn)(void), int expected, int lockclass_mask)
 
        WARN_ON(irqs_disabled());
 
+       debug_locks_silent = !(debug_locks_verbose & lockclass_mask);
+
        testcase_fn();
        /*
         * Filter out expected failures:
@@ -1410,7 +1412,7 @@ static void dotest(void (*testcase_fn)(void), int expected, int lockclass_mask)
        }
        testcase_total++;
 
-       if (debug_locks_verbose)
+       if (debug_locks_verbose & lockclass_mask)
                pr_cont(" lockclass mask: %x, debug_locks: %d, expected: %d\n",
                        lockclass_mask, debug_locks, expected);
        /*
@@ -2674,7 +2676,6 @@ void locking_selftest(void)
        printk("  --------------------------------------------------------------------------\n");
 
        init_shared_classes();
-       debug_locks_silent = !debug_locks_verbose;
        lockdep_set_selftest_task(current);
 
        DO_TESTCASE_6R("A-A deadlock", AA);