From: Chris Ball <cjb@laptop.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: pjt@google.com, paul.mckenney@linaro.org, tglx@linutronix.de,
tj@kernel.org, suresh.b.siddha@intel.com, venki@google.com,
mingo@redhat.com, peterz@infradead.org, rostedt@goodmis.org,
linaro-kernel@lists.linaro.org, robin.randhawa@arm.com,
Steve.Bannister@arm.com, Liviu.Dudau@arm.com,
charles.garcia-tobin@arm.com, Arvind.Chauhan@arm.com,
linux-rt-users@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mmc@vger.kernel.org
Subject: Re: [PATCH V3 5/7] mmc: queue work on any cpu
Date: Fri, 22 Mar 2013 13:09:13 -0400 [thread overview]
Message-ID: <87sj3nl5ty.fsf@octavius.laptop.org> (raw)
In-Reply-To: <08070dbf56439c84b8c25837c2049ff8e8eafd6e.1363617402.git.viresh.kumar@linaro.org> (Viresh Kumar's message of "Mon, 18 Mar 2013 20:53:27 +0530")
Hi,
On Mon, Mar 18 2013, Viresh Kumar wrote:
> mmc uses workqueues for running mmc_rescan(). There is no real dependency of
> scheduling these on the cpu which scheduled them.
>
> On a idle system, it is observed that and idle cpu wakes up many times just to
> service this work. It would be better if we can schedule it on a cpu which isn't
> idle to save on power.
>
> By idle cpu (from scheduler's perspective) we mean:
> - Current task is idle task
> - nr_running == 0
> - wake_list is empty
>
> This patch replaces the queue_delayed_work() with
> queue_delayed_work_on_any_cpu() siblings.
>
> This routine would look for the closest (via scheduling domains) non-idle cpu
> (non-idle from schedulers perspective). If the current cpu is not idle or all
> cpus are idle, work will be scheduled on local cpu.
>
> Cc: Chris Ball <cjb@laptop.org>
> Cc: linux-mmc@vger.kernel.org
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
> drivers/mmc/core/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> index 9290bb5..adf331a 100644
> --- a/drivers/mmc/core/core.c
> +++ b/drivers/mmc/core/core.c
> @@ -85,7 +85,7 @@ MODULE_PARM_DESC(
> static int mmc_schedule_delayed_work(struct delayed_work *work,
> unsigned long delay)
> {
> - return queue_delayed_work(workqueue, work, delay);
> + return queue_delayed_work_on_any_cpu(workqueue, work, delay);
> }
>
> /*
Thanks, pushed to mmc-next for 3.10.
- Chris.
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
next prev parent reply other threads:[~2013-03-22 17:09 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-18 15:23 [PATCH V3 0/7] Create sched_select_cpu() and use it for workqueues Viresh Kumar
2013-03-18 15:23 ` [PATCH V3 1/7] sched: Create sched_select_cpu() to give preferred CPU for power saving Viresh Kumar
2013-03-18 15:39 ` Frederic Weisbecker
2013-03-18 15:44 ` Viresh Kumar
2013-03-18 15:57 ` Frederic Weisbecker
2013-03-19 5:15 ` Viresh Kumar
2013-03-19 5:15 ` Viresh Kumar
2013-03-19 12:30 ` Peter Zijlstra
2013-03-19 12:52 ` Viresh Kumar
2013-03-19 13:22 ` Viresh Kumar
2013-03-18 15:23 ` [PATCH V3 2/7] timer: hrtimer: Don't check idle_cpu() before calling get_nohz_timer_target() Viresh Kumar
2013-03-18 15:23 ` [PATCH V3 3/7] workqueue: Add helpers to schedule work on any cpu Viresh Kumar
2013-03-19 5:15 ` Viresh Kumar
2013-03-19 13:23 ` Viresh Kumar
2013-03-21 0:12 ` Tejun Heo
2013-03-21 10:57 ` Viresh Kumar
2013-03-21 18:29 ` Tejun Heo
2013-03-28 18:13 ` Tejun Heo
2013-03-29 2:39 ` Viresh Kumar
2013-03-29 7:27 ` Viresh Kumar
2013-03-29 17:40 ` Tejun Heo
2013-03-29 17:56 ` Tejun Heo
2013-03-30 3:30 ` Viresh Kumar
2013-03-18 15:23 ` [PATCH V3 4/7] PHYLIB: queue " Viresh Kumar
2013-03-18 17:33 ` David Miller
2013-03-18 15:23 ` [PATCH V3 5/7] mmc: " Viresh Kumar
2013-03-19 7:58 ` Ulf Hansson
2013-03-22 17:09 ` Chris Ball [this message]
2013-03-22 17:26 ` Chris Ball
2013-03-22 17:27 ` Viresh Kumar
2013-03-22 17:30 ` Chris Ball
2013-03-18 15:23 ` [PATCH V3 6/7] block: " Viresh Kumar
2013-03-22 15:05 ` Jens Axboe
2013-03-23 6:44 ` Viresh Kumar
2013-03-18 15:23 ` [PATCH V3 7/7] fbcon: " Viresh Kumar
2013-03-18 15:35 ` Viresh Kumar
2013-03-19 5:00 ` [PATCH V3 0/7] Create sched_select_cpu() and use it for workqueues 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=87sj3nl5ty.fsf@octavius.laptop.org \
--to=cjb@laptop.org \
--cc=Arvind.Chauhan@arm.com \
--cc=Liviu.Dudau@arm.com \
--cc=Steve.Bannister@arm.com \
--cc=charles.garcia-tobin@arm.com \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=paul.mckenney@linaro.org \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=robin.randhawa@arm.com \
--cc=rostedt@goodmis.org \
--cc=suresh.b.siddha@intel.com \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=venki@google.com \
--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 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.