Huang, Ying <ying.huang@xxxxxxxxx> 于2022年12月11日周日 20:03写道: > > 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. Ah, I got it. Thanks for pointing out the issue, I'll drop this patch. > > Best Regards, > Huang, Ying