Messages in this thread | | | From | John Ogness <> | Subject | [RFC PATCH 0/1] fs: remove retry loop | Date | Wed, 17 Jun 2020 12:46:57 +0206 |
| |
Hello,
This patch removes the last retry loop in VFS. It is partially reverting
commit d3ef3d7351cc ("fs: mnt_want_write speedup")
by re-introducing per-cpu spinlocks for each mount. The patch includes benchmark results in the diffstat section to show that the previous optimization work is not undone.
I would have liked to use a percpu_rw_semaphore per mount instead of the many spinlocks. However, percpu_rw_semaphore can sleep, which is a problem for sb_prepare_remount_readonly() since it needs to take the spinlock in @mount_lock in order to iterate @sb->s_mounts. Perhaps using a mutex to sychronize @sb->s_mounts is an option. I am not sure. That is why this is an RFC.
I am suggesting this partial revert because it removes the retry loop and does not show any obvious negative benchmark effects.
John Ogness (1): fs/namespace.c: use spinlock instead of busy loop
fs/mount.h | 7 +++ fs/namespace.c | 118 +++++++++++++++++++++++++++++++++---------------- 2 files changed, 86 insertions(+), 39 deletions(-)
-- 2.20.1
| |