Re: [PATCH 08/13] nvme-pci: remove the CQ lock for interrupt driven queues

2018-12-03 Thread Sagi Grimberg
Now that we can't poll regular, interrupt driven I/O queues there is almost nothing that can race with an interrupt. The only possible other contexts polling a CQ are the error handler and queue shutdown, and both are so far off in the slow path that we can simply use the big hammer of

[PATCH 08/13] nvme-pci: remove the CQ lock for interrupt driven queues

2018-12-02 Thread Christoph Hellwig
Now that we can't poll regular, interrupt driven I/O queues there is almost nothing that can race with an interrupt. The only possible other contexts polling a CQ are the error handler and queue shutdown, and both are so far off in the slow path that we can simply use the big hammer of disabling

Re: [PATCH 08/13] nvme-pci: remove the CQ lock for interrupt driven queues

2018-11-30 Thread Christoph Hellwig
On Thu, Nov 29, 2018 at 02:08:40PM -0700, Keith Busch wrote: > On Thu, Nov 29, 2018 at 08:13:05PM +0100, Christoph Hellwig wrote: > > @@ -1050,12 +1051,16 @@ static irqreturn_t nvme_irq(int irq, void *data) > > irqreturn_t ret = IRQ_NONE; > > u16 start, end; > > > > -

Re: [PATCH 08/13] nvme-pci: remove the CQ lock for interrupt driven queues

2018-11-29 Thread Keith Busch
On Thu, Nov 29, 2018 at 08:13:05PM +0100, Christoph Hellwig wrote: > @@ -1050,12 +1051,16 @@ static irqreturn_t nvme_irq(int irq, void *data) > irqreturn_t ret = IRQ_NONE; > u16 start, end; > > - spin_lock(>cq_lock); > + /* > + * The rmb/wmb pair ensures we see all

[PATCH 08/13] nvme-pci: remove the CQ lock for interrupt driven queues

2018-11-29 Thread Christoph Hellwig
Now that we can't poll regular, interrupt driven I/O queues there is almost nothing that can race with an interrupt. The only possible other contexts polling a CQ are the error handler and queue shutdown, and both are so far off in the slow path that we can simply use the big hammer of disabling

[PATCH 08/13] nvme-pci: remove the CQ lock for interrupt driven queues

2018-11-21 Thread Christoph Hellwig
Now that we can't poll regular, interrupt driven I/O queues there is almost nothing that can race with an interrupt. The only possible other contexts polling a CQ are the error handler and queue shutdown, and both are so far off in the slow path that we can simply use the big hammer of disabling