block, bfq: retrieve independent access ranges from request queue
authorFederico Gavioli <f.gavioli97@gmail.com>
Tue, 3 Jan 2023 14:55:01 +0000 (15:55 +0100)
committerJens Axboe <axboe@kernel.dk>
Sun, 29 Jan 2023 22:18:33 +0000 (15:18 -0700)
commit4fdb3b9f2a280eeea3407321705275fc9a77e3a6
tree62b6e2c2e81aa9bea28502daab2b893a5bdd0c96
parent8b7fd7411176b9e4478d46b00fd05e46ce18a28d
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>
block/bfq-iosched.c
block/bfq-iosched.h