Re: [RFC PATCH] kernfs: release kernfs_mutex before the inode allocation

From: Greg Kroah-Hartman
Date: Tue Nov 16 2021 - 14:49:54 EST


On Tue, Nov 16, 2021 at 11:43:17AM -0800, Minchan Kim wrote:
> The kernfs implementation has big lock granularity(kernfs_rwsem) so
> every kernfs-based(e.g., sysfs, cgroup, dmabuf) fs are able to compete
> the lock. Thus, if one of userspace goes the sleep under holding
> the lock for a long time, rest of them should wait it. A example is
> the holder goes direct reclaim with the lock since it needs memory
> allocation. Let's fix it at common technique that release the lock
> and then allocate the memory. Fortunately, kernfs looks like have
> an refcount so I hope it's fine.
>
> Signed-off-by: Minchan Kim <minchan@xxxxxxxxxx>
> ---
> fs/kernfs/dir.c | 14 +++++++++++---
> fs/kernfs/inode.c | 2 +-
> fs/kernfs/kernfs-internal.h | 1 +
> 3 files changed, 13 insertions(+), 4 deletions(-)

What workload hits this lock to cause it to be noticable?

There was a bunch of recent work in this area to make this much more
fine-grained, and the theoritical benchmarks that people created (adding
10s of thousands of scsi disks at boot time) have gotten better.

But in that work, no one could find a real benchmark or use case that
anyone could even notice this type of thing. What do you have that
shows this?
thanks,

greg k-h