Re: [BUG] RCU hang with io_uring nvme polling
From: Keith Busch
Date: Fri Jun 26 2026 - 12:05:34 EST
On Fri, Jun 26, 2026 at 09:17:35AM -0600, Jens Axboe wrote:
> On 6/26/26 9:09 AM, Ben Carey wrote:
> > From a running QEMU image with the latest kernel:
> > 1. Attach GDB to the running instance.
> > 2. Enable io polling via sysfs (echo 1 > /sys/block/nvme0n1/queue/io_poll).
>
> That's not how that works at all. You need to setup poll queues on the
> nvme driver side, using the nvme.poll_queues=XX kernel parameter, or if
> using nvme as a module, load the module with poll_queues=XX where XX is
> the number of poll queues. You're not doing any polled IO as-is, and the
> above should also have dumped a dmesg message about how that does
> absolutely nothing.
>
> That said, it should still work, just not doing polled IO. I'll take a
> look sometime next week, OOO right now.
Yeah, the sysfs attribute does nothing, but Ben mentioned they had the
correct kernel command line:
BOOT_IMAGE=/vmlinuz-7.1.0-g3996771b8f75 root=/dev/mapper/ubuntu--vg-ubuntu--lv \
ro nvme.poll_queues=1 nokaslr
So they did enable polling, but the "echo" step is just confusing and
unnecessary.
I tried out the test, and there does appear to be a problem here, so I'm
looking into it.