Re: [RFC/PATCH] cpuset: cpuset irq affinities

Peter Zijlstra
2008-03-03T17:58:47Z

On Mon, 2008-03-03 at 11:36 -0600, Paul Jackson wrote:
> Peter wrote:
> > The system group can overlap with anything that does need system services.
>
> I suppose IRQs need to overlap like this, but cpusets often can't
> overlap like this.

Due to CS_CPU_EXCLUSIVE usage?

I had hoped system would be allowed to overlap.

> If a system has the cgroup hierarchy you draw:
>
> /cgroup
> /cgroup/system
> /cgroup/system/boot
>
> /cgroup/big_honking_app
> /cgroup/rt_domain
>
> this must not force the cpuset hierarchy to be:
>
> /dev/cpuset
> /dev/cpuset/system
> /dev/cpuset/system/boot
>
> /dev/cpuset/big_honking_app
> /dev/cpuset/rt_domain
>
> I guess this means IRQs cannot be added to the cpuset subsystem
> of cgroups. Rather they have to be added to some other cgroup
> subsystem, perhaps a new one just for IRQs.

The trouble is, cgroups are primarily about tasks, whereas IRQs are not.
So we would create a cgroup that does not manage tasks, but rather
associates irqs with sets of cpus - which are not cpusets.

See how that would be awkward?

> In perhaps the most common sort of cpuset hierarchy:
>
> /dev/cpuset
> /dev/cpuset/boot
> /dev/cpuset/batch_sched
> /dev/cpuset/big_honking_app
> /dev/cpuset/rt_domain
>
> none of boot or its siblings overlap.

But as long as nobody does CS_CPU_EXCLUSIVE they may overlap, right?