Re: [PATCH 05/10] block: don't update BLK_FEAT_POLL in __blk_mq_update_nr_hw_queues

Nilay Shroff
2025-01-06T12:07:10Z

On 1/6/25 4:35 PM, Christoph Hellwig wrote:
> On Mon, Jan 06, 2025 at 04:31:23PM +0530, Nilay Shroff wrote:
>>> +static bool bdev_can_poll(struct block_device *bdev)
>>> +{
>>> + struct request_queue *q = bdev_get_queue(bdev);
>>> +
>>> + if (queue_is_mq(q))
>>> + return blk_mq_can_poll(q->tag_set);
>>> + return q->limits.features & BLK_FEAT_POLL;
>>> +}
>>> +
>>
>> Should we make bdev_can_poll() inline ?
>
> I don't really see the point. It's file local and doesn't have any
> magic that could confuse the code generator, so we might as well leave
> it to the compiler. Although that might be about to change per the
> discussion with Damien, which could require it in blk-sysfs, in
> which case it should become an inline in a header.
>
Oh yes, I saw that you moved blk_mq_can_poll() to blk-mq.h and
made it inline so thought why bdev_can_poll() can't be made inline?
BTW, bdev_can_poll() is called from IO fastpath and so making it inline
may slightly improve performance.
On another note, I do see that blk_mq_can_poll() is now only called
from bdev_can_poll(). So you may want to merge these two functions
in a single call and make that inline.

Thanks,
--Nilay