Re: cgroup, RT reservation per core(s)?

From: Peter Zijlstra
Date: Tue Feb 10 2009 - 08:04:48 EST


On Mon, 2009-02-09 at 20:04 +0000, Rolando Martins wrote:

> I should have elaborated this more:
>
> root
> ----|----
> | |
> (0.5 mem) 0 1 (100% rt, 0.5 mem)
> ---------
> | | |
> 2 3 4 (33% rt for each group, 33% mem
> per group(0.165))
> Rol


Right, i think this can be done.

You would indeed need cpusets and sched-cgroups.

Split the machine in 2 using cpusets.

___R___
/ \
A B

Where R is the root cpuset, and A and B are the siblings.
Assign A one half the cpus, and B the other half.
Disable load-balancing on R.

Then using sched cgroups create the hierarchy

____1____
/ | \
2 3 4

Where 1 can be the root group if you like.

Assign 1 a utilization limit of 100%, and 2,3 and 4 a utilization limit
of 33% each.

Then place the tasks that get 100% cputime on your 2 cpus in cpuset A
and sched group 1.

Place your other tasks in B,{2-4} respectively.

The reason this works is that bandwidth distribution is sched domain
wide, and by disabling load-balancing on R, you split the schedule
domain.

I've never actually tried anything like this, let me know if it
works ;-)
--
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/