schedule_timeout sleeps too long after dividing CPU frequency

Viresh Kumar viresh.kumar at linaro.org
Thu May 14 06:59:38 PDT 2015


On 14 May 2015 at 18:36, Mason <slash.tmp at free.fr> wrote:
> When I execute "echo 18500 > scaling_max_freq"
> the system is supposed to change the CPU frequency to 18.5 MHz
> (I might have a bug lurking there) and PERIPHCLK is 1/2 of that,
> i.e 9.25 MHz.

So at least we are on the right path. But it looks to me that this
call is not getting propagated well.

>From the attachment you gave initially, the event handler for
twd-timers is: tick_handle_periodic(). i.e. you are running in
periodic mode and not onshot...

why ?

> Yes, I do, but I was trying to use as much generic code as
> possible to limit the chances of introducing bugs.

Hmm..

> I'll take a fresh look at the ARM GLOBAL TIMER, but last I
> checked, it didn't seem to handle frequency scaling.

why is that required? Why will you change its freq ?
The same timer is probably used for SPEAr (the platform
I used to work on):

http://lxr.free-electrons.com/source/arch/arm/mach-spear/time.c?v=3.14



More information about the linux-arm-kernel mailing list