From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Gregory Price <gourry@gourry.net>, Matthew Wilcox <willy@infradead.org>
Cc: linux-mm@kvack.org, cgroups@vger.kernel.org,
linux-kernel@vger.kernel.org, kernel-team@meta.com,
akpm@linux-foundation.org, mingo@redhat.com,
peterz@infradead.org, juri.lelli@redhat.com,
vincent.guittot@linaro.org, hannes@cmpxchg.org,
mhocko@kernel.org, roman.gushchin@linux.dev,
shakeel.butt@linux.dev, donettom@linux.ibm.com,
Huang Ying <ying.huang@linux.alibaba.com>,
Keith Busch <kbusch@meta.com>, Feng Tang <feng.tang@intel.com>,
Neha Gholkar <nehagholkar@meta.com>
Subject: Re: [RFC PATCH v4 0/6] Promotion of Unmapped Page Cache Folios.
Date: Sat, 12 Apr 2025 17:22:24 +0530 [thread overview]
Message-ID: <87jz7p1ts7.fsf@gmail.com> (raw)
In-Reply-To: <Z_m3VKO2EPd09j4T@gourry-fedora-PF4VCD3F>
Gregory Price <gourry@gourry.net> writes:
> On Sat, Apr 12, 2025 at 01:35:56AM +0100, Matthew Wilcox wrote:
>> On Fri, Apr 11, 2025 at 08:09:55PM -0400, Gregory Price wrote:
>> > On Sat, Apr 12, 2025 at 12:49:18AM +0100, Matthew Wilcox wrote:
>> > > On Fri, Apr 11, 2025 at 06:11:05PM -0400, Gregory Price wrote:
>> > > > Unmapped page cache pages can be demoted to low-tier memory, but
>> > >
>> > > No. Page cache should never be demoted to low-tier memory.
>> > > NACK this patchset.
Hi Matthew,
Could you please give some context around why shouldn't page cache be
considered as a demotion target if demotion is enabled? Shouldn't
demoting page cache pages to a lower tier (when we have enough space in
lower tier) can be a better alternative then discarding these pages and
later doing I/Os to read them back again?
>> >
>> > This wasn't a statement of approval page cache being on lower tiers,
>> > it's a statement of fact. Enabling demotion causes this issue.
>>
>> Then that's the bug that needs to be fixed. Not adding 200+ lines
>> of code to recover from a situation that should never happen.
/me goes and checks when the demotion feature was added...
Ok, so I believe this was added here [1]
"[PATCH -V10 4/9] mm/migrate: demote pages during reclaim".
[1]: https://lore.kernel.org/all/20210715055145.195411-5-ying.huang@intel.com/T/#u
I think systems with persistent memory acting as DRAM nodes, could choose
to demote page cache pages too, to lower tier instead of simply
discarding them and later doing I/O to read them back from disk.
e.g. when one has a smaller size DRAM as faster tier and larger size
PMEM as slower tier. During memory pressure on faster tier, demoting
page cache pages to slower tier can be helpful to avoid doing I/O later
to read them back in, isn't it?
>
> Well, I have a use case that make valuable use of putting the page cache
> on a farther node rather than pushing it out to disk. But this
> discussion aside, I think we could simply make this a separate mode of
> demotion_enabled
>
> /* Only demote anonymous memory */
> echo 2 > /sys/kernel/mm/numa/demotion_enabled
>
If we are going down this road... then should we consider what other
choices users may need for their usecases? e.g.
0: Demotion disabled
1: Demotion enabled for both anon and file pages
Till here the support is already present.
2: Demotion enabled only for anon pages
3: Demotion enabled only for file pages
Should this be further classified for dirty v/s clean page cache
pages too?
> Assuming we can recognize anon from just struct folio
I am not 100% sure of this, so others should correct. Should this
simply be, folio_is_file_lru() to differentiate page cache pages?
Although this still might give us anon pages which have the
PG_swapbacked dropped as a result of MADV_FREE. Note sure if that need
any special care though?
-ritesh
next prev parent reply other threads:[~2025-04-12 13:09 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-11 22:11 Gregory Price
2025-04-11 22:11 ` [RFC PATCH v4 1/6] migrate: Allow migrate_misplaced_folio_prepare() to accept a NULL VMA Gregory Price
2025-04-15 0:12 ` SeongJae Park
2025-04-11 22:11 ` [RFC PATCH v4 2/6] memory: allow non-fault migration in numa_migrate_check path Gregory Price
2025-04-11 22:11 ` [RFC PATCH v4 3/6] vmstat: add page-cache numa hints Gregory Price
2025-04-11 22:11 ` [RFC PATCH v4 4/6] migrate: implement migrate_misplaced_folio_batch Gregory Price
2025-04-15 0:19 ` SeongJae Park
2025-04-11 22:11 ` [RFC PATCH v4 5/6] migrate,sysfs: add pagecache promotion Gregory Price
2025-04-15 0:41 ` SeongJae Park
2025-04-11 22:11 ` [RFC PATCH v4 6/6] mm/swap.c: Enable promotion of unmapped MGLRU page cache pages Gregory Price
2025-04-11 23:49 ` [RFC PATCH v4 0/6] Promotion of Unmapped Page Cache Folios Matthew Wilcox
2025-04-12 0:09 ` Gregory Price
2025-04-12 0:35 ` Matthew Wilcox
2025-04-12 0:44 ` Gregory Price
2025-04-12 11:52 ` Ritesh Harjani [this message]
2025-04-12 14:35 ` Gregory Price
2025-04-13 5:23 ` Donet Tom
2025-04-13 12:48 ` Matthew Wilcox
2025-04-15 0:45 ` SeongJae Park
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87jz7p1ts7.fsf@gmail.com \
--to=ritesh.list@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=donettom@linux.ibm.com \
--cc=feng.tang@intel.com \
--cc=gourry@gourry.net \
--cc=hannes@cmpxchg.org \
--cc=juri.lelli@redhat.com \
--cc=kbusch@meta.com \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=mingo@redhat.com \
--cc=nehagholkar@meta.com \
--cc=peterz@infradead.org \
--cc=roman.gushchin@linux.dev \
--cc=shakeel.butt@linux.dev \
--cc=vincent.guittot@linaro.org \
--cc=willy@infradead.org \
--cc=ying.huang@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox