• Tejun Heo's avatar
    blkcg: use CGROUP_WEIGHT_* scale for io.weight on the unified hierarchy · 69d7fde5
    Tejun Heo authored
    cgroup is trying to make interface consistent across different
    controllers.  For weight based resource control, the knob should have
    the range [1, 10000] and default to 100.  This patch updates
    cfq-iosched so that the weight range conforms.  The internal
    calculations have enough range and the widening of the weight range
    shouldn't cause any problem.
    
    * blkcg_policy->cpd_bind_fn() is added.  If present, this is invoked
      when blkcg is attached to a hierarchy.
    
    * cfq_cpd_init() is updated to use the new default value on the
      unified hierarchy.
    
    * cfq_cpd_bind() callback is implemented to clear per-blkg configs and
      apply the default config matching the hierarchy type.
    
    * cfqd->root_group->[leaf_]weight initialization in cfq_init_queue()
      is moved into !CONFIG_CFQ_GROUP_IOSCHED block.  cfq_cpd_bind() is
      now responsible for initializing the initial weights when blkcg is
      enabled.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Arianna Avanzini <avanzini.arianna@gmail.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    69d7fde5
cfq-iosched.c 123 KB