Re: RFC [patch] sched,cgroup_sched: convince RT_GROUP_SCHEDthrottle to work

From: Mike Galbraith
Date: Wed Apr 18 2012 - 04:38:13 EST


On Wed, 2012-04-18 at 15:48 +0800, Yong Zhang wrote:
> On Wed, Apr 18, 2012 at 08:27:50AM +0200, Mike Galbraith wrote:
> > On Wed, 2012-04-18 at 13:20 +0800, Yong Zhang wrote:
> >
> > > > --- 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?
> >
> > Yeah, isolating CPUS 2-3...
>
> Hmm...magic cpuset ;-)

The _only_ cpuset if you have a low jitter requirement.

> > [ 3011.444345] CPU0 attaching NULL sched-domain.
> > [ 3011.448719] CPU1 attaching NULL sched-domain.
> > [ 3011.453107] CPU2 attaching NULL sched-domain.
> > [ 3011.457466] CPU3 attaching NULL sched-domain.
> > [ 3011.461892] CPU0 attaching sched-domain:
> > [ 3011.465813] domain 0: span 0-1 level MC
> > [ 3011.469761] groups: 0 1
> > [ 3011.472415] CPU1 attaching sched-domain:
> > [ 3011.476333] domain 0: span 0-1 level MC
> > [ 3011.480266] groups: 1 0
> > [ 3011.482988] CPU2 attaching sched-domain:
> > [ 3011.486919] domain 0: span 2-3 level MC
> > [ 3011.490851] groups: 2 3
> > [ 3011.493502] CPU3 attaching sched-domain:
> > [ 3011.497422] domain 0: span 2-3 level MC
> > [ 3011.501367] groups: 3 2
> > [ 3011.504214] CPU2 attaching NULL sched-domain.
> > [ 3011.508569] CPU3 attaching NULL sched-domain.
>
> But another scenario comes into head:
> What will happen when a rt_rq is throttled the very CPU is
> attached to NULL domain?

Yup, _somebody_ will hit the throttle only once :)

That's what gets fixed by either killing the throttle entirely for
isolated CPUs, or making the throttle work until the guy who needed
isolation turns noise maker off. I prefer reconnect the dots, because
that doesn't touch the fast path.

-Mike

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/