On Mon, 2018-05-14 at 13:15 +0800, jianchao.wang wrote: > a 32bit deadline is indeed OK to judge whether a request is timeout or not. > but how is the expires value determined for __blk_add_timer -> mod_timer ? > as we know, when a request is started, we need to arm a timer for it. > the expires value is 'unsigned long'. This has been addressed in the just posted version 9. Can you have a look? Although I had tested timeout handling I think this had not caused my tests to fail because the following code limits request timeout examination to 5s in the future: #define BLK_MAX_TIMEOUT (5 * HZ) unsigned long blk_rq_timeout(unsigned long timeout) { unsigned long maxt; maxt = round_jiffies_up(jiffies + BLK_MAX_TIMEOUT); if (time_after(timeout, maxt)) timeout = maxt; return timeout; } Thanks, Bart.