From: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx> Over-limit bw value is observed during fio test in the throttling group which caused by over-sized bio as there is no control on ra->size during readahead. This series patches would like to introduce the helper function to provide the bytes limit and apply it on readahead. Please find below for the fio test result on v6.6 which presents 2%-10% improvement for BW and lat. Besides, we can also observed stable BW instantaneous value during the test. blkio.throttle.read_bps_device = 1MB/s before: read: IOPS=223, BW=894KiB/s (915kB/s)(175MiB/200919msec) after : read: IOPS=239, BW=960KiB/s (983kB/s)(153MiB/163105msec) before: clat (usec): min=4, max=16795k, avg=4468.74, stdev=265746.14 lat (usec): min=6, max=16795k, avg=4470.57, stdev=265746.14 after : clat (usec): min=11, max=209193, avg=4105.22, stdev=27188.04 lat (usec): min=16, max=209197, avg=4120.03, stdev=27188.04 blkio.throttle.read_bps_device = 10MB/s before: read: IOPS=2380, BW=9524KiB/s (9752kB/s)(1007MiB/108311msec) after : read: IOPS=2438, BW=9754KiB/s (9989kB/s)(1680MiB/176405msec) before: clat (usec): min=4, max=201817, avg=399.58, stdev=8268.85 lat (usec): min=6, max=201819, avg=402.10, stdev=8268.85 after : clat (usec): min=4, max=2494.6k, avg=412.72, stdev=25783.51 lat (usec): min=6, max=2494.6k, avg=414.48, stdev=25783.51 Zhaoyang Huang (2): block: introduce helper function to calculate bps budgt mm: introduce budgt control in readahead block/blk-throttle.c | 44 ++++++++++++++++++++++++++++++++++++++ include/linux/blk-cgroup.h | 10 +++++++++ mm/readahead.c | 33 ++++++++++++++++++++-------- 3 files changed, 78 insertions(+), 9 deletions(-) -- 2.25.1