linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Tony Lindgren <tony@atomide.com>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	Peter Zijlstra <peterz@infradead.org>,
	Matt Sealey <matt@genesi-usa.com>,
	LKML <linux-kernel@vger.kernel.org>, Ben Dooks <ben@simtec.co.uk>,
	Ingo Molnar <mingo@redhat.com>,
	John Stultz <john.stultz@linaro.org>,
	Linux ARM Kernel ML <linux-arm-kernel@lists.infradead.org>
Subject: Re: One of these things (CONFIG_HZ) is not like the others..
Date: Tue, 22 Jan 2013 15:44:03 +0530	[thread overview]
Message-ID: <50FE666B.10902@ti.com> (raw)
In-Reply-To: <201301220931.24570.arnd@arndb.de>

On Tuesday 22 January 2013 03:01 PM, Arnd Bergmann wrote:
> On Tuesday 22 January 2013, Santosh Shilimkar wrote:
>> On Tuesday 22 January 2013 04:53 AM, Tony Lindgren wrote:
>>> * Russell King - ARM Linux <linux@arm.linux.org.uk> [130121 13:07]:
>>>>
>>>> As for Samsung and the rest I can't comment.  The original reason OMAP
>>>> used this though was because the 32768Hz counter can't produce 100Hz
>>>> without a .1% error - too much error under pre-clocksource
>>>> implementations for timekeeping.  Whether that's changed with the
>>>> clocksource/clockevent support needs to be checked.
>>>
>>> Yes that's why HZ was originally set to 128. That value (or some multiple)
>>> still makes sense when the 32 KiHZ clock source is being used. Of course
>>> we should rely on the local timer when running for the SoCs that have
>>> them.
>>>
>> This is right. It was only because of the drift associated when clocked
>> with 32KHz. Even on SOCs where local timers are available for power
>> management reasons we need to switch to 32KHz clocked device in
>> low power states. Hence the HZ value should be multiple of 32 on
>> OMAP.
>
> I need some help understanding what the two of you are saying, because
> it sounds to me that you imply we cannot have a multiplatform kernel
> that includes OMAP and another platform that needs (or wants) a different
> HZ value.
>
Sorry for not being clear enough. On OMAP, 32KHz is the only clock which
is always running(even during low power states) and hence the clock
source and clock event have been clocked using 32KHz clock. As mentioned
by RMK, with 32768 Hz clock and HZ = 100, there will be always an
error of 0.1 %. This accuracy also impacts the timer tick interval.
This was the reason, OMAP has been using the HZ = 128.

There is a hardware feature to implement 1 ms correction on the timer
to overcome such an issue but it was not supported on OMAP2 devices.
OMAP3/4/5 does support it. Though one attempt [1] was made to support
it in kernel. This will ofcourse will address the tick interval
corrections.

> However, I also thought that when using a proper clocksource driver,
> the HZ setting has absolutely no impact on the drift of the wall clock,
> because those two are decoupled.
>
I am not too sure about this. I was under impression that tick (clock
event) ticking accuracy does impact the kernel time keeping as well.

> Even when using the HZ based clocksource (for whatever reason you
> would want to do that), I thought there should be no drift as long
> as the CLOCK_TICK_RATE (in older kernels) or the register_refined_jiffies()
> (in older kernels) setting matches the hardware timer frequency.
>
> What am I missing?
>
The issue is with hardware timer frequency itself since with HZ = 100 or
200, the timer tick will not be accurate. Hope this gives bit more info.

Regards,
Santosh
[1] https://patchwork.kernel.org/patch/107364/

  reply	other threads:[~2013-01-22 10:13 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-21 20:01 One of these things (CONFIG_HZ) is not like the others Matt Sealey
2013-01-21 20:41 ` Arnd Bergmann
2013-01-21 21:00   ` John Stultz
2013-01-21 21:12     ` Russell King - ARM Linux
2013-01-21 22:18       ` John Stultz
2013-01-21 22:44         ` Russell King - ARM Linux
2013-01-22  8:27           ` Arnd Bergmann
2013-01-21 22:20       ` Matt Sealey
2013-01-21 22:42         ` Russell King - ARM Linux
2013-01-21 23:23           ` Matt Sealey
2013-01-21 23:49             ` Russell King - ARM Linux
2013-01-22  0:09               ` Matt Sealey
2013-01-22  0:26                 ` Matt Sealey
2013-01-21 21:14     ` Matt Sealey
2013-01-21 22:36       ` John Stultz
2013-01-21 22:49         ` Russell King - ARM Linux
2013-01-21 22:54         ` Matt Sealey
2013-01-21 23:13           ` Russell King - ARM Linux
2013-01-21 23:30             ` Matt Sealey
2013-01-22  0:02               ` Russell King - ARM Linux
2013-01-22  0:38           ` John Stultz
2013-01-22  0:51           ` John Stultz
2013-01-22  1:06             ` Matt Sealey
2013-01-22  1:18               ` Russell King - ARM Linux
2013-01-22  1:56                 ` Matt Sealey
2013-01-22  1:31               ` John Stultz
2013-01-22  2:10                 ` Matt Sealey
2013-01-31 21:31                   ` Thomas Gleixner
2013-01-21 21:02   ` Matt Sealey
2013-01-21 22:30     ` Arnd Bergmann
2013-01-21 22:45       ` Russell King - ARM Linux
2013-01-21 23:01         ` Matt Sealey
2013-01-21 21:03   ` Russell King - ARM Linux
2013-01-21 23:23     ` Tony Lindgren
2013-01-22  6:23       ` Santosh Shilimkar
2013-01-22  9:31         ` Arnd Bergmann
2013-01-22 10:14           ` Santosh Shilimkar [this message]
2013-01-22 14:51             ` Russell King - ARM Linux
2013-01-22 15:05               ` Santosh Shilimkar
2013-01-28  6:08                 ` Santosh Shilimkar
2013-01-29  0:01                   ` John Stultz
2013-01-29  6:43                     ` Santosh Shilimkar
2013-01-29 10:06                       ` Russell King - ARM Linux
2013-01-29 18:43                       ` John Stultz
2013-01-22 17:31               ` Arnd Bergmann
2013-01-22 18:59               ` John Stultz
2013-01-22 21:52                 ` Tony Lindgren
2013-01-23  5:18                   ` Santosh Shilimkar

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=50FE666B.10902@ti.com \
    --to=santosh.shilimkar@ti.com \
    --cc=arnd@arndb.de \
    --cc=ben@simtec.co.uk \
    --cc=john.stultz@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=matt@genesi-usa.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).