On Thu, Sep 26, 2019 at 12:26 AM Danil Kipnis <danil.kipnis@xxxxxxxxxxxxxxx> wrote: > > On Wed, Sep 18, 2019 at 5:47 PM Bart Van Assche <bvanassche@xxxxxxx> wrote: > > Combining multiple queues (a) into a single queue (b) that is smaller > > than the combined source queues without sacrificing performance is > > tricky. We already have one such implementation in the block layer core > > and it took considerable time to get that implementation right. See e.g. > > blk_mq_sched_mark_restart_hctx() and blk_mq_sched_restart(). > > Roma, can you please estimate the performance impact in case we switch to it? As I remember correctly I could not reuse the whole machinery with those restarts from block core because shared tags are shared only between hardware queues, i.e. different hardware queues share different tags sets. IBTRS has many hardware queues (independent RDMA connections) but only one tags set, which is equally shared between block devices. What I dreamed about is something like BLK_MQ_F_TAG_GLOBALLY_SHARED support in block layer. -- Roman