On 14/05/2015 04:13, Viresh Kumar wrote: > On Wed, May 13, 2015 at 10:21 PM, Mason <slash.tmp@xxxxxxx> wrote: >> $ git diff v3.14.41 HEAD >tango.patch && xz tango.patch >> >> I don't understand the IRQ-related part yet >> ( arch/arm/mach-tangox/irq.c and drivers/irqchip/irq-gic.c ) >> >> If anyone spots the problem, that would make my day. >> >> I tested with a loadable module whose init function is >> >> static int __init ts_init(void) >> { >> long res; >> printk("ABOUT TO SLEEP\n"); >> set_current_state(TASK_INTERRUPTIBLE); >> res = schedule_timeout(HZ); >> printk("WAKE UP res=%ld\n", res); >> return 0; >> } >> >> Loading the module, with cpufreq divided by 9, prints: >> [ 1738.962982] ABOUT TO SLEEP >> [ 1747.956191] WAKE UP res=0 > > I hope you are also matching this time with a physical watch, > to make sure 38->47 is really 9 seconds :) Hello Viresh, I didn't /literally/ take a stop-watch to verify it was EXACTLY 9 seconds, but I was staring at the prompt, and it /felt/ like 9 seconds. And the 54 second case felt like a minute. I'm using a 27 MHz crystal as clocksource. This is independent of the CPU frequency. However, I'm using the ARM TWD as the system's clockevent source, and the TWD's clock is tied to the CPU clock (PERIPHCLK = CPUCLK / 2 on this SoC). I'm wondering if there's another standard clockevent source I could try (it would be great if it supported high-resolution timers). Regards. -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html