diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-23 08:08:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-23 08:08:53 -0400 |
commit | 0200fbdd431519d730b5d399a12840ec832b27cc (patch) | |
tree | 2b58f9e24b61b00e0550f106c95bfabc3b52cfdd /lib/debug_locks.c | |
parent | de3fbb2aa802a267dee2213ae7d5a1e19eb4294a (diff) | |
parent | 01a14bda11add9dcd4a59200f13834d634559935 (diff) |
Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull locking and misc x86 updates from Ingo Molnar:
"Lots of changes in this cycle - in part because locking/core attracted
a number of related x86 low level work which was easier to handle in a
single tree:
- Linux Kernel Memory Consistency Model updates (Alan Stern, Paul E.
McKenney, Andrea Parri)
- lockdep scalability improvements and micro-optimizations (Waiman
Long)
- rwsem improvements (Waiman Long)
- spinlock micro-optimization (Matthew Wilcox)
- qspinlocks: Provide a liveness guarantee (more fairness) on x86.
(Peter Zijlstra)
- Add support for relative references in jump tables on arm64, x86
and s390 to optimize jump labels (Ard Biesheuvel, Heiko Carstens)
- Be a lot less permissive on weird (kernel address) uaccess faults
on x86: BUG() when uaccess helpers fault on kernel addresses (Jann
Horn)
- macrofy x86 asm statements to un-confuse the GCC inliner. (Nadav
Amit)
- ... and a handful of other smaller changes as well"
* 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (57 commits)
locking/lockdep: Make global debug_locks* variables read-mostly
locking/lockdep: Fix debug_locks off performance problem
locking/pvqspinlock: Extend node size when pvqspinlock is configured
locking/qspinlock_stat: Count instances of nested lock slowpaths
locking/qspinlock, x86: Provide liveness guarantee
x86/asm: 'Simplify' GEN_*_RMWcc() macros
locking/qspinlock: Rework some comments
locking/qspinlock: Re-order code
locking/lockdep: Remove duplicated 'lock_class_ops' percpu array
x86/defconfig: Enable CONFIG_USB_XHCI_HCD=y
futex: Replace spin_is_locked() with lockdep
locking/lockdep: Make class->ops a percpu counter and move it under CONFIG_DEBUG_LOCKDEP=y
x86/jump-labels: Macrofy inline assembly code to work around GCC inlining bugs
x86/cpufeature: Macrofy inline assembly code to work around GCC inlining bugs
x86/extable: Macrofy inline assembly code to work around GCC inlining bugs
x86/paravirt: Work around GCC inlining bugs when compiling paravirt ops
x86/bug: Macrofy the BUG table section handling, to work around GCC inlining bugs
x86/alternatives: Macrofy lock prefixes to work around GCC inlining bugs
x86/refcount: Work around GCC inlining bug
x86/objtool: Use asm macros to work around GCC inlining bugs
...
Diffstat (limited to 'lib/debug_locks.c')
-rw-r--r-- | lib/debug_locks.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/debug_locks.c b/lib/debug_locks.c index 96c4c633d95e..ce51749cc145 100644 --- a/lib/debug_locks.c +++ b/lib/debug_locks.c | |||
@@ -21,7 +21,7 @@ | |||
21 | * that would just muddy the log. So we report the first one and | 21 | * that would just muddy the log. So we report the first one and |
22 | * shut up after that. | 22 | * shut up after that. |
23 | */ | 23 | */ |
24 | int debug_locks = 1; | 24 | int debug_locks __read_mostly = 1; |
25 | EXPORT_SYMBOL_GPL(debug_locks); | 25 | EXPORT_SYMBOL_GPL(debug_locks); |
26 | 26 | ||
27 | /* | 27 | /* |
@@ -29,7 +29,7 @@ EXPORT_SYMBOL_GPL(debug_locks); | |||
29 | * 'silent failure': nothing is printed to the console when | 29 | * 'silent failure': nothing is printed to the console when |
30 | * a locking bug is detected. | 30 | * a locking bug is detected. |
31 | */ | 31 | */ |
32 | int debug_locks_silent; | 32 | int debug_locks_silent __read_mostly; |
33 | EXPORT_SYMBOL_GPL(debug_locks_silent); | 33 | EXPORT_SYMBOL_GPL(debug_locks_silent); |
34 | 34 | ||
35 | /* | 35 | /* |
@@ -37,7 +37,7 @@ EXPORT_SYMBOL_GPL(debug_locks_silent); | |||
37 | */ | 37 | */ |
38 | int debug_locks_off(void) | 38 | int debug_locks_off(void) |
39 | { | 39 | { |
40 | if (__debug_locks_off()) { | 40 | if (debug_locks && __debug_locks_off()) { |
41 | if (!debug_locks_silent) { | 41 | if (!debug_locks_silent) { |
42 | console_verbose(); | 42 | console_verbose(); |
43 | return 1; | 43 | return 1; |