mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-10 20:48:12 +00:00
f2fs: flush plug periodically during GC to maximize readahead effect
During the garbage collection process, F2FS submits readahead I/Os for valid blocks. However, since the GC loop runs within a single plug scope without intermediate flushing, these readahead I/Os often accumulate in the block layer's plug list instead of being dispatched to the device immediately. Consequently, when the GC thread attempts to lock the page later, the I/O might not have completed (or even started), leading to a "read try and wait" scenario. This negates the benefit of readahead and causes unnecessary delays in GC latency. This patch addresses this issue by introducing an intermediate blk_finish_plug() and blk_start_plug() pair within the GC loop. This forces the dispatch of pending I/Os, ensuring that readahead pages are fetched in time, thereby reducing GC latency. Signed-off-by: Daeho Jeong <daehojeong@google.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
572b1c6f2a
commit
7ec199117c
1 changed files with 13 additions and 6 deletions
19
fs/f2fs/gc.c
19
fs/f2fs/gc.c
Loading…
Add table
Add a link
Reference in a new issue