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

Yang Yang
2023-03-18T03:10:14Z

> On Fri, Mar 17, 2023 at 01:59:03AM +0000, Yang Yang wrote:
>> 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?
>
> That's what we do today.
>
> The shadow entry remembers the reclaim root, so that refaults can
> later evaluated at the same level. So, say you have:
>
> root - A - A1
> `- A2

> and A1 and A2 are reclaimed due to a limit in A. The shadow entries of
> evictions from A1 and A2 will actually refer to A.
>
> When they refault later on, the distance is interpreted based on
> whether A has swap (eviction_lruvec).

Much appreciate to your patient explanation.

Still a question:
In the example above, if (NR_ACTIVE_FILE + NR_INACTIVE_FILE) <
refault_distance < (NR_ACTIVE_FILE + NR_INACTIVE_FILE + NR_ACTIVE_ANON),
and swap slot is full, the refault page is not set active. Then if some
swap slots is freed, the newly refault page might be early reclaimed
since it's inactive.
And if we let the refault page be set active evenif swap slot is full,
when swap slot is freed, the refault page is protected from being early
relcaimed.