mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
block: Introduce IOPRIO_NR_LEVELS
The BFQ scheduler and ioprio_check_cap() both assume that the RT priority class (IOPRIO_CLASS_RT) can have up to 8 different priority levels, similarly to the BE class (IOPRIO_CLASS_iBE). This is controlled using the IOPRIO_BE_NR macro , which is badly named as the number of levels also applies to the RT class. Introduce the class independent IOPRIO_NR_LEVELS macro, defined to 8, to make things clear. Keep the old IOPRIO_BE_NR macro definition as an alias for IOPRIO_NR_LEVELS. Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> Link: https://lore.kernel.org/r/20210811033702.368488-6-damien.lemoal@wdc.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
ba05200fcc
commit
202bc942c5
@@ -505,7 +505,7 @@ static void bfq_active_insert(struct bfq_service_tree *st,
|
||||
*/
|
||||
unsigned short bfq_ioprio_to_weight(int ioprio)
|
||||
{
|
||||
return (IOPRIO_BE_NR - ioprio) * BFQ_WEIGHT_CONVERSION_COEFF;
|
||||
return (IOPRIO_NR_LEVELS - ioprio) * BFQ_WEIGHT_CONVERSION_COEFF;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -514,12 +514,12 @@ unsigned short bfq_ioprio_to_weight(int ioprio)
|
||||
*
|
||||
* To preserve as much as possible the old only-ioprio user interface,
|
||||
* 0 is used as an escape ioprio value for weights (numerically) equal or
|
||||
* larger than IOPRIO_BE_NR * BFQ_WEIGHT_CONVERSION_COEFF.
|
||||
* larger than IOPRIO_NR_LEVELS * BFQ_WEIGHT_CONVERSION_COEFF.
|
||||
*/
|
||||
static unsigned short bfq_weight_to_ioprio(int weight)
|
||||
{
|
||||
return max_t(int, 0,
|
||||
IOPRIO_BE_NR * BFQ_WEIGHT_CONVERSION_COEFF - weight);
|
||||
IOPRIO_NR_LEVELS * BFQ_WEIGHT_CONVERSION_COEFF - weight);
|
||||
}
|
||||
|
||||
static void bfq_get_entity(struct bfq_entity *entity)
|
||||
|
||||
Reference in New Issue
Block a user