From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Chuansheng Liu <chuansheng.liu@intel.com>,
luto@amacapital.net, peterz@infradead.org, rjw@rjwysocki.net,
mingo@redhat.com
Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
changcheng.liu@intel.com, xiaoming.wang@intel.com,
souvik.k.chakravarty@intel.com
Subject: Re: [PATCH 1/3] sched: Add new API wake_up_if_idle() to wake up the idle cpu
Date: Thu, 21 Aug 2014 03:54:18 +0200 [thread overview]
Message-ID: <53F5514A.5050007@linaro.org> (raw)
In-Reply-To: <1408351052-25075-1-git-send-email-chuansheng.liu@intel.com>
On 08/18/2014 10:37 AM, Chuansheng Liu wrote:
> Implementing one new API wake_up_if_idle(), which is used to
> wake up the idle CPU.
Is this patchset tested ? Did you check it solves the issue you were
facing ?
> Suggested-by: Andy Lutomirski <luto@amacapital.net>
> Signed-off-by: Chuansheng Liu <chuansheng.liu@intel.com>
> ---
> include/linux/sched.h | 1 +
> kernel/sched/core.c | 16 ++++++++++++++++
> 2 files changed, 17 insertions(+)
>
> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index 857ba40..3f89ac1 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1024,6 +1024,7 @@ struct sched_domain_topology_level {
> extern struct sched_domain_topology_level *sched_domain_topology;
>
> extern void set_sched_topology(struct sched_domain_topology_level *tl);
> +extern void wake_up_if_idle(int cpu);
>
> #ifdef CONFIG_SCHED_DEBUG
> # define SD_INIT_NAME(type) .name = #type
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 1211575..adf104f 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -1620,6 +1620,22 @@ static void ttwu_queue_remote(struct task_struct *p, int cpu)
> }
> }
>
> +void wake_up_if_idle(int cpu)
> +{
> + struct rq *rq = cpu_rq(cpu);
> + unsigned long flags;
> +
> + if (set_nr_if_polling(rq->idle)) {
> + trace_sched_wake_idle_without_ipi(cpu);
> + } else {
> + raw_spin_lock_irqsave(&rq->lock, flags);
> + if (rq->curr == rq->idle)
> + smp_send_reschedule(cpu);
> + /* Else cpu is not in idle, do nothing here */
> + raw_spin_unlock_irqrestore(&rq->lock, flags);
> + }
> +}
> +
> bool cpus_share_cache(int this_cpu, int that_cpu)
> {
> return per_cpu(sd_llc_id, this_cpu) == per_cpu(sd_llc_id, that_cpu);
>
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
next prev parent reply other threads:[~2014-08-21 1:54 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-18 8:37 [PATCH 1/3] sched: Add new API wake_up_if_idle() to wake up the idle cpu Chuansheng Liu
2014-08-18 8:37 ` [PATCH 2/3] smp: Adding new function wake_up_all_cpus() Chuansheng Liu
2014-09-03 9:52 ` Peter Zijlstra
2014-08-18 8:37 ` [PATCH 3/3] cpuidle: Using the wake_up_all_cpus() to wake up all idle cpus Chuansheng Liu
2014-08-21 1:54 ` Daniel Lezcano [this message]
2014-08-21 2:12 ` [PATCH 1/3] sched: Add new API wake_up_if_idle() to wake up the idle cpu Liu, Chuansheng
2014-08-21 2:12 ` Liu, Chuansheng
2014-08-21 3:48 ` Daniel Lezcano
2014-08-21 21:21 ` Andy Lutomirski
2014-09-03 9:54 ` Peter Zijlstra
2014-09-03 9:58 ` Liu, Chuansheng
2014-09-03 9:51 ` Peter Zijlstra
-- strict thread matches above, loose matches on Subject: below --
2014-09-04 7:17 Chuansheng Liu
2014-09-04 12:53 ` Daniel Lezcano
2014-09-04 12:59 ` Liu, Chuansheng
2014-09-04 12:59 ` Liu, Chuansheng
2014-08-15 7:01 Chuansheng Liu
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=53F5514A.5050007@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=changcheng.liu@intel.com \
--cc=chuansheng.liu@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=souvik.k.chakravarty@intel.com \
--cc=xiaoming.wang@intel.com \
/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.