summaryrefslogtreecommitdiff
path: root/block/bfq-iosched.h
diff options
context:
space:
mode:
authorFederico Gavioli <f.gavioli97@gmail.com>2023-01-03 15:55:01 +0100
committerJens Axboe <axboe@kernel.dk>2023-01-29 15:18:33 -0700
commit4fdb3b9f2a280eeea3407321705275fc9a77e3a6 (patch)
tree62b6e2c2e81aa9bea28502daab2b893a5bdd0c96 /block/bfq-iosched.h
parent8b7fd7411176b9e4478d46b00fd05e46ce18a28d (diff)
block, bfq: retrieve independent access ranges from request queue
This patch implements the code to gather the content of the independent_access_ranges structure from the request_queue and copy it into the queue's bfq_data. This copy is done at queue initialization. We copy the access ranges into the bfq_data to avoid taking the queue lock each time we access the ranges. This implementation, however, puts a limit to the maximum independent ranges supported by the scheduler. Such a limit is equal to the constant BFQ_MAX_ACTUATORS. This limit was placed to avoid the allocation of dynamic memory. Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Co-developed-by: Rory Chen <rory.c.chen@seagate.com> Signed-off-by: Rory Chen <rory.c.chen@seagate.com> Signed-off-by: Federico Gavioli <f.gavioli97@gmail.com> Signed-off-by: Paolo Valente <paolo.valente@linaro.org> Link: https://lore.kernel.org/r/20230103145503.71712-7-paolo.valente@linaro.org Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/bfq-iosched.h')
-rw-r--r--block/bfq-iosched.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/block/bfq-iosched.h b/block/bfq-iosched.h
index ea384d180b73..ba2ece8b6646 100644
--- a/block/bfq-iosched.h
+++ b/block/bfq-iosched.h
@@ -814,7 +814,13 @@ struct bfq_data {
* case of single-actuator drives.
*/
unsigned int num_actuators;
-
+ /*
+ * Disk independent access ranges for each actuator
+ * in this device.
+ */
+ sector_t sector[BFQ_MAX_ACTUATORS];
+ sector_t nr_sectors[BFQ_MAX_ACTUATORS];
+ struct blk_independent_access_range ia_ranges[BFQ_MAX_ACTUATORS];
};
enum bfqq_state_flags {