Re: [PATCH v10] mm: vmscan: try to reclaim swapcache pages if no swap space

From: Huang, Ying
Date: Mon Nov 27 2023 - 03:14:05 EST


Chris Li <chrisl@xxxxxxxxxx> writes:

> Hi Ying,
>
> On Sun, Nov 26, 2023 at 6:36 PM Huang, Ying <ying.huang@xxxxxxxxx> wrote:
>>
>> Michal Hocko <mhocko@xxxxxxxx> writes:
>>
>> > On Thu 23-11-23 14:15:59, Huang, Ying wrote:
>> >> Michal Hocko <mhocko@xxxxxxxx> writes:
>> > [...]
>> >> > Yes swapcache pages are indeed more complicated but most of the time
>> >> > they just go away as well, no?
>> >>
>> >> When we swapin a page, we will put it in swapcache too. And the page
>> >> can be in that state for long time if there is more than 50% free space
>> >> in the swap device.
>> >
>> > True, but why is that a problem? If you encounter such a swapped in page
>> > on the file LRU then the page should be referened and as such should be
>> > activated, no?
>>
>> This just means that anonymous pages in file LRU aren't temporary or
>> short-term. So we need to consider that. For example, the original
>> method to balance between anonymous pages and file pages need to be
>> re-designed. The anonymous pages are considered hotter than file pages
>> in general.
>
> I agree with Ying that anonymous pages typically have different page
> access patterns than file pages, so we might want to treat them
> differently to reclaim them effectively.
> One random idea:
> How about we put the anonymous page in a swap cache in a different LRU
> than the rest of the anonymous pages. Then shrinking against those
> pages in the swap cache would be more effective.Instead of having
> [anon, file] LRU, now we have [anon not in swap cache, anon in swap
> cache, file] LRU

I don't think that it is necessary. The patch is only for a special use
case. Where the swap device is used up while some pages are in swap
cache. The patch will kill performance, but it is used to avoid OOM
only, not to improve performance. Per my understanding, we will not use
up swap device space in most cases. This may be true for ZRAM, but will
we keep pages in swap cache for long when we use ZRAM?

--
Best Regards,
Huang, Ying