Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/19] maple_tree: lock checking and clean ups
@ 2026-08-21 19:26 Liam R. Howlett (Oracle)
  2026-08-21 19:26 ` [PATCH v3 01/19] maple_tree: Add rcu locking check when LOCKDEP is enabled Liam R. Howlett (Oracle)
                   ` (20 more replies)
  0 siblings, 21 replies; 26+ messages in thread
From: Liam R. Howlett (Oracle) @ 2026-08-21 19:26 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-mm, linux-kernel, maple-tree, Liam R. Howlett (Oracle)

In this series:
1. Try to detect lock issues
  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.

4. The erase gfp uses
  mas_erase() and mtree_erase() do not take a gfp argument.  To improve
  reliability of the erase, the first attempt to allocate will be
  GFP_NOWAIT, followed by a retry (if necessary of GFP_KERNEL |
  GFP_NOFAIL.  This will ensure the data is gone.  I've updated the
  documentation to make it more clear as well.  mas_store() is not
  addressed in the same way, but may need to be updated at a later date,
  but that may require changing callers so it is out of scope here.

Beyond these goals there are some test fixes, some general speed-up
patches targeting extra work and cycles, and dropping dead code.

v2: https://lore.kernel.org/all/20260630190843.3563858-1-liam@infradead.org/
v1: https://lore.kernel.org/all/20260629144145.1572283-1-liam@infradead.org/

Changes since v2:
 - Added a mas_nomem_nofail() function for mas_erase() - Thanks Jason,
   Vlastimil, and Pedro.
 - Dropped the WARN_ON() that was triggered by syzbot and questioned by
   Andrew - Thanks Andrew (and the syzbot)

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: Avoid mas_erase() and mtree_erase() failures
  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 |  23 +-
 include/linux/lockdep.h               |   3 +
 include/linux/lockdep_types.h         |   3 +-
 include/linux/maple_tree.h            |  12 +-
 include/linux/sched.h                 |   1 +
 kernel/locking/lockdep.c              |  58 +++-
 lib/maple_tree.c                      | 394 ++++++++++++++++++--------
 tools/testing/radix-tree/maple.c      |   4 +-
 8 files changed, 366 insertions(+), 132 deletions(-)

-- 
2.47.3



^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2026-08-21 22:42 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-21 19:26 [PATCH v3 00/19] maple_tree: lock checking and clean ups Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 01/19] maple_tree: Add rcu locking check when LOCKDEP is enabled Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 02/19] locking/lockdep: Add sequence counter to held_lock Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 03/19] maple_tree: Add write lock checking with lockdep sequence numbers Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 04/19] maple_tree: Documentation fix Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 05/19] maple_tree: Drop dead code from mas_extend_spanning_null() Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 06/19] maple_tree: Drop MAPLE_ALLOC_SLOTS Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 07/19] maple_tree: Clarify comments on mas_nomem() Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 08/19] maple_tree: Use prefetched value in mas_wr_store_type() Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 09/19] maple_tree: Optimise mas_wr_node_store() when not in rcu mode Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 10/19] maple_tree: micro optimisation of mas_wr_store_type() Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 11/19] maple_tree: Add bulk parent set helper Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 12/19] maple_tree: Catch race in mas_alloc_cyclic() Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 13/19] maple_tree: Document that erase may use GFP_KERNEL for allocations Liam R. Howlett (Oracle)
2026-08-21 19:33   ` Rik van Riel
2026-08-21 19:26 ` [PATCH v3 14/19] maple_tree: Avoid mas_erase() and mtree_erase() failures Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 15/19] maple_tree: Document erase and allocations better Liam R. Howlett (Oracle)
2026-08-21 19:34   ` Rik van Riel
2026-08-21 20:37     ` Liam R. Howlett (Oracle)
2026-08-21 21:55       ` Jason Gunthorpe
2026-08-21 19:26 ` [PATCH v3 16/19] maple_tree: Change two GFP flags in tests Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 17/19] maple_tree: Fix argument name in header Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 18/19] maple_tree: Avoid extra gap calculation Liam R. Howlett (Oracle)
2026-08-21 19:26 ` [PATCH v3 19/19] maple_tree: Add helper mas_make_walkable() Liam R. Howlett (Oracle)
2026-08-21 19:40 ` [PATCH v3 00/19] maple_tree: lock checking and clean ups Liam R. Howlett (Oracle)
2026-08-21 22:42 ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox