From: Michal Hocko <mhocko@suse.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Leonardo Bras <leobras.c@gmail.com>,
linux-kernel@vger.kernel.org, cgroups@vger.kernel.org,
linux-mm@kvack.org, Johannes Weiner <hannes@cmpxchg.org>,
Roman Gushchin <roman.gushchin@linux.dev>,
Shakeel Butt <shakeel.butt@linux.dev>,
Muchun Song <muchun.song@linux.dev>,
Andrew Morton <akpm@linux-foundation.org>,
Christoph Lameter <cl@linux.com>,
Pekka Enberg <penberg@kernel.org>,
David Rientjes <rientjes@google.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Vlastimil Babka <vbabka@suse.cz>,
Hyeonggon Yoo <42.hyeyoo@gmail.com>,
Leonardo Bras <leobras@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Waiman Long <longman@redhat.com>,
Boqun Feng <boqun.feng@gmail.com>,
Frederic Weisbecker <fweisbecker@suse.de>
Subject: Re: [PATCH 0/4] Introduce QPW for per-cpu operations
Date: Mon, 23 Feb 2026 10:18:40 +0100 [thread overview]
Message-ID: <aZwbcKeO-59l0UOC@tiehlicka> (raw)
In-Reply-To: <aZhv+Bw7nKKmbFdq@tpad>
On Fri 20-02-26 11:30:16, Marcelo Tosatti wrote:
> On Thu, Feb 19, 2026 at 08:30:31PM +0100, Michal Hocko wrote:
> > On Thu 19-02-26 12:27:23, Marcelo Tosatti wrote:
[...]
> > and delayed pcp work that migh disturb such workload
> > after it has returned to the userspace. Right?
> > That is usually hauskeeping work that for, performance reasons, doesn't
> > happen in hot paths while the workload was executing in the kernel
> > space.
> >
> > There are more ways to deal with that. You can either change the hot
> > path to not require deferred operation (tricky withtout introducing
> > regressions for most workloads) or you can define a more suitable place
> > to perform the housekeeping while still running in the kernel.
> >
> > Your QWP work relies on local_lock -> spin_lock transition and
> > performing the pcp work remotely so you do not need to disturb that
> > remote cpu. Correct?
> >
> > Alternative approach is to define a moment when the housekeeping
> > operation is performed on that local cpu while still running in the
> > kernel space - e.g. when returning to the userspace. Delayed work is
> > then not necessary and userspace is not disrupted after returning to the
> > userspace.
> >
> > Do I make more sense or does the above sound like a complete gibberish?
>
> OK, sure, but can't see how you can do that with per-CPU caches for
> kmalloc, for example.
As we have discussed in other subthread. By flushing those pcp caches on
the return to userspace. Those flushes are not needed immediately. They
just need to happen to allow operations listed by Vlastimil to finish.
Or to avoid the problem by not using them but that is a separate
discussion.
I believe we can establish that any pcp delayed operation implemented
through WQs can be flushed on the way to the userspace, right? The
performance might be suboptimal but correctness will be preserved.
So doing this on isolated CPUs could be an alternative to making changes
to the pcp WQ handling.
I haven't checked the WQ code deeply but I believe it should be feasible
to flush all pcp WQs with pending work on the isolated cpu when the
isolated workload returns to the userspace. This way we wouldn't need to
special case each and every one of them.
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2026-02-23 9:18 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-06 14:34 Marcelo Tosatti
2026-02-06 14:34 ` [PATCH 1/4] Introducing qpw_lock() and per-cpu queue & flush work Marcelo Tosatti
2026-02-06 15:20 ` Marcelo Tosatti
2026-02-07 0:16 ` Leonardo Bras
2026-02-11 12:09 ` Marcelo Tosatti
2026-02-14 21:32 ` Leonardo Bras
2026-02-06 14:34 ` [PATCH 2/4] mm/swap: move bh draining into a separate workqueue Marcelo Tosatti
2026-02-06 14:34 ` [PATCH 3/4] swap: apply new queue_percpu_work_on() interface Marcelo Tosatti
2026-02-07 1:06 ` Leonardo Bras
2026-02-06 14:34 ` [PATCH 4/4] slub: " Marcelo Tosatti
2026-02-07 1:27 ` Leonardo Bras
2026-02-06 23:56 ` [PATCH 0/4] Introduce QPW for per-cpu operations Leonardo Bras
2026-02-10 14:01 ` Michal Hocko
2026-02-11 12:01 ` Marcelo Tosatti
2026-02-11 12:11 ` Marcelo Tosatti
2026-02-14 21:35 ` Leonardo Bras
2026-02-11 16:38 ` Michal Hocko
2026-02-11 16:50 ` Marcelo Tosatti
2026-02-11 16:59 ` Vlastimil Babka
2026-02-11 17:07 ` Michal Hocko
2026-02-14 22:02 ` Leonardo Bras
2026-02-16 11:00 ` Michal Hocko
2026-02-19 15:27 ` Marcelo Tosatti
2026-02-19 19:30 ` Michal Hocko
2026-02-20 14:30 ` Marcelo Tosatti
2026-02-23 9:18 ` Michal Hocko [this message]
2026-02-20 10:48 ` Vlastimil Babka
2026-02-20 12:31 ` Michal Hocko
2026-02-20 17:35 ` Marcelo Tosatti
2026-02-20 17:58 ` Vlastimil Babka
2026-02-20 19:01 ` Marcelo Tosatti
2026-02-23 9:11 ` Michal Hocko
2026-02-20 16:51 ` Marcelo Tosatti
2026-02-20 16:55 ` Marcelo Tosatti
2026-02-20 22:38 ` Leonardo Bras
2026-02-20 21:58 ` Leonardo Bras
2026-02-23 9:06 ` Michal Hocko
2026-02-19 13:15 ` Marcelo Tosatti
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=aZwbcKeO-59l0UOC@tiehlicka \
--to=mhocko@suse.com \
--cc=42.hyeyoo@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=boqun.feng@gmail.com \
--cc=cgroups@vger.kernel.org \
--cc=cl@linux.com \
--cc=fweisbecker@suse.de \
--cc=hannes@cmpxchg.org \
--cc=iamjoonsoo.kim@lge.com \
--cc=leobras.c@gmail.com \
--cc=leobras@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=longman@redhat.com \
--cc=mtosatti@redhat.com \
--cc=muchun.song@linux.dev \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=roman.gushchin@linux.dev \
--cc=shakeel.butt@linux.dev \
--cc=tglx@linutronix.de \
--cc=vbabka@suse.cz \
/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