• J
    cfq-iosched: rework the whole round-robin list concept · d9e7620e
    Jens Axboe 提交于
    Drawing on some inspiration from the CFS CPU scheduler design, overhaul
    the pending cfq_queue concept list management. Currently CFQ uses a
    doubly linked list per priority level for sorting and service uses.
    Kill those lists and maintain an rbtree of cfq_queue's, sorted by when
    to service them.
    
    This unfortunately means that the ionice levels aren't as strong
    anymore, will work on improving those later. We only scale the slice
    time now, not the number of times we service. This means that latency
    is better (for all priority levels), but that the distinction between
    the highest and lower levels aren't as big.
    
    The diffstat speaks for itself.
    
     cfq-iosched.c |  363 +++++++++++++++++---------------------------------
     1 file changed, 125 insertions(+), 238 deletions(-)
    Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
    d9e7620e
cfq-iosched.c 52.7 KB