Re: [PATCH v3 00/19] maple_tree: lock checking and clean ups

"Liam R. Howlett (Oracle)" <[email protected]>
Newsgroups org.kvack.linux-mm,org.kernel.vger.linux-kernel
Message-ID <bbvvwdn6r2lliisrsl5veniwjoqkfqgarixjphucrahcwhsgj6@ng3kkcoiyxkv>
On 26/08/21 03:26PM, Liam R. Howlett (Oracle) wrote:
> 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/[email protected]/
> v1: https://lore.kernel.org/all/[email protected]/
> 
> 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)

Sorry, I forgot Breno Leitao's help with the lockdep testing.  Thanks
Breno, I appreciate the testing and help with that (and for working on
debian)!

> 
> 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
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.