Re: [BUG] RCU hang with io_uring nvme polling

From: Ben Carey

Date: Fri Jul 03 2026 - 13:20:52 EST


On Fri, Jun 26, 2026 at 1:33 PM Ben Carey
<benjamin.james.carey3@xxxxxxxxx> wrote:
>
> After putting that patch into the kernel, the fio job ran, but most of the
> I/O's completed after about 2 milliseconds (makes sense, given the offset.)
>
>
> Ben Carey

While testing the patch we decided to trace the amount of time a workload
spends in blk_hctx_poll. We found that, for a test case with 8 jobs running for
10 seconds, it spent ~71% of its runtime in that function alone. We ran this
test with an Intel Optane mounted with NVMe over PCIe target but have observed
similar behavior on a VM, measured by:

perf record -F 99 -a -g -- \
fio --bs=1K --direct=1 --iodepth=1 --runtime=10 --rw=randread --time_based \
--ioengine=io_uring --hipri=1 --fixedbufs=0 --registerfiles=0 \
--sqthread_poll=0 \
--numjobs=8 --name=job0 --output-format=json --clocksource=clock_gettime \
--filename=/dev/nvme0n1

Again, this was tested with nvme.poll_queues=1, but similar behavior occurs
with higher poll_queues, and also on a VM.

This bug seems to pollute our experimental results, and thus stands as
something needing to be fixed for us to continue our research. Do you all think
there's a different solution than the timeout?

Thanks again,
Ben Carey