[RFC,0/7] Use Maple Trees for simple_offset utilities

Message ID 170785993027.11135.8830043889278631735.stgit@91.116.238.104.host.secureserver.net
Headers
Series Use Maple Trees for simple_offset utilities |

Message

Chuck Lever Feb. 13, 2024, 9:37 p.m. UTC
  In an effort to address slab fragmentation issues reported a few
months ago, I've replaced the use of xarrays for the directory
offset map in "simple" file systems (including tmpfs).

This patch set passes functional testing and is ready for code
review. But I don't have the facilities to re-run the performance
tests that identified the regression. We expect the performance of
this implementation will need additional improvement.

Thanks to Liam Howlett for helping me get this working.

---

Chuck Lever (6):
      libfs: Rename "so_ctx"
      libfs: Define a minimum directory offset
      libfs: Add simple_offset_empty()
      maple_tree: Add mtree_alloc_cyclic()
      libfs: Convert simple directory offsets to use a Maple Tree
      libfs: Re-arrange locking in offset_iterate_dir()

Liam R. Howlett (1):
      test_maple_tree: testing the cyclic allocation


 fs/libfs.c                 | 125 +++++++++++++++++++++++--------------
 include/linux/fs.h         |   6 +-
 include/linux/maple_tree.h |   7 +++
 lib/maple_tree.c           |  93 +++++++++++++++++++++++++++
 lib/test_maple_tree.c      |  44 +++++++++++++
 mm/shmem.c                 |   4 +-
 6 files changed, 227 insertions(+), 52 deletions(-)

--
Chuck Lever
  

Comments

Chuck Lever Feb. 13, 2024, 9:40 p.m. UTC | #1
> On Feb 13, 2024, at 4:37 PM, Chuck Lever <cel@kernel.org> wrote:
> 
> In an effort to address slab fragmentation issues reported a few
> months ago, I've replaced the use of xarrays for the directory
> offset map in "simple" file systems (including tmpfs).
> 
> This patch set passes functional testing and is ready for code
> review. But I don't have the facilities to re-run the performance
> tests that identified the regression. We expect the performance of
> this implementation will need additional improvement.
> 
> Thanks to Liam Howlett for helping me get this working.

And note the patches are also available from:

https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git

in the simple-offset-maple branch.


> ---
> 
> Chuck Lever (6):
>      libfs: Rename "so_ctx"
>      libfs: Define a minimum directory offset
>      libfs: Add simple_offset_empty()
>      maple_tree: Add mtree_alloc_cyclic()
>      libfs: Convert simple directory offsets to use a Maple Tree
>      libfs: Re-arrange locking in offset_iterate_dir()
> 
> Liam R. Howlett (1):
>      test_maple_tree: testing the cyclic allocation
> 
> 
> fs/libfs.c                 | 125 +++++++++++++++++++++++--------------
> include/linux/fs.h         |   6 +-
> include/linux/maple_tree.h |   7 +++
> lib/maple_tree.c           |  93 +++++++++++++++++++++++++++
> lib/test_maple_tree.c      |  44 +++++++++++++
> mm/shmem.c                 |   4 +-
> 6 files changed, 227 insertions(+), 52 deletions(-)
> 
> --
> Chuck Lever
> 
> 

--
Chuck Lever