On 10/27/20 7:29 AM, Xiaoguang Wang wrote: > Commit cb700eb3faa4 ("block: don't plug for aio/O_DIRECT HIPRI IO") > only does not call blk_start_plug() or blk_finish_plug for HIPRI IO > in __blkdev_direct_IO(), but if upper layer subsystem, such as io_uring, > still initializes valid plug, block layer may still plug HIPRI IO. > To disable plug for HIPRI IO completely, do it in blk_mq_plug(). There's something funky going on with plugging and polled IO. I tried to improve the io_uring plugging, so we don't plug for polled IO (or for non-bdev IO in general), and it tanked performance here from ~2.5M IOPS to ~1.4M IOPS. Thinking I had made some sort of mistake, I just tried your patch alone, and I see the same performance drop. This doesn't make a lot of sense, so some investigation is needed. -- Jens Axboe