blk-throttle: set default latency baseline for harddisk
authorShaohua Li <shli@fb.com>
Tue, 6 Jun 2017 19:40:43 +0000 (12:40 -0700)
committerJens Axboe <axboe@fb.com>
Wed, 7 Jun 2017 15:09:32 +0000 (09:09 -0600)
commit6679a90c4b0dc2563383df1fe0eb170736952a2e
treee700714df531b4c6aeaacdde3b59b1c8a28b6ff5
parenta41b816c174409417d91b4ceef0145c9f0bef67c
blk-throttle: set default latency baseline for harddisk

hard disk IO latency varies a lot depending on spindle move. The latency
range could be from several microseconds to several milliseconds. It's
pretty hard to get the baseline latency used by io.low.

We will use a different stragety here. The idea is only using IO with
spindle move to determine if cgroup IO is in good state. For HD, if io
latency is small (< 1ms), we ignore the IO. Such IO is likely from
sequential IO, and is helpless to help determine if a cgroup's IO is
impacted by other cgroups. With this, we only account IO with big
latency. Then we can choose a hardcoded baseline latency for HD (4ms,
which is typical IO latency with seek).  With all these settings, the
io.low latency works for both HD and SSD.

Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-throttle.c