Re: About sbitmap_bitmap_show() and cleared bits (was Re: [PATCH RFC v7 07/12] blk-mq: Add support in hctx_tags_bitmap_show() for a shared sbitmap)

John Garry
2020-06-30T07:32:30Z

On 30/06/2020 07:33, Hannes Reinecke wrote:
> On 6/29/20 5:32 PM, John Garry wrote:
>> Hi all,
>>
>> I noticed that sbitmap_bitmap_show() only shows set bits and does not
>> consider cleared bits. Is that the proper thing to do?
>>
>> I ask, as from trying to support sbitmap_bitmap_show() for hostwide
>> shared tags feature, we currently use blk_mq_queue_tag_busy_iter() to
>> find active requests (and associated tags/bits) for a particular hctx.
>> So, AFAICT, would give a change in behavior for sbitmap_bitmap_show(),
>> in that it would effectively show set and not cleared bits.
>>
> Why would you need to do this?
> Where would be the point traversing cleared bits?

I'm not talking about traversing cleared bits specifically. I just think
that today sbitmap_bitmap_show() only showing the bits in
sbitmap_word.word may not be useful or even misleading, as in reality
the "set" bits are sbitmap_word.word & ~sbitmap_word.cleared.

And for hostwide shared tags feature, iterating the busy rqs to find the
per-hctx tags/bits would effectively give us the "set" bits, above, so
there would be a difference.

Thanks,
John