[PATCH] NVMe: Re-introduce polling for completions

Christoph Hellwig hch at infradead.org
Tue Apr 5 05:35:23 PDT 2016


On Mon, Apr 04, 2016 at 04:24:49PM -0600, Keith Busch wrote:
> Multiple users have reported device initialization failure on some
> platforms due the driver not receiving expected interrupts. This is not
> the fault of any particular controller. This patch polls for completions
> on the admin queue in the watchdog timer, and starts the timer immediately
> after controller initialization completes, just before the first admin
> command is issued.

So how do any other PCIe device work given that almost no driver does
unconditionaly polling?

> +	spin_lock_irq(&admin_q->q_lock);
> +	nvme_process_cq(admin_q);
> +	spin_unlock_irq(&admin_q->q_lock);

Add a comment on why this is done.  Given that only the admin queue
is polled it's going to be a really convoluted explanation which should
be spelled out in detail.



More information about the Linux-nvme mailing list