All of lore.kernel.org
 help / color / mirror / Atom feed
From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: "Hiremath, Vaibhav" <hvaibhav@ti.com>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>,
	"Hilman, Kevin" <khilman@ti.com>,
	Ming Lei <tom.leiming@gmail.com>,
	Tony Lindgren <tony@atomide.com>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"marc.zyngier@arm.com" <marc.zyngier@arm.com>,
	"johnstul@us.ibm.com" <johnstul@us.ibm.com>,
	"Balbi, Felipe" <balbi@ti.com>,
	"Cousson, Benoit" <b-cousson@ti.com>,
	Paul Walmsley <paul@pwsan.com>,
	"DebBarma, Tarun Kanti" <tarun.kanti@ti.com>
Subject: Re: [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






WARNING: multiple messages have this Message-ID (diff)
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

  reply	other threads:[~2012-04-05 10:46 UTC|newest]

Thread overview: 146+ 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 ` 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-19 14:28   ` Vaibhav Hiremath
2012-01-23 23:38   ` Kevin Hilman
2012-01-23 23:38     ` Kevin Hilman
2012-01-24  8:53     ` Hiremath, Vaibhav
2012-01-24  8:53       ` Hiremath, Vaibhav
2012-01-24 17:47       ` Kevin Hilman
2012-01-24 17:47         ` Kevin Hilman
2012-02-01  8:00         ` Hiremath, Vaibhav
2012-02-01  8:00           ` Hiremath, Vaibhav
2012-03-13 11:37     ` Ming Lei
2012-03-13 11:37       ` Ming Lei
2012-03-19 11:11       ` Hiremath, Vaibhav
2012-03-19 11:11         ` Hiremath, Vaibhav
2012-03-19 11:44         ` Ming Lei
2012-03-19 11:44           ` Ming Lei
2012-03-19 12:15           ` Santosh Shilimkar
2012-03-19 12:15             ` Santosh Shilimkar
2012-03-21 11:42             ` Hiremath, Vaibhav
2012-03-21 11:42               ` Hiremath, Vaibhav
2012-03-21 14:00               ` Shilimkar, Santosh
2012-03-21 14:00                 ` Shilimkar, Santosh
2012-03-28 14:16                 ` Hiremath, Vaibhav
2012-03-28 14:16                   ` Hiremath, Vaibhav
2012-03-28 14:20                   ` Shilimkar, Santosh
2012-03-28 14:20                     ` Shilimkar, Santosh
2012-03-28 14:37                     ` Hiremath, Vaibhav
2012-03-28 14:37                       ` Hiremath, Vaibhav
2012-03-28 14:49                       ` Shilimkar, Santosh
2012-03-28 14:49                         ` Shilimkar, Santosh
2012-03-30  6:34                         ` Hiremath, Vaibhav
2012-03-30  6:34                           ` Hiremath, Vaibhav
2012-03-30  7:41                           ` Shilimkar, Santosh
2012-03-30  7:41                             ` Shilimkar, Santosh
2012-03-30  8:32                             ` Hiremath, Vaibhav
2012-03-30  8:32                               ` Hiremath, Vaibhav
2012-03-30  8:38                               ` Santosh Shilimkar
2012-03-30  8:38                                 ` Santosh Shilimkar
2012-03-30  9:12                                 ` Hiremath, Vaibhav
2012-03-30  9:12                                   ` Hiremath, Vaibhav
2012-03-30  9:20                                   ` Shilimkar, Santosh
2012-03-30  9:20                                     ` Shilimkar, Santosh
2012-03-30  9:28                                     ` Hiremath, Vaibhav
2012-03-30  9:28                                       ` Hiremath, Vaibhav
2012-03-30  9:42                                       ` Shilimkar, Santosh
2012-03-30  9:42                                         ` Shilimkar, Santosh
2012-03-30 11:29                                         ` Hiremath, Vaibhav
2012-03-30 11:29                                           ` Hiremath, Vaibhav
2012-03-30 11:35                                           ` Santosh Shilimkar
2012-03-30 11:35                                             ` Santosh Shilimkar
2012-03-31  1:30                                     ` Ming Lei
2012-03-31  1:30                                       ` Ming Lei
2012-03-31  6:30                                       ` Shilimkar, Santosh
2012-03-31  6:30                                         ` Shilimkar, Santosh
2012-03-31  8:39                                         ` Ming Lei
2012-03-31  8:39                                           ` Ming Lei
2012-03-31 19:10                                           ` Shilimkar, Santosh
2012-03-31 19:10                                             ` Shilimkar, Santosh
2012-04-01  1:39                                             ` Ming Lei
2012-04-01  1:39                                               ` Ming Lei
2012-04-01  5:53                                               ` Shilimkar, Santosh
2012-04-01  5:53                                                 ` Shilimkar, Santosh
2012-04-02 18:35                                                 ` Kevin Hilman
2012-04-02 18:35                                                   ` Kevin Hilman
2012-04-03  5:50                                                   ` Shilimkar, Santosh
2012-04-03  5:50                                                     ` Shilimkar, Santosh
2012-04-03 15:35                                                   ` Hiremath, Vaibhav
2012-04-03 15:35                                                     ` Hiremath, Vaibhav
2012-04-04  9:04                                                     ` Shilimkar, Santosh
2012-04-04  9:04                                                       ` Shilimkar, Santosh
2012-04-04 10:39                                                       ` Hiremath, Vaibhav
2012-04-04 10:39                                                         ` Hiremath, Vaibhav
2012-04-05  9:36                                                       ` Hiremath, Vaibhav
2012-04-05  9:36                                                         ` Hiremath, Vaibhav
2012-04-05  9:52                                                         ` Russell King - ARM Linux
2012-04-05  9:52                                                           ` Russell King - ARM Linux
2012-04-05 10:31                                                           ` Hiremath, Vaibhav
2012-04-05 10:31                                                             ` Hiremath, Vaibhav
2012-04-05 10:46                                                             ` Santosh Shilimkar [this message]
2012-04-05 10:46                                                               ` Santosh Shilimkar
2012-04-05 21:33                                                             ` Kevin Hilman
2012-04-05 21:33                                                               ` Kevin Hilman
2012-04-06  5:21                                                               ` Hiremath, Vaibhav
2012-04-06  5:21                                                                 ` Hiremath, Vaibhav
2012-04-06 18:04                                                                 ` Tony Lindgren
2012-04-06 18:04                                                                   ` Tony Lindgren
2012-04-09  6:19                                                                   ` Hiremath, Vaibhav
2012-04-09  6:19                                                                     ` Hiremath, Vaibhav
2012-04-09 20:18                                                                     ` Jon Hunter
2012-04-09 20:18                                                                       ` Jon Hunter
2012-04-10  5:42                                                                       ` Hiremath, Vaibhav
2012-04-10  5:42                                                                         ` Hiremath, Vaibhav
2012-04-10  8:44                                                                       ` Russell King - ARM Linux
2012-04-10  8:44                                                                         ` Russell King - ARM Linux
2012-04-10  8:57                                                                         ` Santosh Shilimkar
2012-04-10  8:57                                                                           ` Santosh Shilimkar
2012-04-10  9:29                                                                           ` Russell King - ARM Linux
2012-04-10  9:29                                                                             ` Russell King - ARM Linux
2012-04-10  9:51                                                                             ` Shilimkar, Santosh
2012-04-10  9:51                                                                               ` Shilimkar, Santosh
2012-04-10 21:03                                                                               ` Jon Hunter
2012-04-10 21:03                                                                                 ` Jon Hunter
2012-04-11  1:00                                                                               ` Ming Lei
2012-04-11  1:00                                                                                 ` Ming Lei
2012-04-11  7:47                                                                                 ` Shilimkar, Santosh
2012-04-11  7:47                                                                                   ` Shilimkar, Santosh
2012-04-06 21:18                                                                 ` Kevin Hilman
2012-04-06 21:18                                                                   ` Kevin Hilman
2012-04-09  6:25                                                                   ` Hiremath, Vaibhav
2012-04-09  6:25                                                                     ` Hiremath, Vaibhav
2012-03-21 11:29           ` Hiremath, Vaibhav
2012-03-21 11:29             ` Hiremath, Vaibhav
2012-03-23  8:20             ` Ming Lei
2012-03-23  8:20               ` Ming Lei
2012-03-30  6:39               ` Hiremath, Vaibhav
2012-03-30  6:39                 ` Hiremath, Vaibhav
2012-03-05 22:55   ` Tony Lindgren
2012-03-05 22:55     ` Tony Lindgren
2012-03-07  9:48     ` Hiremath, Vaibhav
2012-03-07  9:48       ` Hiremath, Vaibhav
2012-03-09 17:58     ` Hiremath, Vaibhav
2012-03-09 17:58       ` Hiremath, Vaibhav
2012-03-12  9:39       ` Felipe Balbi
2012-03-12  9:39         ` Felipe Balbi
2012-03-12  9:48         ` Hiremath, Vaibhav
2012-03-12  9:48           ` Hiremath, Vaibhav
2012-03-12 10:17           ` Felipe Balbi
2012-03-12 10:17             ` Felipe Balbi
2012-03-12 10:39             ` Hiremath, Vaibhav
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-01-19 14:28   ` Vaibhav Hiremath
2012-03-05 22:56   ` Tony Lindgren
2012-03-05 22:56     ` Tony Lindgren
2012-03-07  9:49     ` Hiremath, Vaibhav
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-19 14:28   ` Vaibhav Hiremath
2012-01-23  8:47 ` [PATCH 0/3] ARM: OMAP1/2+: 32k-timer: Add hwmod lookup for 32k-timer Hiremath, Vaibhav
2012-01-23  8:47   ` Hiremath, Vaibhav
2012-03-05 22:57   ` Tony Lindgren
2012-03-05 22:57     ` Tony Lindgren
2012-03-07  9:50     ` Hiremath, Vaibhav
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.com \
    --cc=b-cousson@ti.com \
    --cc=balbi@ti.com \
    --cc=hvaibhav@ti.com \
    --cc=johnstul@us.ibm.com \
    --cc=khilman@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=marc.zyngier@arm.com \
    --cc=paul@pwsan.com \
    --cc=tarun.kanti@ti.com \
    --cc=tom.leiming@gmail.com \
    --cc=tony@atomide.com \
    /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.