[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5x76zwpbqus2rjjoezidn3lt7tjuxon3xdx6g34vf2ryhz5kin@y5t2l2gdksok>
Date: Thu, 19 Dec 2024 09:00:57 -0800
From: Shakeel Butt <shakeel.butt@...ux.dev>
To: Rik van Riel <riel@...riel.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
"Huang, Ying" <ying.huang@...el.com>, Chris Li <chrisl@...nel.org>,
Ryan Roberts <ryan.roberts@....com>, David Hildenbrand <david@...hat.com>,
"Matthew Wilcox (Oracle)" <willy@...radead.org>, linux-kernel@...r.kernel.org, linux-mm@...ck.org,
kernel-team@...a.com
Subject: Re: [PATCH] mm: add maybe_lru_add_drain() that only drains when
threshold is exceeded
On Wed, Dec 18, 2024 at 10:13:30PM -0500, Rik van Riel wrote:
> On Wed, 2024-12-18 at 12:20 -0800, Shakeel Butt wrote:
> > On Wed, Dec 18, 2024 at 11:56:04AM -0500, Rik van Riel wrote:
> > [...]
> > >
> > > +static bool should_lru_add_drain(void)
> > > +{
> > > + struct cpu_fbatches *fbatches =
> > > this_cpu_ptr(&cpu_fbatches);
> >
> > You will need either a local_lock or preempt_disable to access the
> > per
> > cpu batches.
> >
> Why is that? Can the per-cpu batches disappear on us
> while we're trying to access them, without that
> local_lock or preempt_disable?
>
> I'm not trying to protect against accidentally reading
> the wrong CPU's numbers, since we could be preempted
> and migrated to another CPU immediately after returning
> from should_lru_add_drain, but do want to keep things
> safe against other potential issues.
>
I was thinking of task migration across CPUs but it can still happen
while zap is ongoing. Yeah we might need to reevaluate if we really need
to drain here or do draining periodically.
Powered by blists - more mailing lists