From: Zizhi Wo Date: Thu, 17 Apr 2025 13:20:53 +0000 (+0800) Subject: blk-throttle: Delete unnecessary carryover-related fields from throtl_grp X-Git-Tag: for-6.16/block-20250523~100 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=7b89d46051ab310096994303b969768c4a9eb18f;p=linux-block.git blk-throttle: Delete unnecessary carryover-related fields from throtl_grp We no longer need carryover_[bytes/ios] in tg, so it is removed. The related comments about carryover in tg are also merged into [bytes/io]_disp, and modify other related comments. Signed-off-by: Zizhi Wo Reviewed-by: Ming Lei Reviewed-by: Yu Kuai Link: https://lore.kernel.org/r/20250417132054.2866409-3-wozizhi@huaweicloud.com Signed-off-by: Jens Axboe --- diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 7437de947120..776f5a1b718b 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -658,9 +658,9 @@ static void __tg_update_carryover(struct throtl_grp *tg, bool rw, /* * If config is updated while bios are still throttled, calculate and - * accumulate how many bytes/ios are waited across changes. And - * carryover_bytes/ios will be used to calculate new wait time under new - * configuration. + * accumulate how many bytes/ios are waited across changes. And use the + * calculated carryover (@bytes/@ios) to update [bytes/io]_disp, which + * will be used to calculate new wait time under new configuration. */ if (bps_limit != U64_MAX) *bytes = calculate_bytes_allowed(bps_limit, jiffy_elapsed) - @@ -680,7 +680,7 @@ static void tg_update_carryover(struct throtl_grp *tg) __tg_update_carryover(tg, READ, &bytes[READ], &ios[READ]); __tg_update_carryover(tg, WRITE, &bytes[WRITE], &ios[WRITE]); - /* see comments in struct throtl_grp for meaning of these fields. */ + /* see comments in struct throtl_grp for meaning of carryover. */ throtl_log(&tg->service_queue, "%s: %lld %lld %d %d\n", __func__, bytes[READ], bytes[WRITE], ios[READ], ios[WRITE]); } diff --git a/block/blk-throttle.h b/block/blk-throttle.h index f9f8666891ab..2c1cfe091531 100644 --- a/block/blk-throttle.h +++ b/block/blk-throttle.h @@ -102,19 +102,16 @@ struct throtl_grp { /* IOPS limits */ unsigned int iops[2]; - /* Number of bytes dispatched in current slice */ - int64_t bytes_disp[2]; - /* Number of bio's dispatched in current slice */ - int io_disp[2]; - /* - * The following two fields are updated when new configuration is - * submitted while some bios are still throttled, they record how many - * bytes/ios are waited already in previous configuration, and they will - * be used to calculate wait time under new configuration. + * Number of bytes/bio's dispatched in current slice. + * When new configuration is submitted while some bios are still throttled, + * first calculate the carryover: the amount of bytes/IOs already waited + * under the previous configuration. Then, [bytes/io]_disp are represented + * as the negative of the carryover, and they will be used to calculate the + * wait time under the new configuration. */ - long long carryover_bytes[2]; - int carryover_ios[2]; + int64_t bytes_disp[2]; + int io_disp[2]; unsigned long last_check_time;