Hello, Bart. On Tue, Dec 12, 2017 at 09:37:11PM +0000, Bart Van Assche wrote: > Have you considered the following instead of introducing MQ_RQ_IDLE and > MQ_RQ_IN_FLIGHT? I think this could help to limit the number of new atomic > operations introduced in the hot path by this patch series. But nothing in the hot paths is atomic. > static inline bool blk_mq_rq_in_flight(struct request *rq) > { > return list_empty(&rq->queuelist); > } And the fact that we encode the generation number and state into a single variable contributes to not needing atomic operations. Breaking up the state and generation like the above would need more synchronization, not less. Thanks. -- tejun