From: Tejun Heo <tj@kernel.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: rostedt@goodmis.org, Vincent Guittot <vincent.guittot@linaro.org>,
pjt@google.com, paul.mckenney@linaro.org, tglx@linutronix.de,
mingo@redhat.com, peterz@infradead.org, Arvind.Chauhan@arm.com,
linaro-dev@lists.linaro.org, patches@linaro.org,
pdsw-power-team@arm.com, linux-kernel@vger.kernel.org,
linux-rt-users@vger.kernel.org
Subject: Re: [PATCH V2 Resend 3/4] workqueue: Schedule work on non-idle cpu instead of current one
Date: Wed, 9 Jan 2013 10:49:50 -0800 [thread overview]
Message-ID: <20130109184950.GO3926@htj.dyndns.org> (raw)
In-Reply-To: <CAKohponQP7+fUJtTysDiaDNQA0fTCcErb97gpKCxXpshSOuYfg@mail.gmail.com>
Hello,
On Mon, Jan 07, 2013 at 11:37:22PM +0530, Viresh Kumar wrote:
> On 7 January 2013 20:34, Tejun Heo <tj@kernel.org> wrote:
> > The latter part "not using idle cpu just for processing work" does
> > apply to homogeneous systems too but as I wrote earlier work items
> > don't spontaneously happen on an idle core. Something, including
> > timer, needs to kick it. So, by definition, a CPU already isn't idle
> > when a work item starts execution on it. What am I missing here?
>
> We are talking about a core being idle from schedulers perspective :)
But it's not like cpu doesn't consume power if scheduler considers it
idle, right? Can you please explain in detail how this contributes to
saving power? Is it primarily about routing work items to lower power
CPUs? And please don't point to presentation slides. They don't seem
to explain much better and patches and the code should be able to
describe themselves. Here, more so, as the desired behavior change
and the resulting powersave are rather subtle.
> > Yeah, this could be a better solution, I think. Plus, it's not like
> > finding the optimal cpu is free.
>
> Thanks for the first part (When i shared this idea with Vincent and Amit, i
> wasn't sure at all about the feedback i will get from you and others, but i
> am very happy now :) ).
>
> I couldn't understand the second part. We still need to search for a free cpu
> for this new routine. And the implementation would almost be same as the
> implementation of queue_work() in my initial patch
I meant that enforcing lookup for the "optimal" cpu on queue_work() by
default would add overhead to the operation, which in cases (on most
homogeneous configs) would lead to overhead without any realized
benefit.
> > Let's start simple for now. If we really need it, we can always add
> > more later.
>
> :)
> Agreed. But i liked the idea from steven, we can have two routines:
> queue_work_on_any_cpu() and queue_work_on_cpus()
We can talk about specifics later but please try to *justify* each new
interface. Please note that "putting work items to cpus which the
scheduler considers idle" can't really be justification in itself.
Thanks.
--
tejun
next prev parent reply other threads:[~2013-01-09 18:49 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-06 10:34 [PATCH V2 Resend 0/4] Create sched_select_cpu() and use it for workqueues and timers Viresh Kumar
[not found] ` <cover.1352196505.git.viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-11-06 10:38 ` [PATCH V2 Resend 1/4] sched: Create sched_select_cpu() to give preferred CPU for power saving Viresh Kumar
2012-11-06 10:38 ` [PATCH V2 Resend 2/4] timer: hrtimer: Don't check idle_cpu() before calling get_nohz_timer_target() Viresh Kumar
2012-11-06 10:38 ` [PATCH V2 Resend 4/4] timer: Migrate running timer Viresh Kumar
2012-11-27 13:47 ` Steven Rostedt
2013-03-20 15:13 ` Viresh Kumar
2013-04-09 14:52 ` Viresh Kumar
2013-04-24 11:22 ` Viresh Kumar
2013-05-13 9:19 ` Viresh Kumar
2013-05-13 10:35 ` Thomas Gleixner
2013-05-22 8:34 ` Viresh Kumar
2013-05-22 9:06 ` Peter Zijlstra
2013-05-22 9:23 ` Viresh Kumar
2013-05-31 10:49 ` Viresh Kumar
2013-06-18 4:51 ` Viresh Kumar
2013-07-24 9:17 ` Viresh Kumar
2013-08-07 9:55 ` Viresh Kumar
2013-10-04 12:39 ` Sebastian Andrzej Siewior
2013-10-23 5:55 ` Viresh Kumar
2012-11-06 10:38 ` [PATCH V2 Resend 3/4] workqueue: Schedule work on non-idle cpu instead of current one Viresh Kumar
[not found] ` <ad25c731a6ca1bd1269555245952f05c856a9759.1352196505.git.viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-11-26 17:15 ` Tejun Heo
2012-11-27 5:19 ` Viresh Kumar
2012-11-27 12:54 ` Vincent Guittot
[not found] ` <CAKohpom9=K976NmyFWtXx2UQyRcLAqsoGw-5AaqXRpSL6uxP_g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-04 11:11 ` Viresh Kumar
2013-01-04 15:09 ` Tejun Heo
2013-01-07 9:58 ` Viresh Kumar
2013-01-07 13:28 ` Steven Rostedt
2013-01-07 17:59 ` Viresh Kumar
2013-01-07 22:29 ` Steven Rostedt
2013-01-08 4:03 ` Viresh Kumar
2013-01-07 15:04 ` Tejun Heo
2013-01-07 15:40 ` Amit Kucheria
2013-01-07 18:07 ` Viresh Kumar
2013-01-09 18:49 ` Tejun Heo [this message]
2013-01-10 5:04 ` Viresh Kumar
2012-11-27 13:26 ` Steven Rostedt
2012-11-27 13:48 ` Viresh Kumar
2012-11-27 13:59 ` Steven Rostedt
2012-11-27 14:55 ` Vincent Guittot
2012-11-27 15:04 ` Steven Rostedt
2012-11-27 15:35 ` Vincent Guittot
2012-11-26 15:00 ` [PATCH V2 Resend 0/4] Create sched_select_cpu() and use it for workqueues and timers Viresh Kumar
2012-11-26 16:40 ` Steven Rostedt
[not found] ` <1353948027.6276.38.camel-f9ZlEuEWxVcJvu8Pb33WZ0EMvNT87kid@public.gmane.org>
2012-11-26 17:03 ` Paul E. McKenney
2012-11-26 17:35 ` Steven Rostedt
[not found] ` <1353951352.6276.43.camel-f9ZlEuEWxVcJvu8Pb33WZ0EMvNT87kid@public.gmane.org>
2012-11-26 19:03 ` Paul E. McKenney
2012-11-26 19:17 ` Steven Rostedt
2012-11-27 6:25 ` Viresh Kumar
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=20130109184950.GO3926@htj.dyndns.org \
--to=tj@kernel.org \
--cc=Arvind.Chauhan@arm.com \
--cc=linaro-dev@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=patches@linaro.org \
--cc=paul.mckenney@linaro.org \
--cc=pdsw-power-team@arm.com \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
/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;
as well as URLs for NNTP newsgroup(s).