summaryrefslogtreecommitdiffstats
path: root/fs/super.c
diff options
context:
space:
mode:
authorWang Jianchao <jianchwa@outlook.com>2023-09-13 03:38:01 +0200
committerChandan Babu R <chandanbabu@kernel.org>2023-09-13 07:08:20 +0200
commit8b010acb3154b669e52f0eef4a6d925e3cc1db2f (patch)
treeb73e826dd0d30ed73ac6e5c864f3b31e2138f064 /fs/super.c
parentMerge tag 'fix-scrub-6.6_2023-09-12' of https://git.kernel.org/pub/scm/linux/... (diff)
downloadlinux-8b010acb3154b669e52f0eef4a6d925e3cc1db2f.tar.xz
linux-8b010acb3154b669e52f0eef4a6d925e3cc1db2f.zip
xfs: use roundup_pow_of_two instead of ffs during xlog_find_tail
In our production environment, we find that mounting a 500M /boot which is umount cleanly needs ~6s. One cause is that ffs() is used by xlog_write_log_records() to decide the buffer size. It can cause a lot of small IO easily when xlog_clear_stale_blocks() needs to wrap around the end of log area and log head block is not power of two. Things are similar in xlog_find_verify_cycle(). The code is able to handed bigger buffer very well, we can use roundup_pow_of_two() to replace ffs() directly to avoid small and sychronous IOs. Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Wang Jianchao <wangjc136@midea.com> Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
Diffstat (limited to 'fs/super.c')
0 files changed, 0 insertions, 0 deletions