On Tue, Dec 18, 2018 at 07:47:39AM +0100, Christoph Hellwig wrote: > On Mon, Dec 17, 2018 at 09:34:55PM -0700, Jens Axboe wrote: > > On 12/17/18 9:15 PM, Ming Lei wrote: > > > The queue mapping of type poll only exists when set->map[HCTX_TYPE_POLL].nr_queues > > > is bigger than zero, so enhance the constraint by checking .nr_queues of type poll > > > before enabling IO poll. > > > > > > Otherwise IO race & timeout can be observed when running block/007. > > > > Looks good to me, but we might consider having a helper for this, since > > we have this check in 3 places now. But for now this is good, thanks > > Ming. > > Jens, if you want this I can drop the nvme patch to set nr_maps to 2 > as it wouldn't be needed. Not sure which one is more elegant, but > I guess Mings version is a little more fool proof. For READ queue type, its .nr_maps can be 3 and .nr_queues is zero, so if check on the two queue type is kept as consistent, we may get good code readability, IMO. As Jens mentioned, we may introduce blk_mq_queue_type_supported() helper to cover both. Thanks, Ming