Kairui Song <ryncsn@xxxxxxxxx> writes: > Matthew Wilcox <willy@xxxxxxxxxxxxx> 于2022年12月9日周五 03:14写道: >> > > Hi, thanks for the review. > >> On Fri, Dec 09, 2022 at 02:02:09AM +0800, Kairui Song wrote: >> > From: Kairui Song <kasong@xxxxxxxxxxx> >> > >> > __read_swap_cache_async should just call swap_cache_get_folio for trying >> > to look up the swap cache. Because swap_cache_get_folio handles the >> > readahead statistic, and clears the RA flag, looking up the cache >> > directly will skip these parts. >> > >> > And the comment no longer applies after commit 442701e7058b >> > ("mm/swap: remove swap_cache_info statistics"), just remove them. >> >> But what about the readahead stats? >> > > Shouldn't readahead stats be accounted here? __read_swap_cache_async > is called by swap read in path, if it hits the swap cache, and the > page have readahead page flag set, then accounting that readahead > should be just the right thing todo. And the readahead flag is checked > with folio_test_clear_readahead, so there should be no issue about > repeated accounting. > > Only the addr info of the swap_readahead_info could be updated for > multiple times by racing readers, but I think that seems fine, since > we don't know which swap read comes later in case of race, just let > the last reader that hits the swap cache update the address info of > readahead makes sense to me. > > Or do you mean I should update the comment about the readahead stat > instead of just drop the commnet? __read_swap_cache_async() is called by readahead too (swap_vma_readahead/__read_swap_cache_async). I don't think that it's a good idea to do swap readahead operation in this function. Best Regards, Huang, Ying