blk-throttle: Delete unnecessary carryover-related fields from throtl_grp
authorZizhi Wo <wozizhi@huawei.com>
Thu, 17 Apr 2025 13:20:53 +0000 (21:20 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 6 May 2025 01:08:34 +0000 (19:08 -0600)
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>
block/blk-throttle.c
block/blk-throttle.h

index 7437de947120ed1f2e26d0362fd1b5a961f3ea3a..776f5a1b718be6a15387a8314cfcbb8306951119 100644 (file)
@@ -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]);
 }
index f9f8666891abc3e02ddbf28318ee826bc63bec5d..2c1cfe091531b89abf33cf3d4909f6421d473d02 100644 (file)
@@ -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;