Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 16 Nov 2015 11:18:42 -0500 | From | Luiz Capitulino <> | Subject | Re: [PATCH RFC] ioctl based CAT interface |
| |
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.
| ![\](/images/icornerr.gif) |