From: santosh.shilimkar@ti•com (Santosh Shilimkar)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH 1/3] ARM: OMAP2+: 32k-counter: Use hwmod lookup to check presence of 32k timer
Date: Thu, 05 Apr 2012 16:16:35 +0530 [thread overview]
Message-ID: <4F7D780B.9070201@ti.com> (raw)
In-Reply-To: <79CD15C6BA57404B839C016229A409A831848621@DBDE01.ent.ti.com>
On Thursday 05 April 2012 04:01 PM, Hiremath, Vaibhav wrote:
> On Thu, Apr 05, 2012 at 15:22:21, Russell King - ARM Linux wrote:
>> On Thu, Apr 05, 2012 at 09:36:00AM +0000, Hiremath, Vaibhav wrote:
>>> There seems to be limitation for ARM architecture, it is restricted by
>>> sched_clock implementation present in "arch/arm/kernel/sched_clock.c".
>>> Natively, clocksource framework does support change in rate/frequency for
>>> registered timer, using,
>>
>> Any kind of switching of timing sources introduces loss of time issues
>> by the mere fact that you can't instantly know the counter values of
>> both timing sources at precisely the same instant - because CPUs can
>> only do one thing at a time. So any kind of repeated dynamic switching
>> _will_ result in a gradual loss of time - which will be indeterminant
>> as it depends on the frequency of the switching and the relative delta
>> between the two.
>>
>> To put it another way - it is not possible to maintain high precision
>> and accuracy while dynamically switching your timing sources.
>>
>> I'm not about to lift the restriction that there's only one source for
>> sched_clock() just for OMAP. That'd require a lot of additional code -
>> it's not just about adjusting the multiplier and shift, you also have to
>> correct the returned ns value as well, which means synchronizing against
>> two counters. (And as I've pointed out above, that's impossible to do
>> accurately.)
>>
>
> Thanks a ton Russell for confirming on this,
>
> I understand, we also have to adjust ns value and such confirmation is what exactly I was looking for.
>
> So this means, we have to use compile time option, as existing
> implementation in "arch/arm/mach-omap2/timer.c".
>
> Thanks again, I will repost patches shortly with the code changes (mentioned
> in my last email)
>
I suggest you wait for Kevin and Tony to look at it.
Am still going back to what I proposed initially.
Why not the conditional way as shown in the patch [1] I proposed or
your initial patch with some updates? Something like this.
if(commandline.clksource == gpt)
omap2_gptimer_clocksource_init(gptimer_id, fck_source);
else if (omap_init_clocksource_32k())
omap2_gptimer_clocksource_init(gptimer_id, fck_source);
This won't need compile time option and gives you all everybody wants.
1. Ability to use gpt as a clock-source for perf like stuff
2. Hardware like AMXX where 32K synctimer doesn't exist which means
omap_init_clocksource_32k() will fail and use gptimer.
3. For OMAP, it will continue to use 32K sync timer.
What am I missing Vaibhav?
Regards
Santosh
next prev parent reply other threads:[~2012-04-05 10:46 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-19 14:28 [PATCH 0/3] ARM: OMAP1/2+: 32k-timer: Add hwmod lookup for 32k-timer Vaibhav Hiremath
2012-01-19 14:28 ` [PATCH 1/3] ARM: OMAP2+: 32k-counter: Use hwmod lookup to check presence of 32k timer Vaibhav Hiremath
2012-01-23 23:38 ` Kevin Hilman
2012-01-24 8:53 ` Hiremath, Vaibhav
2012-01-24 17:47 ` Kevin Hilman
2012-02-01 8:00 ` Hiremath, Vaibhav
2012-03-13 11:37 ` Ming Lei
2012-03-19 11:11 ` Hiremath, Vaibhav
2012-03-19 11:44 ` Ming Lei
2012-03-19 12:15 ` Santosh Shilimkar
2012-03-21 11:42 ` Hiremath, Vaibhav
2012-03-21 14:00 ` Shilimkar, Santosh
2012-03-28 14:16 ` Hiremath, Vaibhav
2012-03-28 14:20 ` Shilimkar, Santosh
2012-03-28 14:37 ` Hiremath, Vaibhav
2012-03-28 14:49 ` Shilimkar, Santosh
2012-03-30 6:34 ` Hiremath, Vaibhav
2012-03-30 7:41 ` Shilimkar, Santosh
2012-03-30 8:32 ` Hiremath, Vaibhav
2012-03-30 8:38 ` Santosh Shilimkar
2012-03-30 9:12 ` Hiremath, Vaibhav
2012-03-30 9:20 ` Shilimkar, Santosh
2012-03-30 9:28 ` Hiremath, Vaibhav
2012-03-30 9:42 ` Shilimkar, Santosh
2012-03-30 11:29 ` Hiremath, Vaibhav
2012-03-30 11:35 ` Santosh Shilimkar
2012-03-31 1:30 ` Ming Lei
2012-03-31 6:30 ` Shilimkar, Santosh
2012-03-31 8:39 ` Ming Lei
2012-03-31 19:10 ` Shilimkar, Santosh
2012-04-01 1:39 ` Ming Lei
2012-04-01 5:53 ` Shilimkar, Santosh
2012-04-02 18:35 ` Kevin Hilman
2012-04-03 5:50 ` Shilimkar, Santosh
2012-04-03 15:35 ` Hiremath, Vaibhav
2012-04-04 9:04 ` Shilimkar, Santosh
2012-04-04 10:39 ` Hiremath, Vaibhav
2012-04-05 9:36 ` Hiremath, Vaibhav
2012-04-05 9:52 ` Russell King - ARM Linux
2012-04-05 10:31 ` Hiremath, Vaibhav
2012-04-05 10:46 ` Santosh Shilimkar [this message]
2012-04-05 21:33 ` Kevin Hilman
2012-04-06 5:21 ` Hiremath, Vaibhav
2012-04-06 18:04 ` Tony Lindgren
2012-04-09 6:19 ` Hiremath, Vaibhav
2012-04-09 20:18 ` Jon Hunter
2012-04-10 5:42 ` Hiremath, Vaibhav
2012-04-10 8:44 ` Russell King - ARM Linux
2012-04-10 8:57 ` Santosh Shilimkar
2012-04-10 9:29 ` Russell King - ARM Linux
2012-04-10 9:51 ` Shilimkar, Santosh
2012-04-10 21:03 ` Jon Hunter
2012-04-11 1:00 ` Ming Lei
2012-04-11 7:47 ` Shilimkar, Santosh
2012-04-06 21:18 ` Kevin Hilman
2012-04-09 6:25 ` Hiremath, Vaibhav
2012-03-21 11:29 ` Hiremath, Vaibhav
2012-03-23 8:20 ` Ming Lei
2012-03-30 6:39 ` Hiremath, Vaibhav
2012-03-05 22:55 ` Tony Lindgren
2012-03-07 9:48 ` Hiremath, Vaibhav
2012-03-09 17:58 ` Hiremath, Vaibhav
2012-03-12 9:39 ` Felipe Balbi
2012-03-12 9:48 ` Hiremath, Vaibhav
2012-03-12 10:17 ` Felipe Balbi
2012-03-12 10:39 ` Hiremath, Vaibhav
2012-01-19 14:28 ` [PATCH 2/3] ARM: OMAP2/3: Add idle_st bits for ST_32KSYNC timer to prcm-common header Vaibhav Hiremath
2012-03-05 22:56 ` Tony Lindgren
2012-03-07 9:49 ` Hiremath, Vaibhav
2012-01-19 14:28 ` [PATCH 3/3] ARM: OMAP2+: hwmod data: Add 32k-sync timer data to hwmod database Vaibhav Hiremath
2012-01-23 8:47 ` [PATCH 0/3] ARM: OMAP1/2+: 32k-timer: Add hwmod lookup for 32k-timer Hiremath, Vaibhav
2012-03-05 22:57 ` Tony Lindgren
2012-03-07 9:50 ` Hiremath, Vaibhav
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=4F7D780B.9070201@ti.com \
--to=santosh.shilimkar@ti$(echo .)com \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox