Bug 725893 - Fix scalability of vfsmount_lock access for internally mounted filesystems like sockfs and pipefs
Summary: Fix scalability of vfsmount_lock access for internally mounted filesystems li...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: filesystem
Version: 6.2
Hardware: All
OS: Linux
unspecified
high
Target Milestone: rc
: 6.2
Assignee: Ondrej Vasik
QA Contact: qe-baseos-daemons
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-07-26 21:23 UTC by Tim Chen
Modified: 2011-07-26 21:48 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-07-26 21:48:35 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Tim Chen 2011-07-26 21:23:48 UTC
Description of problem:

For a number of file systems that don't have a mount point (e.g. sockfs
and pipefs), they are not marked as long term. Therefore in
mntput_no_expire, all locks in vfs_mount lock are taken instead of just
local cpu's lock to aggregate reference counts when we release
reference to file objects.  In fact, only local lock need to have been
taken to update ref counts as these file systems are in no danger of
going away until we are ready to unregister them. 

The attached patch marks file systems using kern_mount without 
mount point as long term.  The contentions of vfs_mount lock 
is now eliminated.  Before un-registering such file system,
kern_unmount should be called to remove the long term flag and
make the mount point ready to be freed. 

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
See https://lkml.org/lkml/2011/7/16/122
  
Actual results:
Heavy contention on vfsmount_lock for sockfs and pipefs

Expected results:
Low contention on vfsmount_lock

Additional info:
Problem fixed in mainline commit 423e0ab086ad8b33626e45fa94ac7613146b7ffa

Comment 2 Tim Chen 2011-07-26 21:48:35 UTC
This issue doesn't affect RHEL6 kernel on further review.


Note You need to log in before you can comment on or make changes to this bug.