Re: One of these things (CONFIG_HZ) is not like the others..

From: Russell King - ARM Linux
Date: Mon Jan 21 2013 - 16:03:48 EST


On Mon, Jan 21, 2013 at 08:41:17PM +0000, Arnd Bergmann wrote:
> On Monday 21 January 2013, Matt Sealey wrote:
> >
> > ARM seems to be the only "major" platform not using the
> > kernel/Kconfig.hz definitions, instead rolling it's own and setting
> > what could be described as both reasonable and unreasonable defaults
> > for platforms.

No, you've got this totally wrong.

They're not defaults. And I object to your use of "unreasonable" too.
I've no idea where you get that from.

There's a reason why we have different HZ rates - some platforms just
can't do the standard 100Hz tick rate. No way - their timers can't
divide down to that interrupt rate. Sorry to spoil your ivory tower
with a few facts, but your statement is just rediculous.

The reason we don't use kernel/Kconfig.hz is precisely because of that;
we _HAVE_ to have different HZ definitions on different platforms, and
you'll notice that kernel/Kconfig.hz makes _no_ prevision for this.

Now, while things have moved forwards and we have clocksource/clockevent
support, not every platform can support this timekeeping structure;
ebsa110 certainly can't. There's one timer and one timer only which
is usable, which even needs to be manually reloaded by the CPU. No
other independent counter to act as a clock source.

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.

It's entirely possible with the modern clocksource/clockevent support
that many of these platforms can have their alternative HZ tick rates
removed - but there will continue to be a subset which can't, and all
the time that we have such a subset, kernel/Kconfig.hz can't be used
without modification.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/