blkio: Implement group_isolation tunable
authorVivek Goyal <vgoyal@redhat.com>
Thu, 3 Dec 2009 17:59:55 +0000 (12:59 -0500)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 3 Dec 2009 18:28:53 +0000 (19:28 +0100)
commitae30c286553c91c49af5cbc0265a05a6543d0c52
tree1dcb055e156ca9190d0da5bccf32a3a166e12d52
parentf26bd1f0a3a31bc5e16d285f5e1b00a56abf6238
blkio: Implement group_isolation tunable

o If a group is running only a random reader, then it will not have enough
  traffic to keep disk busy and we will reduce overall throughput. This
  should result in better latencies for random reader though. If we don't
  idle on random reader service tree, then this random reader will experience
  large latencies if there are other groups present in system with sequential
  readers running in these.

o One solution suggested by corrado is that by default keep the random readers
  or sync-noidle workload in root group so that during one dispatch round
  we idle only once on sync-noidle tree. This means that all the sync-idle
  workload queues will be in their respective group and we will see service
  differentiation in those but not on sync-noidle workload.

o Provide a tunable group_isolation. If set, this will make sure that even
  sync-noidle queues go in their respective group and we wait on these. This
  provides stronger isolation between groups but at the expense of throughput
  if group does not have enough traffic to keep the disk busy.

o By default group_isolation = 0

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/cfq-iosched.c