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.