On Fri, 2018-07-13 at 20:54 -0600, Jens Axboe wrote: +AD4- On 7/13/18 8:37 PM, Ming Lei wrote: +AD4- +AD4- OK, I am thinking another idea for addressing this issue. +AD4- +AD4- +AD4- +AD4- We may introduce one logical admin(pm) request queue for each scsi+AF8-device, +AD4- +AD4- and this queue shares tag with IO queue, with NO+AF8-SCHED set, and always +AD4- +AD4- use atomic mode of the queue usage refcounter. Then we may send PM +AD4- +AD4- command to device after the IO queue is frozen. +AD4- +AD4- +AD4- +AD4- Also PREEMPT+AF8-ONLY can be removed too in this way. +AD4- +AD4- +AD4- +AD4- Even in future, all pass-through commands may be sent to this admin queue. +AD4- +AD4- +AD4- +AD4- If no one objects, I will cook patches towards this direction. +AD4- +AD4- Yes, this seems like a fine idea. It's essentially the same as handling +AD4- the enter differently, but the abstraction is nicer. Hello Jens, Why do you support the idea of removing the PREEMPT+AF8-ONLY flag? Are you perhaps concerned about the performance impact of that flag for NVMe request processing? If that is your concern and if it can be shown that the processing of that flag has a measurable performance impact, how about using jump labels to ensure that only request queues that need the PREEMPT+AF8-ONLY flag pay the overhead of processing that flag? See also Documentation/static-keys.txt. Thanks, Bart.