blk-wbt: add general throttling mechanism
authorJens Axboe <axboe@fb.com>
Wed, 9 Nov 2016 19:36:15 +0000 (12:36 -0700)
committerJens Axboe <axboe@fb.com>
Thu, 10 Nov 2016 20:53:32 +0000 (13:53 -0700)
commite34cbd307477ae07c5d8a8d0bd15e65a9ddaba5c
tree2cf40c43afdc01d953eae0098c4f8bb4d760c8d9
parentcf43e6be865a582ba66ee4747ae27a0513f6bba1
blk-wbt: add general throttling mechanism

We can hook this up to the block layer, to help throttle buffered
writes.

wbt registers a few trace points that can be used to track what is
happening in the system:

wbt_lat: 259:0: latency 2446318
wbt_stat: 259:0: rmean=2446318, rmin=2446318, rmax=2446318, rsamples=1,
               wmean=518866, wmin=15522, wmax=5330353, wsamples=57
wbt_step: 259:0: step down: step=1, window=72727272, background=8, normal=16, max=32

This shows a sync issue event (wbt_lat) that exceeded it's time. wbt_stat
dumps the current read/write stats for that window, and wbt_step shows a
step down event where we now scale back writes. Each trace includes the
device, 259:0 in this case.

Signed-off-by: Jens Axboe <axboe@fb.com>
block/Makefile
block/blk-wbt.c [new file with mode: 0644]
block/blk-wbt.h [new file with mode: 0644]
include/trace/events/wbt.h [new file with mode: 0644]