On 5/4/21 12:55 PM, John Garry wrote:
On 04/05/2021 07:17, Hannes Reinecke wrote:
On 5/4/21 5:20 AM, Bart Van Assche wrote:
On 5/3/21 8:03 AM, Hannes Reinecke wrote:
These commands are set aside before allocating the block-mq tag bitmap,
so they'll never show up as busy in the tag map.
That doesn't sound correct to me. Should the above perhaps be changed
into "blk_mq_start_request() is never called for internal commands so
they'll never show up as busy in the tag map"?
Yes, will do.
So why don't these - or shouldn't these - turn up in the busy tag map?
One of the motivations to use these block requests for internal commands
is that we can take advantage of the block layer handling for CPU
hotplug for MQ hosts, i.e. if blk-mq can't see these are inflight, then
they would be missed in blk_mq_hctx_notify_offline() ->
blk_mq_hctx_has_requests(), right? And who knows what else...
Oh, but of course it's possible to call 'start' on these requests to
have them counted in the busy map.
I just didn't see the need for it until now, that's all.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer