diff options
author | Federico Gavioli <f.gavioli97@gmail.com> | 2023-01-03 15:55:01 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-01-29 15:18:33 -0700 |
commit | 4fdb3b9f2a280eeea3407321705275fc9a77e3a6 (patch) | |
tree | 62b6e2c2e81aa9bea28502daab2b893a5bdd0c96 /block/bfq-iosched.h | |
parent | 8b7fd7411176b9e4478d46b00fd05e46ce18a28d (diff) | |
download | lwn-4fdb3b9f2a280eeea3407321705275fc9a77e3a6.tar.gz lwn-4fdb3b9f2a280eeea3407321705275fc9a77e3a6.zip |
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.h | 8 |
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 { |