[Devel] [PATCH RH7 0/9] block: backport writeback throttling

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Sat Sep 21 11:32:18 MSK 2019


We have a problem that if we run heavy write load on one cpu
simultaneousely with short direct reads on other cpu, the latter will
hang significantly. Writeback throttling looks like a sollution for
these reads, as it will decrease the priority of long running writeback.

Running simple dd experiment we see that reads latency decreased after
wbt patches applied:
https://docs.google.com/spreadsheets/d/1HLtepwFL_N5zm0JcTqMtJoYnf-b6Slwld8DDgL0gNDI

We've ran vconsolidate on custom kernel with these patches, though it
does not show any performance improvement (likely because this test does
not produce high rate of writeback), it does not crash or fail the test.

https://jira.sw.ru/browse/PSBM-96243

Jens Axboe (6):
  block: add REQ_BACKGROUND
  writeback: add wbc_to_write_flags()
  writeback: mark background writeback as such
  writeback: track if we're sleeping on progress in
    balance_dirty_pages()
  blk-wbt: add general throttling mechanism
  block: hook up writeback throttling

Omar Sandoval (1):
  block: get rid of struct blk_issue_stat

Pavel Tikhomirov (2):
  x86/asm: remove the unused get_limit() method
  block: enable CONFIG_BLK_WBT*

 Documentation/block/queue-sysfs.txt         |   7 +
 arch/x86/include/asm/segment.h              |   7 -
 block/Kconfig                               |  26 +
 block/Makefile                              |   1 +
 block/blk-core.c                            |  22 +-
 block/blk-mq.c                              |  22 +-
 block/blk-settings.c                        |   4 +
 block/blk-stat.c                            |   7 +-
 block/blk-stat.h                            |  24 -
 block/blk-sysfs.c                           |  66 ++
 block/blk-wbt.c                             | 722 ++++++++++++++++++++
 block/blk-wbt.h                             | 156 +++++
 block/cfq-iosched.c                         |  11 +
 block/kyber-iosched.c                       |   6 +-
 configs/kernel-3.10.0-x86_64-debug.config   |   3 +
 configs/kernel-3.10.0-x86_64-minimal.config |   3 +
 configs/kernel-3.10.0-x86_64.config         |   3 +
 fs/buffer.c                                 |   3 +-
 fs/f2fs/data.c                              |   2 +-
 fs/f2fs/node.c                              |   2 +-
 fs/gfs2/meta_io.c                           |   3 +-
 fs/xfs/xfs_aops.c                           |   6 +-
 include/linux/backing-dev.h                 |   3 +
 include/linux/blk-mq.h                      |   1 -
 include/linux/blk_types.h                   |   6 +-
 include/linux/blkdev.h                      |  22 +-
 include/linux/writeback.h                   |  11 +
 include/trace/events/wbt.h                  | 153 +++++
 mm/backing-dev.c                            |   3 +-
 mm/page-writeback.c                         |   2 +
 mm/page_io.c                                |   3 +-
 31 files changed, 1238 insertions(+), 72 deletions(-)
 create mode 100644 block/blk-wbt.c
 create mode 100644 block/blk-wbt.h
 create mode 100644 include/trace/events/wbt.h

-- 
2.21.0



More information about the Devel mailing list