Re: [RFC PATCH] mm: don't promote exclusive file folios of dying processes

From: David Hildenbrand
Date: Wed Apr 16 2025 - 05:40:46 EST


On 16.04.25 11:38, Barry Song wrote:
On Wed, Apr 16, 2025 at 5:32 PM David Hildenbrand <david@xxxxxxxxxx> wrote:

On 16.04.25 11:24, Barry Song wrote:
On Wed, Apr 16, 2025 at 4:32 PM David Hildenbrand <david@xxxxxxxxxx> wrote:

On 12.04.25 10:58, Barry Song wrote:
From: Barry Song <v-songbaohua@xxxxxxxx>

Promoting exclusive file folios of a dying process is unnecessary and
harmful. For example, while Firefox is killed and LibreOffice is
launched, activating Firefox's young file-backed folios makes it
harder to reclaim memory that LibreOffice doesn't use at all.

Do we know when it is reasonable to promote any folios of a dying process?


I don't know. It seems not reasonable at all. if one service crashes due to
SW bug, systemd will restart it immediately. this might be the case promoting
folios might be good. but it is really a bug of the service, not a normal case.

Assume you restart Firefox, would it really matter to promote them when
unmapping? New Firefox would fault-in / touch the ones it really needs
immediately afterwards?

Usually users kill firefox to start other applications (users intend
to free memory
for new applications). For Android, an app might be killed because it has been
staying in the background inactively for a while.

On the other hand, even if users restart firefox immediately, their folios are
probably still in LRU to hit.

Right, that's what I'm thinking.

So I wonder if we could just say "the whole process is going down; even
if we had some recency information, that could only affect some other
process, where we would have to guess if it really matters".

If the data is important, one would assume that another process would
soon access it either way, and as you say, likely it will still be on
the LRU to hit.

I'll include this additional information in the v2 version of the patch since
you think it would be helpful.

Regarding the exclusive flag - I'm wondering whether we actually need to
distinguish between exclusive and shared folios in this case. The current
patch uses the exclusive flag mainly to reduce controversy, but even for
shared folios: does the recency from a dying process matter? The
recency information only reflects the dying process's usage pattern, which
will soon be irrelevant.

Exactly my thoughts. So if we can simplify -- ignore it completely -- that would certainly be nice.

--
Cheers,

David / dhildenb