Re: [PATCH] scsi: ufs: core: move some irq handling back to hardirq (with time limit)
From: Manivannan Sadhasivam
Date: Mon Jul 28 2025 - 10:43:04 EST
On Fri, Jul 25, 2025 at 04:00:42PM GMT, André Draszik wrote:
> On Thu, 2025-07-24 at 09:02 -0700, Bart Van Assche wrote:
> > On 7/24/25 2:54 AM, André Draszik wrote:
> > > @@ -5656,19 +5689,39 @@ static int ufshcd_poll(struct Scsi_Host *shost, unsigned int queue_num)
> > > WARN_ONCE(completed_reqs & ~hba->outstanding_reqs,
> > > "completed: %#lx; outstanding: %#lx\n", completed_reqs,
> > > hba->outstanding_reqs);
> > > - if (queue_num == UFSHCD_POLL_FROM_INTERRUPT_CONTEXT) {
> > > - /* Do not complete polled requests from interrupt context. */
> > > + if (time_limit) {
> > > + /* Do not complete polled requests from hardirq context. */
> > > ufshcd_clear_polled(hba, &completed_reqs);
> > > }
> >
> > This if-statement and the code inside the if-statement probably can be
> > left out. This if-statement was introduced at a time when the block
> > layer did not support completing polled requests from interrupt context.
> > I think that commit b99182c501c3 ("bio: add pcpu caching for non-polling
> > bio_put") enabled support for completing polled requests from interrupt
> > context. Since this patch touches that if-statement, how about removing
> > it with a separate patch that comes before this patch? Polling can be
> > enabled by adding --hipri=1 to the fio command line and by using an I/O
> > engine that supports polling, e.g. pvsync2 or io_uring.
>
> Bart, thank you for taking the time to explain and the background info on
> this, very helpful!
>
Yeah, I realized it after hitting 'y' in mutt. Added now.
- Mani
--
மணிவண்ணன் சதாசிவம்