On 1/30/20 11:35 PM, Christoph Hellwig wrote: > On Wed, Jan 29, 2020 at 09:01:49PM -0700, Jens Axboe wrote: >> 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