On Thu, Jun 04, 2015 at 10:32:40PM +0200, Mason wrote: > On 04/06/2015 22:08, Felipe Balbi wrote: > > > On Thu, Jun 04, 2015 at 11:46:59AM +0200, Mason wrote: > >> Also, check /proc/timer_list for a "Broadcast device". If you don't > >> define one, the TWD timers are set to periodic mode, with hrtimers > >> disabled. > > > > Did you manage to turn global timer into Broadcast device ? > > Disclaimer: I am a kernel noob, take everything I say with > a rock of salt. > > As far as I can see, the global timer code doesn't handle > frequency changes, whereas the TWD code does.
All right, but TWD has C3STOP and that prevents it from being used as broadcast device. Tony Lindgren had the idea of implementing a timer switch during idle and that could help us strip the kernel off of C3STOP feature flag. That means we might be able to use TWD as broadcast until CPU decides to idle, at which point we need to switch to a different timer. > Yet all these timers are clocked by PERIPHCLK, which is defined > as CPUCLK / N. So if a platform enables cpufreq, CPUCLK will > vary, meaning PERIPHCLK will vary. I don't see how the global > timer can work in that situation. > > cf. also this recent thread: > http://thread.gmane.org/gmane.linux.kernel.cpufreq/15770 I'll have a read, cheers. -- balbi
signature.asc
Description: Digital signature