Skip to content
  • Tejun Heo's avatar
    69d7fde5
    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
    blkcg: use CGROUP_WEIGHT_* scale for io.weight on the unified hierarchy
    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>
Loading