From: Yong Zhang <yong.zhang0@gmail.com>
To: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
LKML <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@redhat.com>
Subject: Re: RFC [patch] sched,cgroup_sched: convince RT_GROUP_SCHED throttle to work
Date: Wed, 18 Apr 2012 13:20:57 +0800 [thread overview]
Message-ID: <20120418052057.GA19328@zhy> (raw)
In-Reply-To: <1334465495.7802.6.camel@marge.simpson.net>
On Sun, Apr 15, 2012 at 06:51:35AM +0200, Mike Galbraith wrote:
> Like so seems to work. I personally like 2 lines better, but whatever
> solves dinky but deadly problem works for me.
>
> ---
> kernel/sched/core.c | 7 ++++++-
> kernel/sched/rt.c | 9 +++++++++
> kernel/sched/sched.h | 3 +++
> 3 files changed, 18 insertions(+), 1 deletion(-)
>
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -5875,6 +5875,11 @@ cpu_attach_domain(struct sched_domain *s
> sd->child = NULL;
> }
>
> + if (sd)
> + cpumask_clear_cpu(cpu, cpu_isolated_map);
> + else
> + cpumask_set_cpu(cpu, cpu_isolated_map);
> +
Do we allow this?
Seems sched_domain_debug() will bite !sd.
Thanks,
Yong
> sched_domain_debug(sd, cpu);
>
> rq_attach_root(rq, rd);
> @@ -5886,7 +5891,7 @@ cpu_attach_domain(struct sched_domain *s
> }
>
> /* cpus with isolated domains */
> -static cpumask_var_t cpu_isolated_map;
> +cpumask_var_t cpu_isolated_map;
>
> /* Setup the mask of cpus configured for isolated domains */
> static int __init isolated_cpu_setup(char *str)
> --- a/kernel/sched/rt.c
> +++ b/kernel/sched/rt.c
> @@ -922,6 +922,9 @@ static void update_curr_rt(struct rq *rq
> if (!rt_bandwidth_enabled())
> return;
>
> + if (cpumask_test_cpu(cpu_of(rq), cpu_isolated_map))
> + return;
> +
> for_each_sched_rt_entity(rt_se) {
> rt_rq = rt_rq_of_se(rt_se);
>
> @@ -1014,6 +1017,9 @@ static inline void dec_rt_prio(struct rt
> static void
> inc_rt_group(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
> {
> + if (cpumask_test_cpu(rq_of_rt_rq(rt_rq)->cpu, cpu_isolated_map))
> + return;
> +
> if (rt_se_boosted(rt_se))
> rt_rq->rt_nr_boosted++;
>
> @@ -1035,6 +1041,9 @@ dec_rt_group(struct sched_rt_entity *rt_
> static void
> inc_rt_group(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
> {
> + if (cpumask_test_cpu(rq_of_rt_rq(rt_rq)->cpu, cpu_isolated_map))
> + return;
> +
> start_rt_bandwidth(&def_rt_bandwidth);
> }
>
> --- a/kernel/sched/sched.h
> +++ b/kernel/sched/sched.h
> @@ -73,6 +73,9 @@ struct rt_bandwidth {
>
> extern struct mutex sched_domains_mutex;
>
> +/* cpus with isolated domains */
> +extern cpumask_var_t cpu_isolated_map;
> +
> #ifdef CONFIG_CGROUP_SCHED
>
> #include <linux/cgroup.h>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
Only stand for myself
next prev parent reply other threads:[~2012-04-18 5:30 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-03 9:08 [patch] sched,rt: non-isolated cores lift isolcpus throttle for CONFIG_RT_GROUP_SCHED Mike Galbraith
2012-04-03 9:19 ` [patch] sched,rt: let the user see rt queues in /proc/sched_debug Mike Galbraith
2012-04-07 8:58 ` [patch] sched,cgroup_sched: fix up task_groups list buglet Mike Galbraith
2012-04-07 9:54 ` RFC [patch] sched,cgroup_sched: convince RT_GROUP_SCHED throttle to work Mike Galbraith
2012-04-10 9:08 ` Mike Galbraith
2012-04-14 11:10 ` Peter Zijlstra
2012-04-15 3:37 ` Mike Galbraith
2012-04-15 3:44 ` Mike Galbraith
2012-04-15 4:51 ` Mike Galbraith
2012-04-18 5:20 ` Yong Zhang [this message]
2012-04-18 6:27 ` Mike Galbraith
2012-04-18 7:48 ` Yong Zhang
2012-04-18 8:38 ` Mike Galbraith
2012-04-19 6:34 ` Yong Zhang
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=20120418052057.GA19328@zhy \
--to=yong.zhang0@gmail.com \
--cc=a.p.zijlstra@chello.nl \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.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.