Re: [PATCH linux-next] mm: workingset: simplify the calculation of workingset size

From: Yang Yang
Date: Thu Mar 16 2023 - 22:06:32 EST


>On Thu, Mar 16, 2023 at 05:23:05PM +0800, yang.yang29@xxxxxxxxxx wrote:
>> From: Yang Yang <yang.yang29@xxxxxxxxxx>
>>
>> After we implemented workingset detection for anonymous LRU[1],
>> the calculation of workingset size is a little complex. Actually there is
>> no need to call mem_cgroup_get_nr_swap_pages() if refault page is
>> anonymous page, since we are doing swapping then should always
>> give pressure to NR_ACTIVE_ANON.
>
> This is false.
>
> (mem_cgroup_)get_nr_swap_pages() returns the *free swap slots*. There
> might be swap, but if it's full, reclaim stops scanning anonymous
> pages altogether. That means that refaults of either type can no
> longer displace existing anonymous pages, only cache.

I see in this patch "mm: vmscan: enforce inactive:active ratio at the
reclaim root", reclaim will be done in the combined workingset of
different workloads in different cgroups.

So if current cgroup reach it's swap limit(mem_cgroup_get_nr_swap_pages(memcg) == 0),
but other cgroup still has swap slot, should we allow the refaulting page
to active and give pressure to other cgroup?