On Fri, 2017-10-27 at 19:55 +0200, Roman Penyaev wrote: > That's just a bug in code, not a in issue with restarts, which can be fixed > if we put hctx which are needed to be restarted in percpu lists and avoid > long loops and contentions. Hello Roman, Have you noticed that recently .get_budget() and .put_budget() callbacks have been added into struct blk_mq_ops? If block drivers that support shared tags implement these callback functions properly then maybe busy conditions become infrequent enough to use a single "hctx busy" list per tag set instead of per-cpu "hctx busy" lists. Bart.