On Mon, Jul 28, 2025 at 08:12:39PM GMT, Manivannan Sadhasivam wrote:
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.
Oops, wrong thread. Please ignore the above message.
- Mani