From: grygorii.strashko@ti.com (Grygorii Strashko)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] clocksource/arm_global_timer.c: Reduce the rating from 300 to 150
Date: Thu, 17 Mar 2016 19:06:52 +0200 [thread overview]
Message-ID: <56EAE42C.3010001@ti.com> (raw)
In-Reply-To: <1458198933-3397-1-git-send-email-mike.looijmans@topic.nl>
Hi Mike,
On 03/17/2016 09:15 AM, Mike Looijmans wrote:
> The arm_global_timer clock runs on the CPU clock, and does not correct
> for cpufreq scaling. This makes the clock not very suitable as a
> clocksource, and basically any clock running on an independent
> oscilator is preferable. Few clocksources have a rating over 300,
> so this clock usually gets selected as clock source.
>
> On the Zynq-7000 for example, the TTC clock on the chip is preferred
> to the global timer, because the TTC can at least compensate for
> cpufreq scaling. That makes the TTC (which rates itself 200) a much
> better clock source than the ARM global timer.
>
> Reduce the rating to 150 to make systems select the ARM global timer
> as a last resort instead of a first choice.
Yeh. All this clocksource/clockevent/sched_clock selection process is not really clear and
not always works in case of muliplatform build :..(
For example, I've had opposite case recently :( I have to reduce rating of OMAP gp_timer (300->290),
so it will be possible to use ARM GT as clocksource when no-CPUFrq and no-CPUIdle.
When I've tried to deal with it, I've been thinking about smth. like this:
- explicitly define set and initialization sequence of devices
chosen {
linux,clocksource = <&clksrc1>, <&clksrc2>..
linux,clockevent = <&clkevt1>, <&clkevt2>..
- or mark devices's nodes
timer1: timer at 4ae18000 {
compatible = "ti,omap5430-timer";
linux,clocksource;
linux,clockevent;
but I were not able to proceed further due lack of time (^ might cause difficult DT discussion).
Would it work for you if it will be possible to simply disable ARM GT when needed [1]?
[1] http://www.spinics.net/lists/arm-kernel/msg480166.html
>
> Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
> ---
> drivers/clocksource/arm_global_timer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clocksource/arm_global_timer.c b/drivers/clocksource/arm_global_timer.c
> index 9df0d16..bb410eb 100644
> --- a/drivers/clocksource/arm_global_timer.c
> +++ b/drivers/clocksource/arm_global_timer.c
> @@ -209,7 +209,7 @@ static void gt_resume(struct clocksource *cs)
>
> static struct clocksource gt_clocksource = {
> .name = "arm_global_timer",
> - .rating = 300,
> + .rating = 150,
> .read = gt_clocksource_read,
> .mask = CLOCKSOURCE_MASK(64),
> .flags = CLOCK_SOURCE_IS_CONTINUOUS,
>
--
regards,
-grygorii
WARNING: multiple messages have this Message-ID (diff)
From: Grygorii Strashko <grygorii.strashko@ti.com>
To: Mike Looijmans <mike.looijmans@topic.nl>,
<srinivas.kandagatla@gmail.com>,
<linux-arm-kernel@lists.infradead.org>
Cc: <kernel@stlinux.com>, <daniel.lezcano@linaro.org>,
<linux-kernel@vger.kernel.org>, <michal.simek@xilinx.com>,
<patrice.chotard@st.com>, <tglx@linutronix.de>,
<wouter.van.gulik@mep-telecom.com>, <soren.brinkmann@xilinx.com>
Subject: Re: [PATCH] clocksource/arm_global_timer.c: Reduce the rating from 300 to 150
Date: Thu, 17 Mar 2016 19:06:52 +0200 [thread overview]
Message-ID: <56EAE42C.3010001@ti.com> (raw)
In-Reply-To: <1458198933-3397-1-git-send-email-mike.looijmans@topic.nl>
Hi Mike,
On 03/17/2016 09:15 AM, Mike Looijmans wrote:
> The arm_global_timer clock runs on the CPU clock, and does not correct
> for cpufreq scaling. This makes the clock not very suitable as a
> clocksource, and basically any clock running on an independent
> oscilator is preferable. Few clocksources have a rating over 300,
> so this clock usually gets selected as clock source.
>
> On the Zynq-7000 for example, the TTC clock on the chip is preferred
> to the global timer, because the TTC can at least compensate for
> cpufreq scaling. That makes the TTC (which rates itself 200) a much
> better clock source than the ARM global timer.
>
> Reduce the rating to 150 to make systems select the ARM global timer
> as a last resort instead of a first choice.
Yeh. All this clocksource/clockevent/sched_clock selection process is not really clear and
not always works in case of muliplatform build :..(
For example, I've had opposite case recently :( I have to reduce rating of OMAP gp_timer (300->290),
so it will be possible to use ARM GT as clocksource when no-CPUFrq and no-CPUIdle.
When I've tried to deal with it, I've been thinking about smth. like this:
- explicitly define set and initialization sequence of devices
chosen {
linux,clocksource = <&clksrc1>, <&clksrc2>..
linux,clockevent = <&clkevt1>, <&clkevt2>..
- or mark devices's nodes
timer1: timer@4ae18000 {
compatible = "ti,omap5430-timer";
linux,clocksource;
linux,clockevent;
but I were not able to proceed further due lack of time (^ might cause difficult DT discussion).
Would it work for you if it will be possible to simply disable ARM GT when needed [1]?
[1] http://www.spinics.net/lists/arm-kernel/msg480166.html
>
> Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
> ---
> drivers/clocksource/arm_global_timer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clocksource/arm_global_timer.c b/drivers/clocksource/arm_global_timer.c
> index 9df0d16..bb410eb 100644
> --- a/drivers/clocksource/arm_global_timer.c
> +++ b/drivers/clocksource/arm_global_timer.c
> @@ -209,7 +209,7 @@ static void gt_resume(struct clocksource *cs)
>
> static struct clocksource gt_clocksource = {
> .name = "arm_global_timer",
> - .rating = 300,
> + .rating = 150,
> .read = gt_clocksource_read,
> .mask = CLOCKSOURCE_MASK(64),
> .flags = CLOCK_SOURCE_IS_CONTINUOUS,
>
--
regards,
-grygorii
next prev parent reply other threads:[~2016-03-17 17:06 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-17 7:15 [PATCH] clocksource/arm_global_timer.c: Reduce the rating from 300 to 150 Mike Looijmans
2016-03-17 7:15 ` Mike Looijmans
2016-03-17 17:06 ` Grygorii Strashko [this message]
2016-03-17 17:06 ` Grygorii Strashko
2016-03-18 7:12 ` Mike Looijmans
2016-03-18 7:12 ` Mike Looijmans
2016-03-19 12:40 ` Afzal Mohammed
2016-03-19 12:40 ` Afzal Mohammed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56EAE42C.3010001@ti.com \
--to=grygorii.strashko@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.