• Tejun Heo's avatar
    cfq-iosched: implement cfq_group->nr_active and ->children_weight · 7918ffb5
    Tejun Heo authored
    To prepare for blkcg hierarchy support, add cfqg->nr_active and
    ->children_weight.  cfqg->nr_active counts the number of active cfqgs
    at the cfqg's level and ->children_weight is sum of weights of those
    cfqgs.  The level covers itself (cfqg->leaf_weight) and immediate
    children.
    
    The two values are updated when a cfqg enters and leaves the group
    service tree.  Unless the hierarchy is very deep, the added overhead
    should be negligible.
    
    Currently, the parent is determined using cfqg_flat_parent() which
    makes the root cfqg the parent of all other cfqgs.  This is to make
    the transition to hierarchy-aware scheduling gradual.  Scheduling
    logic will be converted to use cfqg->children_weight without actually
    changing the behavior.  When everything is ready,
    blkcg_weight_parent() will be replaced with proper parent function.
    
    This patch doesn't introduce any behavior chagne.
    
    v2: s/cfqg->level_weight/cfqg->children_weight/ as per Vivek.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
    7918ffb5
cfq-iosched.c 113 KB