mbox series

[0/7] Adjust hybrid polling sleep time

Message ID cover.1556609582.git.asml.silence@gmail.com (mailing list archive)
Headers show
Series Adjust hybrid polling sleep time | expand

Message

Pavel Begunkov April 30, 2019, 7:34 a.m. UTC
From: Pavel Begunkov <asml.silence@gmail.com>

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(-)

Comments

Pavel Begunkov May 24, 2019, 9:06 a.m. UTC | #1
Any suggestions?

You might also want to consider (and hopefully apply) the first 3
separately as they are bug fixes. (e.g. hybrid polling turned out to be
disabled).
Would it be better for me to split the patchset?


On 4/30/2019 10:34 AM, Pavel Begunkov (Silence) wrote:
> From: Pavel Begunkov <asml.silence@gmail.com>
> 
> 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(-)
>