25 Jul, 2013

1 commit


09 Apr, 2013

1 commit


10 Jan, 2013

1 commit

  • With the previous two patches, all cfqg scheduling decisions are based
    on vfraction and ready for hierarchy support. The only thing which
    keeps the behavior flat is cfqg_flat_parent() which makes vfraction
    calculation consider all non-root cfqgs children of the root cfqg.

    Replace it with cfqg_parent() which returns the real parent. This
    enables full blkcg hierarchy support for cfq-iosched. For example,
    consider the following hierarchy.

    root
    / \
    A:500 B:250
    / \
    AA:500 AB:1000

    For simplicity, let's say all the leaf nodes have active tasks and are
    on service tree. For each leaf node, vfraction would be

    AA: (500 / 1500) * (500 / 750) =~ 0.2222
    AB: (1000 / 1500) * (500 / 750) =~ 0.4444
    B: (250 / 750) =~ 0.3333

    and vdisktime will be distributed accordingly. For more detail,
    please refer to Documentation/block/cfq-iosched.txt.

    v2: cfq-iosched.txt updated to describe group scheduling as suggested
    by Vivek.

    v3: blkio-controller.txt updated.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     

09 Aug, 2012

1 commit


05 Aug, 2011

1 commit

  • There are always questions about why CFQ is idling on various conditions.
    Recent ones is Christoph asking again why to idle on REQ_NOIDLE. His
    assertion is that XFS is relying more and more on workqueues and is
    concerned that CFQ idling on IO from every workqueue will impact
    XFS badly.

    So he suggested that I add some more documentation about CFQ idling
    and that can provide more clarity on the topic and also gives an
    opprotunity to poke a hole in theory and lead to improvements.

    So here is my attempt at that. Any comments are welcome.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Jens Axboe

    Vivek Goyal
     

23 Aug, 2010

1 commit