Commit 7b89d460 authored by Zizhi Wo's avatar Zizhi Wo Committed by Jens Axboe
Browse files

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: default avatarZizhi Wo <wozizhi@huawei.com>
Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
Reviewed-by: default avatarYu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/20250417132054.2866409-3-wozizhi@huaweicloud.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent f66cf69e
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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]);
}
+8 −11
Original line number Diff line number Diff line
@@ -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;