On Tue, Aug 22, 2017 at 09:55:57PM +0000, Bart Van Assche wrote: > On Sat, 2017-08-05 at 14:56 +0800, Ming Lei wrote: > > + /* > > + * if there is q->queue_depth, all hw queues share > > + * this queue depth limit > > + */ > > + if (q->queue_depth) { > > + queue_for_each_hw_ctx(q, hctx, i) > > + hctx->flags |= BLK_MQ_F_SHARED_DEPTH; > > + } > > + > > + if (!q->elevator) > > + goto exit; > > Hello Ming, > > It seems very fragile to me to set BLK_MQ_F_SHARED_DEPTH if and only if > q->queue_depth != 0. Wouldn't it be better to let the block driver tell the > block layer whether or not there is a queue depth limit across hardware > queues, e.g. through a tag set flag? One reason for not doing in that way is because q->queue_depth can be changed via sysfs interface. Another reason is that better to not exposing this flag to drivers since it isn't necessary, that said it is an internal flag actually. -- Ming