Hello Matthew, Thanks for reviewing this. On 3/3/2023 3:08 am, Matthew Wilcox wrote: > On Thu, Mar 02, 2023 at 03:32:02PM +1100, Imran Khan wrote: >> Right now per-fs kernfs_rwsem protects list of kernfs_super_info instances >> for a kernfs_root. Since kernfs_rwsem is used to synchronize several other >> operations across kernfs and since most of these operations don't impact >> kernfs_super_info, we can use a separate per-fs rwsem to synchronize access >> to list of kernfs_super_info. >> This helps in reducing contention around kernfs_rwsem and also allows >> operations that change/access list of kernfs_super_info to proceed without >> contending for kernfs_rwsem. >> >> Signed-off-by: Imran Khan <imran.f.khan@xxxxxxxxxx> > > But you don't remove the acquisition of kernfs_rwsem in > kernfs_notify_workfn(), so I don't see how this helps? > Yes. kernfs_notify_workfn should no longer need kernfs_rwsem. I will fix it . > Also, every use of this rwsem is as a writer, so it could/should be a > plain mutex, no? Or should you be acquiring it for read in > kernfs_notify_workfn()? Although currently kernfs_notify_workfn acquires kernfs_rwsem for writing, I think even w/o this change acquiring kernfs_rwsem for reading would be enough since we are not making any changes to kernfs_super_info list. Based on this logic, I think taking iattr rwsem for reading is right approach. Thanks, Imran