From: Pavel Begunkov <asml.silence@xxxxxxxxx> Sleep time for adaptive hybrid polling is coarse and can be improved to decrease CPU load. Use variation of the 3-sigma rule and runtime tuning. This approach gives up to 2x CPU load reduction keeping the same latency distribution and throughput. Pavel Begunkov (7): blk-iolatency: Fix zero mean in previous stats blk-stats: Introduce explicit stat staging buffers blk-mq: Fix disabled hybrid polling blk-stats: Add left mean deviation to blk_stats blk-mq: Precalculate hybrid polling time blk-mq: Track num of overslept by hybrid poll rqs blk-mq: Adjust hybrid poll sleep time block/blk-core.c | 7 +- block/blk-iolatency.c | 60 ++++++++++---- block/blk-mq-debugfs.c | 14 ++-- block/blk-mq.c | 163 ++++++++++++++++++++++++++++---------- block/blk-stat.c | 67 +++++++++++++--- block/blk-stat.h | 15 +++- include/linux/blk_types.h | 9 +++ include/linux/blkdev.h | 17 +++- 8 files changed, 271 insertions(+), 81 deletions(-) -- 2.21.0