On 11/16/18 1:35 AM, Christoph Hellwig wrote: > On Thu, Nov 15, 2018 at 12:51:25PM -0700, Jens Axboe wrote: >> If we have separate poll queues, we know that they aren't using >> interrupts. Hence we don't need to disable interrupts around >> finding completions. >> >> Provide a separate set of blk_mq_ops for such devices. > > This looks ok, but I'd prefer if we could offer to just support > polling with the separate queue. That way we get ourselves out of > all kinds of potential races of the interrupt path vs poll path. As Keith mentioned, we do use polling to find missing completions in case of timeouts. And that has actually been really useful. I'd rather keep such a change separate. If we do go down that route, then there are more optimizations we can make. Finally, let's not forget that polling is/was still a win even if we did trigger interrupts. That's how NVMe has been since polling was introduced. While the newer stuff is a lot more efficient, I don't think we should totally abandon an easy opt-in for polling for hardware unless we have strong reasons to do so. -- Jens Axboe