Re: scheduler scalability - cgroups, cpusets and load-balancing

Peter Zijlstra
2008-01-29T12:45:07Z

On Tue, 2008-01-29 at 06:03 -0600, Paul Jackson wrote:
> Paul, responding to Peter:
> > > We now have a per-cpuset Boolean flag file called 'sched_load_balance'.
> >
> > SD_LOAD_BALANCE, right?
>
> No. SD_LOAD_BALANCE is some attribute of sched domains.
>
> The 'sched_load_balance' flag is an attribute of cpusets.
>
> The mapping of cpusets to sched domains required several pages of 'fun
> to write' code, which had to go through a couple of years of fixing and
> one major rewrite before it (knock on wood) worked correctly. It's not
> a one-to-one relation, in other words. See my earlier messages for
> further explanation of how this works.

Ok, I'll take a stab at understanding that code. Perhaps it seems to me
a lot of confusion could be solved by getting a more level playing
ground :-)

> > > This 'sched_load_balance' flag is, thus far, "the" cpuset hook
> > > supporting realtime. One can use it to configure a system so that
> > > the kernel does not do normal load balancing on select CPUs, such
> > > as those CPUs dedicated to realtime use.
> >
> > Ah, here I disagree, it is possible to do (hard) realtime scheduling
> > over multiple cpus, the only draw back is that it requires a very strong
> > load-balancer, making it unsuitable for large number of cpus.
>
> I don't think we are disagreeing. I was speaking of "normal"
> load balancing (what the mainline kernel/sched.c code normally
> does). You're speaking of hard realtime load balancing.
>
> I think we agree that these both exist, and require different
> load balancing code, the latter 'very strong.'

Great :-)