On 2/12/2026 2:32 AM, Tariq Toukan wrote:
From: Gal Pressman <redacted>
The ASO completion poll loop uses usleep_range() which can sleep much
longer than requested due to scheduler latency. Under load, we witnessed
a 20ms+ delay until the process was rescheduled, causing the jiffies
based timeout to expire while the thread is sleeping.
The original do-while loop structure (poll, sleep, check timeout) would
exit without a final poll when waking after timeout, missing a CQE that
arrived during sleep.
Restructure the loop by moving the poll into the while condition,
ensuring we always poll after sleeping, catching CQEs that arrived
during that time.
I would have re-written these to be based on poll_timeout_us() or
read_poll_timeout().
Again as with previous patch, I don't know if that warrants a re-roll.
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>