patch 地址:[PATCH 0/10] mm: Fix various readahead quirks - Jan Kara
[PATCH 01/10]readahead: Make sure sync readahead reads needed page
从代码的角度,这个修改严格了 ra 变化的条件,原来只要满足 (index == expected || index == (ra->start + ra->size))
那么都会增加预读窗口,然后从底层读数据。修改之后仅仅在异步预读(folio != NULL
)且命中异步预读标记(index == expected
)才会增加预读窗口。
为什么这个修改可以提高顺序读的性能
要弄清楚这个问题需要知道