On 08/11/2023 04:45, Xingyu Wu wrote:
On 2023/11/2 22:29, Daniel Lezcano wrote:
[ ... ]
Thanks. The riscv-timer has a clocksource with a higher rating but a
clockevent with lower rating[1] than jh7110-timer. I tested the
jh7110-timer as clockevent and flagged as one shot, which could do
some of the works instead of riscv-timer. And the current_clockevent
changed to jh7110-timer.
Because the jh7110-timer works as clocksource with lower rating and
only will be used as global timer at CPU idle time. Is it necessary
to be registered as clocksource? If not, should it just be registered
as clockevent?
Yes, you can register the clockevent without the clocksource.
You mentioned the JH7110 has a better rating than the CPU architected
timers. The rating is there to "choose" the best timer, so it is up to
the author of the driver check against which timers it compares on the
platform.
Usually, CPU timers are the best.
It is surprising the timer-riscv has a so low rating. You may double
check if jh7110 is really better. If it is the case, then implementing a
clockevent per cpu would make more sense, otherwise one clockevent as a
global timer is enough.
Unused clocksource, clockevents should be stopped in case the firmware
let them in a undetermined state.
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git/tree/drivers/clocksource/timer-riscv.c#n45
Thanks, Xingyu Wu
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog