From: Hugh Dickins <hughd@google.com>
To: David Hildenbrand <david@redhat.com>
Cc: Hugh Dickins <hughd@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Will Deacon <will@kernel.org>, Shivank Garg <shivankg@amd.com>,
Matthew Wilcox <willy@infradead.org>,
Christoph Hellwig <hch@infradead.org>,
Keir Fraser <keirf@google.com>, Jason Gunthorpe <jgg@ziepe.ca>,
John Hubbard <jhubbard@nvidia.com>,
Frederick Mayle <fmayle@google.com>,
Peter Xu <peterx@redhat.com>,
"Aneesh Kumar K.V" <aneesh.kumar@kernel.org>,
Johannes Weiner <hannes@cmpxchg.org>,
Vlastimil Babka <vbabka@suse.cz>,
Alexander Krabler <Alexander.Krabler@kuka.com>,
Ge Yang <yangge1116@126.com>, Li Zhe <lizhe.67@bytedance.com>,
Chris Li <chrisl@kernel.org>, Yu Zhao <yuzhao@google.com>,
Axel Rasmussen <axelrasmussen@google.com>,
Yuanchu Xie <yuanchu@google.com>, Wei Xu <weixugc@google.com>,
Konstantin Khlebnikov <koct9i@gmail.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 3/7] mm/gup: local lru_add_drain() to avoid lru_add_drain_all()
Date: Mon, 8 Sep 2025 03:53:48 -0700 (PDT) [thread overview]
Message-ID: <b2aca727-ecb8-5429-e418-e8bcbc8df070@google.com> (raw)
In-Reply-To: <e3922760-b074-4d5a-bf4a-9d7cf7f5f914@redhat.com>
On Mon, 1 Sep 2025, David Hildenbrand wrote:
> On 31.08.25 11:08, Hugh Dickins wrote:
> > In many cases, if collect_longterm_unpinnable_folios() does need to
> > drain the LRU cache to release a reference, the cache in question is
> > on this same CPU, and much more efficiently drained by a preliminary
> > local lru_add_drain(), than the later cross-CPU lru_add_drain_all().
> >
> > Marked for stable, to counter the increase in lru_add_drain_all()s
> > from "mm/gup: check ref_count instead of lru before migration".
> > Note for clean backports: can take 6.16 commit a03db236aebf ("gup:
> > optimize longterm pin_user_pages() for large folio") first.
> >
> > Signed-off-by: Hugh Dickins <hughd@google.com>
> > Cc: <stable@vger.kernel.org>
> > ---
> > mm/gup.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/mm/gup.c b/mm/gup.c
> > index 82aec6443c0a..9f7c87f504a9 100644
> > --- a/mm/gup.c
> > +++ b/mm/gup.c
> > @@ -2291,6 +2291,8 @@ static unsigned long
> > collect_longterm_unpinnable_folios(
> > struct folio *folio;
> > long i = 0;
> > + lru_add_drain();
> > +
> > for (folio = pofs_get_folio(pofs, i); folio;
> > folio = pofs_next_folio(folio, pofs, &i)) {
> >
>
> Do we really want to drain all the time we enter
> collect_longterm_unpinnable_folios(), or only if we detect an actual problem?
> (unexpected reference?)
It looked nice and simple to me (hmm, where's the blank line before
lru_add_drain() gone? weird, something wrong with my mail setup),
I've never avoided an lru_add_drain() before; but you're right,
we dom't need to do that every time, fixed in v2 - thanks.
Hugh
next prev parent reply other threads:[~2025-09-08 10:53 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-31 8:57 [PATCH 0/7] mm: better GUP pin lru_add_drain_all() Hugh Dickins
2025-08-31 9:01 ` [PATCH 1/7] mm: fix folio_expected_ref_count() when PG_private_2 Hugh Dickins
2025-08-31 23:37 ` Matthew Wilcox
2025-09-01 1:17 ` Hugh Dickins
2025-09-01 7:52 ` David Hildenbrand
2025-09-01 8:04 ` David Hildenbrand
2025-09-08 10:27 ` Hugh Dickins
2025-09-08 15:06 ` Matthew Wilcox
2025-09-08 19:47 ` Hugh Dickins
2025-08-31 9:05 ` [PATCH 2/7] mm/gup: check ref_count instead of lru before migration Hugh Dickins
2025-09-01 8:00 ` David Hildenbrand
2025-09-08 10:40 ` Hugh Dickins
2025-09-08 14:08 ` David Hildenbrand
2025-09-08 19:57 ` Hugh Dickins
2025-09-08 20:17 ` David Hildenbrand
2025-08-31 9:08 ` [PATCH 3/7] mm/gup: local lru_add_drain() to avoid lru_add_drain_all() Hugh Dickins
2025-09-01 8:05 ` David Hildenbrand
2025-09-08 10:53 ` Hugh Dickins [this message]
2025-08-31 9:11 ` [PATCH 4/7] mm: Revert "mm/gup: clear the LRU flag of a page before adding to LRU batch" Hugh Dickins
2025-09-01 8:06 ` David Hildenbrand
2025-08-31 9:13 ` [PATCH 5/7] mm: Revert "mm: vmscan.c: fix OOM on swap stress test" Hugh Dickins
2025-09-01 8:07 ` David Hildenbrand
2025-08-31 9:16 ` [PATCH 6/7] mm: folio_may_be_cached() unless folio_test_large() Hugh Dickins
2025-09-01 8:13 ` David Hildenbrand
2025-09-08 11:19 ` Hugh Dickins
2025-09-08 14:35 ` David Hildenbrand
2025-09-08 20:04 ` Hugh Dickins
2025-09-08 20:11 ` David Hildenbrand
2025-08-31 9:18 ` [PATCH 7/7] mm: lru_add_drain_all() do local lru_add_drain() first Hugh Dickins
2025-09-01 8:14 ` David Hildenbrand
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=b2aca727-ecb8-5429-e418-e8bcbc8df070@google.com \
--to=hughd@google.com \
--cc=Alexander.Krabler@kuka.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@kernel.org \
--cc=axelrasmussen@google.com \
--cc=chrisl@kernel.org \
--cc=david@redhat.com \
--cc=fmayle@google.com \
--cc=hannes@cmpxchg.org \
--cc=hch@infradead.org \
--cc=jgg@ziepe.ca \
--cc=jhubbard@nvidia.com \
--cc=keirf@google.com \
--cc=koct9i@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizhe.67@bytedance.com \
--cc=peterx@redhat.com \
--cc=shivankg@amd.com \
--cc=vbabka@suse.cz \
--cc=weixugc@google.com \
--cc=will@kernel.org \
--cc=willy@infradead.org \
--cc=yangge1116@126.com \
--cc=yuanchu@google.com \
--cc=yuzhao@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.