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.