Re: [PATCH] mm/workingset: don't count as refault (file/anon) if refault distance is too long

From: Andrew Morton
Date: Tue Sep 14 2021 - 23:39:11 EST


On Sun, 12 Sep 2021 19:54:47 +0800 Yongmei Xie <yongmeixie@xxxxxxxxxxx> wrote:

> The current implementation count all the pages which have shadow entry in radix tree as
> the event of refault (page or anon). That means all the pages which have ever been
> cached in lru are counted as refault. But I think it's not 100% percent correct.
>
> Because usually inode has much longer life cycle than the pages belonging to it.
> So if the inode was accessed from time to time, then it won't be reclaimed unless much
> severe memory pressure happens.
>
> Then if page was reclaimed several days ago, when it's accessed again, it will be marked as
> refault event. Then page was reclaimed an hour ago, when it's accessed again, it will be
> marked as refault event as well. From the refault metric alone, I cannot tell whether the
> previous reclaim process has evicted some useful pages. That makes things worse in situation
> of proactive reclaim. We's like to known whehter the previous policy reclaim too much
> meaningful data other than working set transition. So we'd like see the refault rate, but it
> includes all the historical reclaim.
>
> >From my point of view, if the refaut distance is larger than file cache size, we don't
> have to count it refault at all. Because it's too long to be memorized down.

Thanks.

Do you have any runtime testing results which demonstrate a benefit?