Hello, On Mon, Dec 17, 2012 at 04:27:36PM -0500, Vivek Goyal wrote: > What I do care about is atleast being able to read and understand the > code easily. Right now, it is hard to understand. I am still struggling > to wrap my head around it.
Hmm... I thought it was really simple. Maybe I'm just too familiar with it. You just walk up the tree multiplying the fraction you have at each level. It really doesn't get much simpler than that. > For example, while adding a group to service tree we calculate > cfqg->vfaction as follows. > > vfr = vfr * pos->leaf_weight / pos->level_weight; > > and then > > vfr = vfr * pos->weight / parent->level_weight; > > cfqg->vfraction = max_t(unsigned, vfr, 1) > > If cfqg->vfraction is about cfqg then why should we take into account > leaf_weight and level_weight. We should be just worried about pos->weight > and parent->level_weight and that should determine vfaction of cfqg. Eh? Then how would it compete with the children cfqgs? You can consider it as the hidden leaf node competing with the children cfqgs, right? So, you take the leaf weight and divide it by the total active weight of all the children (including the hidden leaf node). It isn't different from the rest of the calculation. It just looks different because leaf_weight is stored elsewhere and we look down there and then walke up. The calculation being done is exactly the same one. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/