On 10/15/19 7:59 AM, yangerkun wrote: > Now we recalculate the sequence of timeout with 'req->sequence = > ctx->cached_sq_head + count - 1', judge the right place to insert > for timeout_list by compare the number of request we still expected for > completion. But we have not consider about the situation of overflow: > > 1. ctx->cached_sq_head + count - 1 may overflow. And a bigger count for > the new timeout req can have a small req->sequence. > > 2. cached_sq_head of now may overflow compare with before req. And it > will lead the timeout req with small req->sequence. > > This overflow will lead to the misorder of timeout_list, which can lead > to the wrong order of the completion of timeout_list. Fix it by reuse > req->submit.sequence to store the count, and change the logic of > inserting sort in io_timeout. Thanks, this looks great. Applied for 5.4. -- Jens Axboe