Messages in this thread | | | Date | Tue, 12 Dec 2017 13:44:32 -0800 | From | "" <> | Subject | Re: [PATCH 2/6] blk-mq: replace timeout synchronization with a RCU and generation based scheme |
| |
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
| |