+ maple_tree-stop-flooding-logs-when-debug_locks-is-set-to-zero-fix.patch added to mm-unstable branch
Andrew Morton <[email protected]> Tue, 28 Jul 2026 12:57:41 -0700
| Newsgroups | org.kernel.vger.mm-commits |
|---|---|
| Message-ID | <[email protected]> |
The patch titled
Subject: maple_tree-stop-flooding-logs-when-debug_locks-is-set-to-zero-fix
has been added to the -mm mm-unstable branch. Its filename is
maple_tree-stop-flooding-logs-when-debug_locks-is-set-to-zero-fix.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/maple_tree-stop-flooding-logs-when-debug_locks-is-set-to-zero-fix.patch
This patch will later appear in the mm-unstable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via various
branches at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there most days
------------------------------------------------------
From: "Liam R. Howlett (Oracle)" <[email protected]>
Subject: maple_tree-stop-flooding-logs-when-debug_locks-is-set-to-zero-fix
Date: Mon, 20 Jul 2026 17:30:38 -0400
stop flooding logs when debug_locks is set to zero
When lockdep detects an issue, it sets debug_locks to 0 disabling further
reports. The newly added maple tree sequence counting on locks to detect
errors is not taking this nor the fact that lock_is_held() can return -1
(unknown state) into account. The resulting action is a flood of logging
of not matching sequence numbers being reported on failure.
__lock_sequnece() will return u32 ~0 when debug_locks is zero, and the
real sequnece count cannot return such a high value as it is less than
32bits.
By always updating the sequence number, regardless of lock state and by
ignoring ~0 value in the sequence number will avoid ever printing a
WARN_ON when this condition is hit.
Link: https://lore.kernel.org/fo5r2xl3fql6gyvjasfvfu4ftugjti2vxg7zskdw7hjeo3xvqm@kk66qmsf762s
Signed-off-by: Liam R. Howlett (Oracle) <[email protected]>
Tested-by: Breno Leitao <[email protected]>
Cc: Boqun Feng <[email protected]>
Cc: Chris Mason <[email protected]>
Cc: Chuck Lever <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Jason Gunthorpe <[email protected]>
Cc: Joe Perches <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Rik van Riel <[email protected]>
Cc: Waiman Long <[email protected]>
Cc: Will Deacon <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---
lib/maple_tree.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
--- a/lib/maple_tree.c~maple_tree-stop-flooding-logs-when-debug_locks-is-set-to-zero-fix
+++ a/lib/maple_tree.c
@@ -1171,6 +1171,8 @@ static void mas_lock_check(struct ma_sta
{
#ifdef CONFIG_LOCKDEP
struct lockdep_map *map;
+ u32 seq;
+
if (!mas_is_active(mas))
return;
@@ -1182,8 +1184,12 @@ static void mas_lock_check(struct ma_sta
#endif /* CONFIG_RCU_STRICT_GRACE_PERIOD */
map = mas_lockdep_map(mas);
- if (map && lock_is_held(map))
- WARN_ON_ONCE(mas->ld_seq != lock_sequence(map));
+ if (!map)
+ return;
+
+ seq = lock_sequence(map);
+ if (seq != UINT_MAX && mas->ld_seq != UINT_MAX)
+ WARN_ON_ONCE(mas->ld_seq != seq);
#endif /* CONFIG_LOCKDEP */
}
@@ -1201,8 +1207,8 @@ static void mas_init_lock_check(struct m
#endif /* CONFIG_RCU_STRICT_GRACE_PERIOD */
map = mas_lockdep_map(mas);
- if (map && lock_is_held(map))
- mas->ld_seq = lock_sequence(mas_lockdep_map(mas));
+ if (map) /* Update regardless of lock state */
+ mas->ld_seq = lock_sequence(map);
#endif /* CONFIG_LOCKDEP */
}
_
Patches currently in -mm which might be from [email protected] are
maple_tree-add-rcu-locking-check-when-lockdep-is-enabled.patch
locking-lockdep-add-sequence-counter-to-held_lock.patch
maple_tree-add-write-lock-checking-with-lockdep-sequence-numbers.patch
maple_tree-stop-flooding-logs-when-debug_locks-is-set-to-zero-fix.patch
maple_tree-documentation-fix.patch
maple_tree-drop-dead-code-from-mas_extend_spanning_null.patch
maple_tree-drop-maple_alloc_slots.patch
maple_tree-clarify-comments-on-mas_nomem.patch
maple_tree-use-prefetched-value-in-mas_wr_store_type.patch
maple_tree-optimise-mas_wr_node_store-when-not-in-rcu-mode.patch
maple_tree-micro-optimisation-of-mas_wr_store_type.patch
maple_tree-add-bulk-parent-set-helper.patch
maple_tree-catch-race-in-mas_alloc_cyclic.patch
maple_tree-document-that-erase-may-use-gfp_kernel-for-allocations.patch
maple_tree-warn_on_once-when-allocations-fail.patch
maple_tree-document-erase-and-allocations-better.patch
maple_tree-change-two-gfp-flags-in-tests.patch
maple_tree-fix-argument-name-in-header.patch
maple_tree-avoid-extra-gap-calculation.patch
maple_tree-add-helper-mas_make_walkable.patch