Re: [PATCH RFC] ioctl based CAT interface

Luiz Capitulino
2015-11-16T16:18:47Z

On Mon, 16 Nov 2015 10:07:56 +0100
Peter Zijlstra <peterz@infradead.org> wrote:

> I'm still not seeing what the problem with CAT-cgroup is.
>
> /cgroups/cpuset/
> socket-1/cpus = $socket-1
> tasks = $thread-A
>
> socket-2/cpus = $socket-2
> tasks = $thread-B
>
> /cgroups/cat/
> group-A/bitmap = 0x3F / 0xFF
> group-A/tasks = $thread-A
>
> group-B/bitmap = 0xFF / 0xFF
> group-B/tasks = $thread-B
>
>
> That gets you thread-A on socket-1 with 6/8 of the L3 and thread-B on
> socket-2 with 8/8 of the L3.

Peter, I'm giving a serious try on the cgroups patches and would be
glad to be enlightened if I'm missing something. But I don't see how
what you're proposing would solve the problem.

My understanding of CAT is that if I want to reserve 80% of the cache
in socket-1 to $thread-A I also have to:

1. Create another mask reserving 20% of the cache in socket-1
2. Assign that mask to all other threads that may run in socket-1

If I'm right about this, then when a task with 20% reservation migrates
to socket-2 it will only access 20% of the cache there even though there
should be no restrictions in socket-2's cache.

If the solution you're proposing means that I should assign all other
tasks to $thread-B, then what you're actually doing is pinning all
tasks but $thread-A to socket-2. You can do this today without CAT.