• T
    cfq-iosched: convert cfq_group_slice() to use cfqg->vfraction · 41cad6ab
    Tejun Heo 提交于
    cfq_group_slice() calculates slice by taking a fraction of
    cfq_target_latency according to the ratio of cfqg->weight against
    service_tree->total_weight.  This currently works only because all
    cfqgs are treated to be at the same level.
    
    To prepare for proper hierarchy support, convert cfq_group_slice() to
    base the calculation on cfqg->vfraction.  As cfqg->vfraction is always
    a fraction of 1 and represents the fraction allocated to the cfqg with
    hierarchy considered, the slice can be simply calculated by
    multiplying cfqg->vfraction to cfq_target_latency (with fixed point
    shift factored in).
    
    As vfraction calculation currently treats all non-root cfqgs as
    children of the root cfqg, this patch doesn't introduce noticeable
    behavior difference.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Acked-by: NVivek Goyal <vgoyal@redhat.com>
    41cad6ab
cfq-iosched.c 114.6 KB