* Vincent Guittot <vincent.guittot@xxxxxxxxxx> [190109 16:56]: > On Wed, 9 Jan 2019 at 17:50, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > > > > * Vincent Guittot <vincent.guittot@xxxxxxxxxx> [190109 16:48]: > > > On Wed, 9 Jan 2019 at 17:28, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > > > > > > > > * Rafael J. Wysocki <rafael@xxxxxxxxxx> [190109 09:44]: > > > > > On Wed, Jan 9, 2019 at 2:51 AM Tony Lindgren <tony@xxxxxxxxxxx> wrote: > > > > > > > > > > > > * Vincent Guittot <vincent.guittot@xxxxxxxxxx> [190109 01:42]: > > > > > > > Le Tuesday 08 Jan 2019 à 13:37:43 (-0800), Tony Lindgren a écrit : > > > > > > > > Lowering the autosuspend_delay_ms to 2100 ms makes things work again. > > > > > > > > Anything higher than 2200 ms seems to somehow time out immediately > > > > > > > > now :) > > > > > > > > > > > > > > This is quite close to the max ns of an int on arm 32bits > > > > > > > > > > > > > > Could you try the patch below ? > > > > > > > > > > > > Yup great thanks, that's it: > > > > > > > > > > > > Tested-by: Tony Lindgren <tony@xxxxxxxxxxx> > > > > > > > > > > Cool. Thanks for getting to the bottom of this! > > > > > > > > No problem. > > > > > > > > One more thing I noticed: The 25% slack can get noticeable > > > > for larger values. For things like a 3 second uart console > > > > timeout slack of 750 ms is quite large variation. > > > > > > > > Should we have a limit of max 100 ms for the slack? > > > > > > Keep in mind that when jiffies were used, expires was rounded to a > > > full second when delay was greater than a second. So you could already > > > have difference of up 990ms on arm before this patch > > > And i don't take into account the rework of timer infra which add > > > another level of variation, something like up to 640 ms more when the > > > timer is greater than 2880 ms for arm IIRC > > > > I think it was rounded up earlier. > > > > Don't we get rounded down now also? > > We still round up. In hrtimer we have : > timer->_softexpires = time; > timer->node.expires = ktime_add_safe(time, delta); > so the hrtimer will expire between "time" and "time+delta" OK thanks for checking it. In that case we should be good to go :) Tony