Re: [PATCH] block/bfq: fix ifdef for CONFIG_BFQ_GROUP_IOSCHED=y

From: Jens Axboe
Date: Fri Mar 29 2019 - 11:58:27 EST


On 3/29/19 9:56 AM, Holger HoffstÃtte wrote:
> On 3/29/19 3:01 PM, Konstantin Khlebnikov wrote:
>> Replace BFQ_GROUP_IOSCHED_ENABLED with CONFIG_BFQ_GROUP_IOSCHED.
>> Code under these ifdefs never worked, something might be broken.
>>
>> Fixes: 0471559c2fbd ("block, bfq: add/remove entity weights correctly")
>> Fixes: 73d58118498b ("block, bfq: consider also ioprio classes in symmetry detection")
>> Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
>> ---
>> block/bfq-iosched.c | 2 +-
>> block/bfq-wf2q.c | 2 +-
>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
>> index 4c592496a16a..fac188dd78fa 100644
>> --- a/block/bfq-iosched.c
>> +++ b/block/bfq-iosched.c
>> @@ -674,7 +674,7 @@ static bool bfq_symmetric_scenario(struct bfq_data *bfqd)
>> * at least two nodes.
>> */
>> return !(varied_queue_weights || multiple_classes_busy
>> -#ifdef BFQ_GROUP_IOSCHED_ENABLED
>> +#ifdef CONFIG_BFQ_GROUP_IOSCHED
>> || bfqd->num_groups_with_pending_reqs > 0
>> #endif
>> );
>> diff --git a/block/bfq-wf2q.c b/block/bfq-wf2q.c
>> index 63311d1ff1ed..a11bef75483d 100644
>> --- a/block/bfq-wf2q.c
>> +++ b/block/bfq-wf2q.c
>> @@ -1012,7 +1012,7 @@ static void __bfq_activate_entity(struct bfq_entity *entity,
>> entity->on_st = true;
>> }
>>
>> -#ifdef BFQ_GROUP_IOSCHED_ENABLED
>> +#ifdef CONFIG_BFQ_GROUP_IOSCHED
>> if (!bfq_entity_to_bfqq(entity)) { /* bfq_group */
>> struct bfq_group *bfqg =
>> container_of(entity, struct bfq_group, entity);
>>
>>
>
> Good catch! I run without group scheduling and therefore didn't notice these
> stray defines earlier. For 5.1 it should merge cleanly; adding this on top of
> the pending 5.2 BFQ patches required a small context fixup in hunk #1 due to
> "block, bfq: do not idle for lowest-weight queues".

I'm hesitant to apply this, since the group scheduling stuff has obviously never
been tested.

Hence it should go through some actual testing first, which means it's a 5.2
candidate, not 5.1.

--
Jens Axboe