[PATCH v2 0/2] kernfs: switch global locks to per-fs lock

From: alexjlzheng
Date: Tue Apr 15 2025 - 11:37:13 EST


From: Jinliang Zheng <alexjlzheng@xxxxxxxxxxx>

The kernfs implementation has big lock granularity so every kernfs-based
(e.g., sysfs, cgroup) fs are able to compete the locks. This patchset
switches the global locks to per-fs locks.

In fact, the implementation of global locks has not yet introduced
performance issues. But in the long run, more and more file systems will
be implemented based on the kernfs framework, so this optimization is
meaningful.

There are three global locks now, kernfs_idr_lock, kernfs_rename_lock
and kernfs_pr_cont_lock. We only switch kernfs_idr_lock and
kernfs_rename_lock here, because kernfs_pr_cont_lock is on a cold path.

Changelog:
v2: Only switch kernfs_idr_lock and kernfs_rename_lock to per-fs
v1: https://lore.kernel.org/all/20250411183109.6334-1-alexjlzheng@xxxxxxxxxxx/

Jinliang Zheng (2):
kernfs: switch global kernfs_idr_lock to per-fs lock
kernfs: switch global kernfs_rename_lock to per-fs lock

fs/kernfs/dir.c | 28 +++++++++++++++-------------
fs/kernfs/kernfs-internal.h | 16 ++++++++++++----
2 files changed, 27 insertions(+), 17 deletions(-)

--
2.49.0