[patch 0/4] [RFC] Another proportional weight IO controller

Satoshi UCHIDA s-uchida at ap.jp.nec.com
Thu Nov 13 20:58:13 PST 2008


Hi, Vivek

> 
> I think doing proportional weight division at elevator level will be
> little difficult, because if we go for a full hierarchical solution then
> we will be doing proportional weight division among tasks as well as
> groups.
> 
> For example, consider this. Assume at root level there are three tasks
> A, B, C and two cgroups D and E. Now for proportional weight division we
> should consider A, B, C, D and E at same level and then try to divide
> the BW (Thanks to peterz for clarifying this).
> 
> Other approach could be that consider A, B, C in root cgroup and then
> consider root, D and E competing groups and try to divide the BW. But
> this is not how cpu controller operates and this approach I think was
> initially implemented for group scheduling in cpu controller and later
> changed.
> 
> How the proportional weight division is done among tasks is a property
> of IO scheduler. cfq decides to use time slices according to priority
> and bfq decides to use tokens. So probably we can't move this to common
> elevator layer.
> 
> I think Satoshi's cfq controller patches also do not seem to be considering
> A, B, C, D and E to be at same level, instead it treats cgroup "/" , D and
> E
> at same level and tries to do proportional BW division among these.
> Satoshi, please correct me, if that's not the case.
> 

Yes.
I think that a controller should be divided share among "/(root)" and two groups.
This reason is follows:

  * If these tasks are handled at same level, it is enough by using a traditional 
    CFQ scheduler.
    If you want to make all tasks in the same group the same priority(parameter),
    It is not I/O control but is parameter control.
    
  * I think that the group means the environment which makes some sense and 
    user want to control I/O per groups.
    Next, the group is the environment.  So, tasks within the group will have
    priorities for themselves respectively as traditional environment.
    Of course, group may not be need to control I/O.
    In such time, a ioprio of tasks should be set the same priority.

Therefore, our scheduler controls among group and then among tasks


Satoshi UCHIDA



More information about the Containers mailing list