Re: [PATCH] bfq: backport: update internal depth state when queue depth changes

From: Holger HoffstÃtte
Date: Fri May 10 2019 - 20:07:15 EST


On 5/11/19 1:17 AM, Eric Wheeler wrote:
On Fri, 10 May 2019, Sasha Levin wrote:

On Fri, May 10, 2019 at 10:56:32AM -0700, Eric Wheeler wrote:
From: Jens Axboe <axboe@xxxxxxxxx>

commit 77f1e0a52d26242b6c2dba019f6ebebfb9ff701e upstream

A previous commit moved the shallow depth and BFQ depth map calculations
to be done at init time, moving it outside of the hotter IO path. This
potentially causes hangs if the users changes the depth of the scheduler
map, by writing to the 'nr_requests' sysfs file for that device.

Add a blk-mq-sched hook that allows blk-mq to inform the scheduler if
the depth changes, so that the scheduler can update its internal state.

Signed-off-by: Eric Wheeler <bfq@xxxxxxxxxxxxxxxxxx>
Tested-by: Kai Krakow <kai@xxxxxxxxxxx>
Reported-by: Paolo Valente <paolo.valente@xxxxxxxxxx>
Fixes: f0635b8a416e ("bfq: calculate shallow depths at init time")
Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx

I wasn't clear on what was backported here, so I've queued the upstream
version on 4.19 and 4.14, it doesn't seem to be relevant to older
branches.


Thanks Sasha. We needed it for 4.19, I wasn't sure how far it would patch
back so I left the version off. BFQ was merged in 4.12 iirc, so if it
patched against 4.14, then 4.19 and 4.14 are the only ones that need it.

It was applied in mainline for 5.1 and also applies fine to 5.0.x, so IMHO
that wouldn't hurt either.

thanks,
Holger