On 07/28/2014 12:19 PM, Stephen Boyd wrote: > On 07/25/14 14:06, Soren Brinkmann wrote: >> On platforms that do not power off during suspend, successfully entering >> suspend races with timers. >> >> The race happening in a couple of location is: >> >> 1. disable IRQs (e.g. arch_suspend_disable_irqs()) >> ... >> 2. syscore_suspend() >> -> timekeeping_suspend() >> -> clockevents_notify(SUSPEND) >> -> tick_suspend() (timers are turned off here) >> ... >> 3. wfi (wait for wake-IRQ here) >> >> Between steps 1 and 2 the timers can still generate interrupts that are >> not handled and stay pending until step 3. That pending IRQ causes an >> immediate - spurious - wake. >> >> The solution is to move the clockevents suspend/resume notification >> out of the syscore_suspend step and explictly call them at the appropriate >> time in the suspend/hibernation paths. I.e. timers are suspend _before_ >> IRQs get disabled. And accordingly in the resume path. >> >> Signed-off-by: Soren Brinkmann <soren.brinkm...@xilinx.com> > Do we know which timer_list or hrtimer wants to run while entering > suspend? I'd suspect the scheduler tick but perhaps we just forgot to > cancel some timer during suspend?
Though, canceling timers really shouldn't be necessary for suspend/resume, no? thanks -john -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/