Skip to content
  • Vivek Goyal's avatar
    cfq-iosched: Do group share accounting in IOPS when slice_idle=0 · 02b35081
    Vivek Goyal authored
    
    
    o Implement another CFQ mode where we charge group in terms of number
      of requests dispatched instead of measuring the time. Measuring in terms
      of time is not possible when we are driving deeper queue depths and there
      are requests from multiple cfq queues in the request queue.
    
    o This mode currently gets activated if one sets slice_idle=0 and associated
      disk supports NCQ. Again the idea is that on an NCQ disk with idling disabled
      most of the queues will dispatch 1 or more requests and then cfq queue
      expiry happens and we don't have a way to measure time. So start providing
      fairness in terms of IOPS.
    
    o Currently IOPS mode works only with cfq group scheduling. CFQ is following
      different scheduling algorithms for queue and group scheduling. These IOPS
      stats are used only for group scheduling hence in non-croup mode nothing
      should change.
    
    o For CFQ group scheduling one can disable slice idling so that we don't idle
      on queue and drive deeper request queue depths (achieving better throughput),
      at the same time group idle is enabled so one should get service
      differentiation among groups.
    
    Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Acked-by: default avatarJeff Moyer <jmoyer@redhat.com>
    Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
    02b35081