Re: [RFC PATCH 6/6] mm: Drain LRUs upon resume to userspace on nohz_full CPUs
From: Frederic Weisbecker
Date: Wed Jul 03 2024 - 08:52:34 EST
Le Tue, Jun 25, 2024 at 04:20:01PM +0200, Michal Hocko a écrit :
> On Tue 25-06-24 15:52:44, Frederic Weisbecker wrote:
> > LRUs can be drained through several ways. One of them may add disturbances
> > to isolated workloads while queuing a work at any time to any target,
> > whether running in nohz_full mode or not.
> >
> > Prevent from that on isolated tasks with draining LRUs upon resuming to
> > userspace using the isolated task work framework.
> >
> > It's worth noting that this is inherently racy against
> > lru_add_drain_all() remotely queueing the per CPU drain work and
> > therefore it prevents from the undesired disturbance only
> > *most of the time*.
>
> Can we simply not schedule flushing on remote CPUs and leave that to the
> "return to the userspace" path?
Do you mean I should add a call on return to the userspace path or can
I expect it to be drained at some point already?
The other limitation with that task work thing is that if the task
queueing the work actually goes to sleep and another task go on the CPU
and does isolated work in userspace, the drain doesn't happen. Now whether
that is a real problem or not, I have no idea.
>
> I do not think we rely on LRU cache flushing for correctness purposes anywhere.
>
> Please also CC linux MM ML once the core infrastructure is agreed on.
Ok, thanks.
> --
> Michal Hocko
> SUSE Labs