From: "David Hildenbrand (Arm)" <david@kernel.org>
To: Barry Song <baohua@kernel.org>
Cc: Alexandre Ghiti <alex@ghiti.fr>,
akpm@linux-foundation.org, willy@infradead.org, jack@suse.cz,
liam@infradead.org, ljs@kernel.org, vbabka@kernel.org,
jannh@google.com, chrisl@kernel.org, kasong@tencent.com,
shikemeng@huaweicloud.com, nphamcs@gmail.com,
baoquan.he@linux.dev, youngjun.park@lge.com, qi.zheng@linux.dev,
shakeel.butt@linux.dev, axelrasmussen@google.com,
yuanchu@google.com, weixugc@google.com, hannes@cmpxchg.org,
mhocko@kernel.org, yosry@kernel.org, chengming.zhou@linux.dev,
kunwu.chan@gmail.com, tz2294@columbia.edu, hch@lst.de,
linux-mm@kvack.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm: madvise: drop MADV_PAGEOUT folios at swap writeback completion
Date: Wed, 23 Sep 2026 10:44:39 +0200 [thread overview]
Message-ID: <4c7c6ea0-84a7-45f6-989c-d1502b90694c@kernel.org> (raw)
In-Reply-To: <CAGsJ_4z2nakqBCKd_uAn4bfub99r3NJt2spOUx-K0M7bHW3_-w@mail.gmail.com>
On 9/22/26 22:55, Barry Song wrote:
> On Tue, Sep 22, 2026 at 7:26 PM David Hildenbrand (Arm)
> <david@kernel.org> wrote:
>>
>> On 9/22/26 12:37, Barry Song wrote:
>>> On Tue, Sep 22, 2026 at 6:20 PM David Hildenbrand (Arm)
>>> <david@kernel.org> wrote:
>>>
>>> I suggested this to Alexandre, and he found that it could regress some
>>> workloads [1]. That is why Alexandre is only making the folios
>>> immediately reclaimable for `MADV_PAGEOUT`.
>>
>> I really hate to add special sauce for MADV_PAGEOUT. Also, I don't quite like
>> that we do something fundamentally different for sync vs. async.
>>
>> I assume, though, that async writeback that is very fast might just find the
>> !folio_test_writeback() scenario just like the sync case. ... or if we
>> reschedule after pageout()?
>>
>> I am wondering: if we can show that letting async swapped out pages stay in
>> memory a bit longer improves performance, aren't we swapping out the wrong pages
>> in the first place, and not swapping them out would help the sync case as well?
>
> I guess that's because the LRU is not always accurate. There are cases
> where our prediction of future access patterns may be wrong, resulting
> in refaults?
Right. But these would happen in both the SYNC and the ASYNC case. Which seems
to indicate that making the SYNC case behave like the ASYNC case (keep in
swapcache before evicting) could actually improve performance?
Or is the SYNC case in general so fast that it is not a problem and the
swapcache is just not a good use?
>
> Even on Android, which uses zram with very fast synchronous swap-out,
> I can still hit the swapcache from time to time. So perhaps with a
> slower device, such as an HDD, keeping the swapcache around for longer
> could allow applications to hit it more often?
Why is that specific for HDD? It's the exact same app behavior independent of
the underlying swap technology.
>
>>
>>>
>>> See Alexandre's description:
>>>
>>> "Future work
>>> -----------
>>> Barry suggested extending this to MADV_PAGEOUT and general reclaim. I
>>> prototyped dropbehind for all reclaimed swap folios and it regressed
>>> sysbench OLTP throughput by ~15% on NVMe swap: dropping the swap cache
>>> immediately turns cheap in-cache refaults into disk reads and collapses
>>> swap readahead clustering.
>>
>> Thanks, does this represent a workload pattern we care about?
>
> I don't know. Maybe Alexandre can share more details about this
> benchmark. I'm also a little surprised by the 15% regression in
> Sysbench OLTP. My initial feeling was the same as yours: we should
> release the memory immediately after writeback completes, for both
> synchronous and asynchronous I/O.
Right. And see if we can identify why we are swapping out the wrong things :)
>
> Kairui also mentioned to me that he once tried releasing memory
> immediately after folios were written back to HDD, and saw some
> serious performance regressions as well. Maybe Kairui can also share
> some thoughts on this.
Would be good to find the root cause for this: why are we swapping out these
pages that are immediately needed again such that it affects performance that
drastically.
--
Cheers,
David
next prev parent reply other threads:[~2026-09-23 8:44 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-21 15:24 Alexandre Ghiti
2026-09-21 15:37 ` David Hildenbrand (Arm)
2026-09-21 21:56 ` Barry Song
2026-09-22 8:56 ` Kairui Song
2026-09-22 10:20 ` David Hildenbrand (Arm)
2026-09-22 10:37 ` Barry Song
2026-09-22 10:47 ` Lorenzo Stoakes (ARM)
2026-09-22 11:10 ` Barry Song
2026-09-22 11:15 ` Lorenzo Stoakes (ARM)
2026-09-22 11:36 ` Barry Song
2026-09-22 11:26 ` David Hildenbrand (Arm)
2026-09-22 20:55 ` Barry Song
2026-09-23 8:44 ` David Hildenbrand (Arm) [this message]
2026-09-23 9:35 ` Kairui Song
2026-09-23 9:46 ` David Hildenbrand (Arm)
2026-09-23 10:14 ` Kairui Song
2026-09-23 16:21 ` KunWu Chan
2026-09-22 10:44 ` Lorenzo Stoakes (ARM)
2026-09-22 13:22 ` Alexandre Ghiti
2026-09-22 15:22 ` Gregory Price
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=4c7c6ea0-84a7-45f6-989c-d1502b90694c@kernel.org \
--to=david@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=alex@ghiti.fr \
--cc=axelrasmussen@google.com \
--cc=baohua@kernel.org \
--cc=baoquan.he@linux.dev \
--cc=chengming.zhou@linux.dev \
--cc=chrisl@kernel.org \
--cc=hannes@cmpxchg.org \
--cc=hch@lst.de \
--cc=jack@suse.cz \
--cc=jannh@google.com \
--cc=kasong@tencent.com \
--cc=kunwu.chan@gmail.com \
--cc=liam@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@kernel.org \
--cc=nphamcs@gmail.com \
--cc=qi.zheng@linux.dev \
--cc=shakeel.butt@linux.dev \
--cc=shikemeng@huaweicloud.com \
--cc=tz2294@columbia.edu \
--cc=vbabka@kernel.org \
--cc=weixugc@google.com \
--cc=willy@infradead.org \
--cc=yosry@kernel.org \
--cc=youngjun.park@lge.com \
--cc=yuanchu@google.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
all inboxes | Powered by JetHome®