We have discussed related question before. See: https://lore.kernel.org/all/Yio17pXawRuuVJFO@xxxxxxxxxxx/ The problem is that there is no suitable place to measure pagecache thrashing in fs level likes swap_readpage(). We have to measure it in folio_wait_bit_common(). If we measure swap thrashing just in swap_readpage(), we will miss pagecache thrashing. If we measure swap thrashing in swap_readpage(), and measure pagecache thrashing in folio_wait_bit_common(), it will be rerpeated calculation. So this patch is not perfect and it works. If one day we solve the problem of measure thrashing in folio_wait_bit_common(), we may improve this patch correspond. Thanks.