Some of these are optimizations, the latter part is prep work for supporting polling with aio. Patches against my for-4.21/block branch. These patches can also be found in my mq-perf branch, though there are other patches sitting on top of this series (notably aio polling, as mentioned). Changes since v2: - Include polled swap IO in the poll optimizations - Get rid of unnecessary write barrier for DIO wakeup - Fix a potential stall if need_resched() was set and preempt wasn't enabled - Provide separate mq_ops for NVMe with poll queues - Drop q->mq_ops patch - Rebase on top of for-4.21/block Changes since v1: - Improve nvme irq disabling for polled IO - Fix barriers in the ordered wakeup for polled O_DIRECT - Add patch to allow polling to find any command that is done - Add patch to control whether polling spins or not - Have async O_DIRECT mark a bio as pollable - Don't plug for polling