From: Tejun Heo <tj@kernel.org>
To: Vlastimil Babka <vbabka@suse.cz>
Cc: Christopher Lameter <cl@linux.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
David Rientjes <rientjes@google.com>,
Pekka Enberg <penberg@kernel.org>,
Lai Jiangshan <jiangshanlai@gmail.com>,
John Stultz <john.stultz@linaro.org>,
Thomas Gleixner <tglx@linutronix.de>,
Stephen Boyd <sboyd@kernel.org>
Subject: Re: [RFC] mm, slab: reschedule cache_reap() on the same CPU
Date: Tue, 10 Apr 2018 12:53:05 -0700 [thread overview]
Message-ID: <20180410195247.GQ3126663@devbig577.frc2.facebook.com> (raw)
In-Reply-To: <983c61d1-1444-db1f-65c1-3b519ac4d57b@suse.cz>
Hello,
On Tue, Apr 10, 2018 at 09:40:19PM +0200, Vlastimil Babka wrote:
> On 04/10/2018 04:12 PM, Christopher Lameter wrote:
> > On Tue, 10 Apr 2018, Vlastimil Babka wrote:
> >
> >> cache_reap() is initially scheduled in start_cpu_timer() via
> >> schedule_delayed_work_on(). But then the next iterations are scheduled via
> >> schedule_delayed_work(), thus using WORK_CPU_UNBOUND.
> >
> > That is a bug.. cache_reap must run on the same cpu since it deals with
> > the per cpu queues of the current cpu. Scheduled_delayed_work() used to
> > guarantee running on teh same cpu.
>
> Did it? When did it stop? (which stable kernels should we backport to?)
It goes back to v4.5 - ef557180447f ("workqueue: schedule
WORK_CPU_UNBOUND work on wq_unbound_cpumask CPUs") which made
WQ_CPU_UNBOUND on percpu workqueues honor wq_unbound_cpusmask so that
cpu isolation works better. Unless the force_rr option or
unbound_cpumask is set, it still follows local cpu.
> So is my assumption correct that without specifying a CPU, the next work
> might be processed on a different cpu than the current one, *and also*
> be executed with a kthread/u* that can migrate to another cpu *in the
> middle of the work*? Tejun?
For percpu work items, they'll keep executing on the same cpu it
started on unless the cpu goes down while executing.
> > schedule_delayed_work_on(smp_processor_id(), work, round_jiffies_relative(REAPTIMEOUT_AC));
> >
> > instead all of the other changes?
>
> If we can rely on that 100%, sure.
Yeah, you can.
Thanks.
--
tejun
next prev parent reply other threads:[~2018-04-10 19:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-10 8:15 [RFC] mm, slab: reschedule cache_reap() on the same CPU Vlastimil Babka
2018-04-10 14:12 ` Christopher Lameter
2018-04-10 14:17 ` Tejun Heo
2018-04-10 19:40 ` Vlastimil Babka
2018-04-10 19:53 ` Tejun Heo [this message]
2018-04-10 20:13 ` Vlastimil Babka
2018-04-10 20:23 ` Tejun Heo
2018-04-11 7:00 ` [PATCH] " Vlastimil Babka
2018-04-11 10:53 ` Pekka Enberg
2018-04-11 13:41 ` Christopher Lameter
2018-04-12 0:47 ` Minchan Kim
2018-04-13 8:44 ` Vlastimil Babka
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=20180410195247.GQ3126663@devbig577.frc2.facebook.com \
--to=tj@kernel.org \
--cc=cl@linux.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=jiangshanlai@gmail.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=sboyd@kernel.org \
--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 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.