On Fri, Dec 14, 2012 at 02:41:20PM -0800, Tejun Heo wrote: > Currently, cfqg charges are scaled directly according to cfqg->weight. > Regardless of the number of active cfqgs or the amount of active > weights, a given weight value always scales charge the same way. This > works fine as long as all cfqgs are treated equally regardless of > their positions in the hierarchy, which is what cfq currently > implements. It can't work in hierarchical settings because the > interpretation of a given weight value depends on where the weight is > located in the hierarchy. I did not understand this. Why the current scheme will not work with hierarchy? While we calculate the vdisktime, this is calculated with the help of CFQ_DEFAULT_WEIGHT and cfqg->weight. So we scale used time slice in proportion to CFQ_DEFAULT_WEIGTH/cfqg->weight. So higher the weight lesser the charge and cfqg gets scheduled again faster and lower the weight, higher the vdisktime and cfqg gets scheduled less frequently. As every cfqg does the same thing on service tree, they automatically get fair share w.r.t their weight. And this mechanism should not be impacted by the hierarchy because we have a separate service tree at separate level. This will not work only if you come up with one compressed tree and then weights will have to be adjusted. If we have a separate service tree in each group then it should work just fine. Thanks Vivek _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers