Hi Ming, On Thu, Jun 28, 2018 at 11:19:16AM +0800, Ming Lei wrote: > + list_for_each_entry(rq, list, queuelist) { > BUG_ON(rq->mq_ctx != ctx); > - list_del_init(&rq->queuelist); > - __blk_mq_insert_req_list(hctx, rq, false); > + trace_block_rq_insert(hctx->queue, rq); > } I wonder if we really need the above loop unconditionally. It does some BUG_ON() sanity checking (which I hate but it was already there so not your problem) and tracing of the request insertion. So can we maybe only run this loop if tracing is enabled? Not sure if this is possible though. Maybe Steven (Cced) can help here. Byte, Johannes -- Johannes Thumshirn Storage jthumshirn@xxxxxxx +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850