From: "Liam R. Howlett (Oracle)" <liam@infradead.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
maple-tree@lists.infradead.org,
"Liam R. Howlett (Oracle)" <liam@infradead.org>
Subject: [PATCH v2 00/19] maple_tree: lock checking and clean ups
Date: Tue, 30 Jun 2026 15:08:24 -0400 [thread overview]
Message-ID: <20260630190843.3563858-1-liam@infradead.org> (raw)
The goals of this series are:
1. Lock issue detection
A number of syzbot reports are incorrectly pointing to the mm exit as
a source of the locking error. The first three patches attempt to
help users detect errors in their locking - but they still have to use
LOCKDEP. I guess it's still down to hope and prayers.
2. Documentation fixes
The documentation was lacking clarity, there are updates to try and
help the users, especially around the erase() cases.
3. Two benign issues
The cyclic allocator may have a race, although no in-kernel user can
hit it.
The erase functions may cause allocation issues if used with the
incorrect locking type, but none are present in-tree.
Beyond these goals there are some test fixes, some general speed-up
patches targeting extra work and cycles, and dropping dead code.
v1: https://lore.kernel.org/all/20260629144145.1572283-1-liam@infradead.org/
Changes since v1:
- Relocated mas_set_parent_slots() lower so that mt_slots_locked() for rcu dereferencing - Thanks kernel build bot
- Made mas_lockdep_map() static - Thanks kernel build bot
- Added mas_lock_check() to mas_may_activate() when restoring a node to active - Thanks sashiko
- Changed mas_lock_check() aliasing to use mt_locked() - Thanks sashiko
- Updated __lock_unpin_lock() underflow check - Thanks sashiko
- Updated checking the lock sequence based on the lockdep map - Thanks sashiko
- Add a comment to mas_wr_node_store() to explain why the last slot isn't cleared. - Thanks sashiko
- Drop mas_set_parent() function as it is no longer used - Thanks sashiko
- Clear the mas_alloc_cyclic() wrap flag after storage - Thanks sashiko
- Add might_allocate() to the mtree_erase() call - Thanks Jason
- Added one more cleanup for making maple state walkable.
Liam R. Howlett (Oracle) (19):
maple_tree: Add rcu locking check when LOCKDEP is enabled
locking/lockdep: Add sequence counter to held_lock
maple_tree: Add write lock checking with lockdep sequence numbers
maple_tree: Documentation fix
maple_tree: Drop dead code from mas_extend_spanning_null()
maple_tree: Drop MAPLE_ALLOC_SLOTS
maple_tree: Clarify comments on mas_nomem()
maple_tree: Use prefetched value in mas_wr_store_type()
maple_tree: Optimise mas_wr_node_store() when not in rcu mode
maple_tree: micro optimisation of mas_wr_store_type()
maple_tree: Add bulk parent set helper
maple_tree: Catch race in mas_alloc_cyclic()
maple_tree: Document that erase may use GFP_KERNEL for allocations
maple_tree: WARN_ON_ONCE when allocations fail
maple_tree: Document erase and allocations better
maple_tree: Change two GFP flags in tests
maple_tree: Fix argument name in header
maple_tree: Avoid extra gap calculation
maple_tree: Add helper mas_make_walkable()
Documentation/core-api/maple_tree.rst | 21 +-
include/linux/lockdep.h | 3 +
include/linux/lockdep_types.h | 3 +-
include/linux/maple_tree.h | 10 +-
include/linux/sched.h | 1 +
kernel/locking/lockdep.c | 58 ++++-
lib/maple_tree.c | 353 ++++++++++++++++++--------
tools/testing/radix-tree/maple.c | 4 +-
8 files changed, 326 insertions(+), 127 deletions(-)
--
2.47.3
next reply other threads:[~2026-06-30 19:08 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-30 19:08 Liam R. Howlett (Oracle) [this message]
2026-06-30 19:08 ` [PATCH v2 01/19] maple_tree: Add rcu locking check when LOCKDEP is enabled Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 02/19] locking/lockdep: Add sequence counter to held_lock Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 03/19] maple_tree: Add write lock checking with lockdep sequence numbers Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 04/19] maple_tree: Documentation fix Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 05/19] maple_tree: Drop dead code from mas_extend_spanning_null() Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 06/19] maple_tree: Drop MAPLE_ALLOC_SLOTS Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 07/19] maple_tree: Clarify comments on mas_nomem() Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 08/19] maple_tree: Use prefetched value in mas_wr_store_type() Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 09/19] maple_tree: Optimise mas_wr_node_store() when not in rcu mode Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 10/19] maple_tree: micro optimisation of mas_wr_store_type() Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 11/19] maple_tree: Add bulk parent set helper Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 12/19] maple_tree: Catch race in mas_alloc_cyclic() Liam R. Howlett (Oracle)
2026-06-30 19:41 ` Chuck Lever
2026-06-30 19:08 ` [PATCH v2 13/19] maple_tree: Document that erase may use GFP_KERNEL for allocations Liam R. Howlett (Oracle)
2026-06-30 19:32 ` Rik van Riel
2026-06-30 19:08 ` [PATCH v2 14/19] maple_tree: WARN_ON_ONCE when allocations fail Liam R. Howlett (Oracle)
2026-06-30 23:02 ` Andrew Morton
2026-06-30 19:08 ` [PATCH v2 15/19] maple_tree: Document erase and allocations better Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 16/19] maple_tree: Change two GFP flags in tests Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 17/19] maple_tree: Fix argument name in header Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 18/19] maple_tree: Avoid extra gap calculation Liam R. Howlett (Oracle)
2026-06-30 19:08 ` [PATCH v2 19/19] maple_tree: Add helper mas_make_walkable() Liam R. Howlett (Oracle)
2026-06-30 23:05 ` [PATCH v2 00/19] maple_tree: lock checking and clean ups Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260630190843.3563858-1-liam@infradead.org \
--to=liam@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=maple-tree@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox