Re: [PATCH v2 3/6] block: add iopoll method to support bio-based IO polling

Christoph Hellwig
2021-01-28T14:37:57Z

On Thu, Jan 28, 2021 at 07:52:05PM +0800, JeffleXu wrote:
>
>
> On 1/28/21 4:40 PM, Christoph Hellwig wrote:
> > On Mon, Jan 25, 2021 at 08:13:37PM +0800, Jeffle Xu wrote:
> >> +int blk_poll(struct request_queue *q, blk_qc_t cookie, bool spin)
> >
> > Can you split the guts of this function into two separate helpers
> > for the mq vs non-mq case? As is is is a little hard to read and
> > introduced extra branches in the fast path.
> >
>
> I know your consideration, actually I had ever tried.
>
> I can extract some helper functions, but I'm doubted if the extra
> function call is acceptable.
>
> Besides, the iteration logic is generic and I'm afraid the branch or
> function call is unavoidable. Or if we maintain two separate function
> for mq and dm, the code duplication may be unavoidable.

I'd just split the functions entirely at the highest level.