Re: PATCH [0/3]: Simplify the kernel build by removing perl.

David Brownell
2009-01-04T01:39:43Z

On Saturday 03 January 2009, Robert Hancock wrote:
> Rob Landley wrote:
> > ... some architectures (arm omap and and arm at91)
> > allow you to enter arbitrary HZ values in kconfig. (Their help text says that
> > in many cases values that aren't powers of two won't work, but nothing
> > enforces this.)
>
> Is there a good reason that these archs allow you enter arbitrary HZ
> values?

Power-of-two can be desirable when using a 32 KiHz oscillator, because
other values accumulate rounding errors ... you can't make 100 Hz, or
250 Hz, or 300 Hz, or 1000 Hz, by a binary division of 32 KiHz.

Other values were supported to help work around stupid software making
bad assumptions about HZ. IMO, enforcing power-of-two would be better;
that software breaks with dyntick anyway, and needs fixing.

> The use case for using custom HZ values at all nowadays seems
> fairly low now that dynticks is around (if that arch supports it
> anyway),

A better argument would be that GENERIC_TIME exists (and works
on OMAP and AT91), which avoids some flavors of rounding error.
ISTR those CONFIG_HZ options predate GENERIC_TIME support.

However, the issue remains that most kernel times are measured in
jiffies not ktime_t -- they're easier and more efficient, all
those 64-bit multiplies can hurt on ARM (32-bit, non-GHz) -- so
it's still good to be able to ensure that jiffies-centric logic
won't always be inserting easily avoidable errors.

- Dave