Hi Stephen, On Thu, Jul 18, 2013 at 04:21:17PM -0700, Stephen Boyd wrote: > The ARM architected system counter has at least 56 usable bits. > Add support for counters with more than 32 bits to the generic > sched_clock implementation so we can increase the time between > wakeups due to dealing with wrap-around on these devices while > benefiting from the irqtime accounting and suspend/resume > handling that the generic sched_clock code already has. On my > system using 56 bits over 32 bits changes the wraparound time > from a few minutes to an hour. For faster running counters (GHz > range) this is even more important because we may not be able to > execute the timer in time to deal with the wraparound if only 32 > bits are used. > > We choose a maxsec value of 3600 seconds because we assume no > system will go idle for more than an hour. In the future we may > need to increase this value. > > Note: All users should switch over to the 64-bit read function so > we can remove setup_sched_clock() in favor of sched_clock_register(). > > Cc: Russell King <linux@xxxxxxxxxxxxxxxx> > Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx> > --- [..] > @@ -110,14 +123,13 @@ void __init setup_sched_clock(u32 (*read)(void), int > bits, unsigned long rate) > if (cd.rate > rate) > return; > > - BUG_ON(bits > 32); > WARN_ON(!irqs_disabled()); > read_sched_clock = read; > - sched_clock_mask = (1 << bits) - 1; > + sched_clock_mask = CLOCKSOURCE_MASK(bits); Note that this conflicts with my integer overflow fix (http://article.gmane.org/gmane.linux.ports.arm.kernel/252498) that I hope will get merged before 3.11 is out. baruch -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch@xxxxxxxxxx - tel: +972.2.679.5364, http://www.tkos.co.il - -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html