diff options
| author | Jan Kara <[email protected]> | 2017-08-07 11:19:50 +0000 |
|---|---|---|
| committer | Jan Kara <[email protected]> | 2017-08-17 20:07:59 +0000 |
| commit | 7b9ca4c61bc278b771fb57d6290a31ab1fc7fdac (patch) | |
| tree | 3e9c7464525efa2a9dd50d02e7fe8f7df45a4961 /fs/jbd2/commit.c | |
| parent | fs: Provide __inode_get_bytes() (diff) | |
| download | kernel-7b9ca4c61bc278b771fb57d6290a31ab1fc7fdac.tar.gz kernel-7b9ca4c61bc278b771fb57d6290a31ab1fc7fdac.zip | |
quota: Reduce contention on dq_data_lock
dq_data_lock is currently used to protect all modifications of quota
accounting information, consistency of quota accounting on the inode,
and dquot pointers from inode. As a result contention on the lock can be
pretty heavy.
Reduce the contention on the lock by protecting quota accounting
information by a new dquot->dq_dqb_lock and consistency of quota
accounting with inode usage by inode->i_lock.
This change reduces time to create 500000 files on ext4 on ramdisk by 50
different processes in separate directories by 6% when user quota is
turned on. When those 50 processes belong to 50 different users, the
improvement is about 9%.
Signed-off-by: Jan Kara <[email protected]>
Diffstat (limited to 'fs/jbd2/commit.c')
0 files changed, 0 insertions, 0 deletions
