diff options
author | Wang Jianchao <jianchwa@outlook.com> | 2023-09-13 03:38:01 +0200 |
---|---|---|
committer | Chandan Babu R <chandanbabu@kernel.org> | 2023-09-13 07:08:20 +0200 |
commit | 8b010acb3154b669e52f0eef4a6d925e3cc1db2f (patch) | |
tree | b73e826dd0d30ed73ac6e5c864f3b31e2138f064 /fs/super.c | |
parent | Merge tag 'fix-scrub-6.6_2023-09-12' of https://git.kernel.org/pub/scm/linux/... (diff) | |
download | linux-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