Messages in this thread | | | Date | Wed, 3 Mar 2010 18:01:10 +0100 | From | Fabio Checconi <> | Subject | Re: [PATCH 0/3] sched: use EDF to throttle RT task groups v2 |
| |
> From: Peter Zijlstra <peterz@infradead.org> > Date: Sat, Feb 27, 2010 01:33:11PM +0100 > > On Tue, 2010-02-23 at 19:56 +0100, Fabio Checconi wrote: > > - Since it is not easy to mix tasks and groups on the same scheduler > > queue (tasks have no deadlines), the bandwidth reserved to the tasks > > in a group is controlled with two additional cgroup attributes: > > rt_task_runtime_us and rt_task_period_us. These attributes control, > > within a cgroup, how much bandwidth is reserved to the tasks it > > contains. The old attributes, rt_runtime_us and rt_period_us, are > > still there, and control the bandwidth assigned to the cgroup. They > > are used only for admission control. > > We could do this implicitly by simply setting the task_bandwidth to the > cgroup bandwidth - \Sum_children bandwidth. > > Having it explicit gives the administrator slightly more control at the > cost of a more complex interface. > > Just wondering if you thought about this trade-off?
I started with it, because I didn't like changing the interface and because four files to manage the bandwidth *are* a nightmare from the user perspective... The problem with using only two files and assign the residual bandwidth to the tasks in the group is that it makes really hard to find out how much bw is allocated to the tasks, esp. when the child groups have different periods. In practice we would be guaranteeing something but the user would have a hard time finding out what...
The biggest problem with the four files used in the current implementation is that bandwidth assignments should be atomic (because setting all the parameters independently can force the system to go through non-feasible assignments, and the order to use when assigning runtime and period changes depending on the direction of the change). I know this is a dangerous question, but I'll try it anyway: are we ready for multi-valued cgroup parameters?
| |