Re: [PATCH RESEND] dm: limit target bio polling to one shot

Jens Axboe <[email protected]>
Newsgroups org.kernel.vger.io-uring,dev.linux.lists.dm-devel
Message-ID <[email protected]>
On 5/13/26 3:13 AM, Fengnan Chang wrote:
> dm_poll_bio() is the ->poll_bio() callback for a stacked dm device.
> The caller only knows about the dm queue, so it may decide to do a
> spinning poll if it thinks a single queue is being polled. Passing those
> flags unchanged to the mapped clone lets blk_mq_poll() spin on a target
> queue from inside dm_poll_bio().
> 
> With io_uring IOPOLL on a dm-stripe target this can keep a task in
> 
>   dm_poll_bio() -> bio_poll() -> blk_mq_poll()
> 
> long enough to trigger an RCU CPU stall, before io_uring gets back to
> io_iopoll_check() and its need_resched() check.
> 
> Keep dm's ->poll_bio() bounded by forcing one-shot polling for target
> bios. The caller can invoke dm_poll_bio() again if it wants to keep
> polling, and it also gets a chance to reap completions or reschedule
> between passes.

Looks good to me.

-- 
Jens Axboe
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.