mirror of https://github.com/torvalds/linux.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 <wozizhi@huawei.com> Reviewed-by: Ming Lei <ming.lei@redhat.com> Reviewed-by: Yu Kuai <yukuai3@huawei.com> Link: https://lore.kernel.org/r/20250417132054.2866409-3-wozizhi@huaweicloud.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
f66cf69eb8
commit
7b89d46051
|
|
@ -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
|
* If config is updated while bios are still throttled, calculate and
|
||||||
* accumulate how many bytes/ios are waited across changes. And
|
* accumulate how many bytes/ios are waited across changes. And use the
|
||||||
* carryover_bytes/ios will be used to calculate new wait time under new
|
* calculated carryover (@bytes/@ios) to update [bytes/io]_disp, which
|
||||||
* configuration.
|
* will be used to calculate new wait time under new configuration.
|
||||||
*/
|
*/
|
||||||
if (bps_limit != U64_MAX)
|
if (bps_limit != U64_MAX)
|
||||||
*bytes = calculate_bytes_allowed(bps_limit, jiffy_elapsed) -
|
*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, READ, &bytes[READ], &ios[READ]);
|
||||||
__tg_update_carryover(tg, WRITE, &bytes[WRITE], &ios[WRITE]);
|
__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__,
|
throtl_log(&tg->service_queue, "%s: %lld %lld %d %d\n", __func__,
|
||||||
bytes[READ], bytes[WRITE], ios[READ], ios[WRITE]);
|
bytes[READ], bytes[WRITE], ios[READ], ios[WRITE]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -102,19 +102,16 @@ struct throtl_grp {
|
||||||
/* IOPS limits */
|
/* IOPS limits */
|
||||||
unsigned int iops[2];
|
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
|
* Number of bytes/bio's dispatched in current slice.
|
||||||
* submitted while some bios are still throttled, they record how many
|
* When new configuration is submitted while some bios are still throttled,
|
||||||
* bytes/ios are waited already in previous configuration, and they will
|
* first calculate the carryover: the amount of bytes/IOs already waited
|
||||||
* be used to calculate wait time under new configuration.
|
* 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];
|
int64_t bytes_disp[2];
|
||||||
int carryover_ios[2];
|
int io_disp[2];
|
||||||
|
|
||||||
unsigned long last_check_time;
|
unsigned long last_check_time;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue