Re: [PATCH v9 2/2] blk-mq: Rework blk-mq timeout handling again

From: hch@xxxxxx
Date: Wed May 16 2018 - 11:47:31 EST


On Wed, May 16, 2018 at 04:17:42PM +0000, Bart Van Assche wrote:
> There is another reason the deadline is included in the atomic operation,
> namely to handle races between the BLK_EH_RESET_TIMER case in blk_mq_rq_timed_out()
> and blk_mq_complete_request(). I don't think that race is addressed properly by
> your patch. I will see what I can do to address that race without using 64-bit
> atomic operations.

I might be missing something here, so please help me understand
what is missing.

If we restart the timer in blk_mq_rq_timed_out we also bump the
generation at the same time as we reset the deadline in your old
patch. With this patch we only bump the generation, but that should
be enough to address the rest, or not?