On Thu, Sep 14, 2017 at 12:51:24PM -0600, Jens Axboe wrote: > On 09/14/2017 10:42 AM, Ming Lei wrote: > > Hi, > > > > This patchset avoids to allocate driver tag beforehand for flush rq > > in case of I/O scheduler, then flush rq isn't treated specially > > wrt. get/put driver tag, code gets cleanup much, such as, > > reorder_tags_to_front() is removed, and we needn't to worry > > about request order in dispatch list for avoiding I/O deadlock. > > > > 'dbench -t 30 -s -F 64' has been run on different devices(shared tag, > > multi-queue, singele queue, ...), and no issues are observed, > > even very low queue depth(1) test are run, debench still works > > well. > > Gave this a quick spin on the test box, and I get tons of spewage > on booting up: > > [ 9.131290] WARNING: CPU: 2 PID: 337 at block/blk-mq-sched.c:274 blk_mq_sched_insert_request+0x15d/0x170 Sorry, my fault. The WARN_ON() was inside 'if (has_sched)' actually, and could you please remove the WARN_ON() in blk_mq_sched_bypass_insert() and see if it works? Thanks, Ming