On 1/30/20 11:35 PM, Christoph Hellwig wrote:
On Wed, Jan 29, 2020 at 09:01:49PM -0700, Jens Axboe wrote:
quoted
blk_poll() used to be a pointer in the queue, but since we just had
one implementation, we got rid of it. Might make sense to
reintroduce that, and just make it an optimized indirect call. I
think that would be prettier than add the bio hack in the middle of
it, and you're having to add a queue pointer anyway.
Well, the other reason is to avoid an indirect call for the blk-mq
case, which are fairly expensive. In fact I'm pretty sure we avoid
indirect calls from the bio layer into blk-mq entirely for the fast
path at the moment, and it would be great to keep it that way.
Sure, my suggestion was to provide it as an alternative - if set,
then call that. Though with the optimized indirect calls, at least
it's just a branch, actual call is the same.
This patch sets a bit in no mans land right now. It's duplicating
the main loop, and it's shoved in the middle of the function. This
has to get cleaned up.
--
Jens Axboe