Hi Bart On 04/20/2018 12:43 AM, Bart Van Assche wrote: > Use the deadline instead of the request generation to detect whether > or not a request timer fired after reinitialization of a request Maybe use deadline to do this is not suitable. Let's think of the following scenario. T1/T2 times in nano seconds J1/J2 times in jiffies rq is started at T1,J1 blk_mq_timeout_work -> blk_mq_check_expired -> save rq->__deadline (J1 + MQ_RQ_IN_FLIGHT) rq is completed and freed rq is allocated and started again on T2 rq->__deadline = J2 + MQ_RQ_IN_FLIGHT -> synchronize srcu/rcu -> blk_mq_terminate_expired -> rq->__deadline (J2 + MQ_RQ_IN_FLIGHT) 1. deadline = rq->__deadline & ~RQ_STATE_MASK (0x3) if J2-J1 < 4 jiffies, we will get the same deadline value. 2. even if we do some bit shift when save and get deadline if T2 - T1 < time of 1 jiffies, we sill get the same deadline. Thanks Jianchao