Hello, On Thu, Aug 29, 2019 at 04:22:48PM +0800, Hillf Danton wrote: > > static struct request *blk_mq_rq_ctx_init(struct blk_mq_alloc_data *data, > > - unsigned int tag, unsigned int op) > > + unsigned int tag, unsigned int op, u64 alloc_time_ns) > > { > > struct blk_mq_tags *tags = blk_mq_tags_from_data(data); > > struct request *rq = tags->static_rqs[tag]; > > @@ -325,6 +325,9 @@ static struct request *blk_mq_rq_ctx_init(struct blk_mq_alloc_data *data, > > RB_CLEAR_NODE(&rq->rb_node); > > rq->rq_disk = NULL; > > rq->part = NULL; > > +#ifdef CONFIG_BLK_RQ_ALLOC_TIME > > Not only matches start_time, but everal hunks may collapse into one > if checking alloc_time is lifted up. > > if (blk_queue_rq_alloc_time(rq->q)) > rq->alloc_time_ns = ktime_get_ns(); > else > rq->alloc_time_ns = 0; Can you please elaborate? Lifted up where? Thanks. -- tejun