diff options
| author | Daeho Jeong <daehojeong@google.com> | 2025-12-30 09:38:45 -0800 |
|---|---|---|
| committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2026-01-07 03:17:06 +0000 |
| commit | 7ec199117c32543e0fa8787a6eedd9126523a8d4 (patch) | |
| tree | a09eb2533cb45f6f029e1a82d878410ec0cfad41 /include/trace | |
| parent | 572b1c6f2ade7afe687a385caccb717081ada070 (diff) | |
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>
Diffstat (limited to 'include/trace')
0 files changed, 0 insertions, 0 deletions
