[v2,0/6] Use Maple Trees for simple_offset utilities

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

Message

Chuck Lever Feb. 17, 2024, 8:23 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).

Thanks to Liam Howlett for helping me get this working with Maple
Trees.

I don't have the facilities to re-run the performance tests that
identified the original regression. Oliver, Feng, can you please
pass this series to the kernel robot?

These patches are also available from:

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

in the "simple-offset-maple" branch.

Changes since RFC:
- Rewrote and moved "Re-arrange locking" to the front of the series
- Squashed the "so_ctx" clean-ups into the other patches
- Clarified some patch descriptions

---

Chuck Lever (5):
      libfs: Re-arrange locking in offset_iterate_dir()
      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

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


 fs/libfs.c                 | 96 ++++++++++++++++++++++++++------------
 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, 215 insertions(+), 35 deletions(-)

--
Chuck Lever
  

Comments

Christian Brauner Feb. 21, 2024, 8:41 a.m. UTC | #1
On Sat, 17 Feb 2024 15:23:32 -0500, Chuck Lever 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).
> 
> Thanks to Liam Howlett for helping me get this working with Maple
> Trees.
> 
> [...]

Applied to the vfs.misc branch of the vfs/vfs.git tree.
Patches in the vfs.misc branch should appear in linux-next soon.

Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.

It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.

Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs.misc

[1/6] libfs: Re-arrange locking in offset_iterate_dir()
      https://git.kernel.org/vfs/vfs/c/1a5996a67b26
[2/6] libfs: Define a minimum directory offset
      https://git.kernel.org/vfs/vfs/c/1fef81c35969
[3/6] libfs: Add simple_offset_empty()
      https://git.kernel.org/vfs/vfs/c/59ec43c537e5
[4/6] maple_tree: Add mtree_alloc_cyclic()
      https://git.kernel.org/vfs/vfs/c/9bb457ea15ad
[5/6] test_maple_tree: testing the cyclic allocation
      https://git.kernel.org/vfs/vfs/c/20237d2c3eed
[6/6] libfs: Convert simple directory offsets to use a Maple Tree
      https://git.kernel.org/vfs/vfs/c/624e104353a3