summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2009-04-15 12:15:11 +0200
committerJens Axboe <jens.axboe@oracle.com>2009-04-15 12:15:11 +0200
commita36e71f996e25d6213f57951f7ae1874086ec57e (patch)
tree1673eeb55b4d84a3d38dda9009ad7ac6f31c5a89 /Documentation
parentcfq-iosched: log responsible 'cfqq' in idle timer arm (diff)
downloadlinux-a36e71f996e25d6213f57951f7ae1874086ec57e.tar.xz
linux-a36e71f996e25d6213f57951f7ae1874086ec57e.zip
cfq-iosched: add close cooperator code
If we have processes that are working in close proximity to each other on disk, we don't want to idle wait. Instead allow the close process to issue a request, getting better aggregate bandwidth. The anticipatory scheduler has similar checks, noop and deadline do not need it since they don't care about process <-> io mappings. The code for CFQ is a little more involved though, since we split request queues into per-process contexts. This fixes a performance problem with eg dump(8), since it uses several processes in some silly attempt to speed IO up. Even if dump(8) isn't really a valid case (it should be fixed by using CLONE_IO), there are other cases where we see close processes and where idling ends up hurting performance. Credit goes to Jeff Moyer <jmoyer@redhat.com> for writing the initial implementation. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions