Re: finding out the value of HZ from userspace

From: Peter Williams
Date: Mon Mar 15 2004 - 19:41:31 EST


Arjan van de Ven wrote:
On Sat, Mar 13, 2004 at 11:34:37AM -0800, John Reiser wrote:

Arjan van de Ven wrote:

On Thu, 2004-03-11 at 15:17, Micha Feigin wrote:


Is it possible to find out what the kernel's notion of HZ is from user
space?
It seem to change from system to system and between 2.4 (100 on i386)
to 2.6 (1000 on i386).


if you can see 1000 from userspace that is a bad kernel bug; can you say
where you find something in units of 1000 ?

create_elf_tables() in fs/binfmt_elf.c tells every ELF execve():
NEW_AUX_ENT(AT_CLKTCK, CLOCKS_PER_SEC);
which can be found by crawling through the stack above the pointer
to the last environment variable.


Ugh that should say 100 on x86....
but..
param.h:# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
param.h:# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
.....
that looks like 100 to me.


This horrible hack of converting all tick values to 100 (from 1000) for export to user space because a large number of user space programs assume that HZ is 100 would NOT be necessary if there was a mechanism whereby user space programs could find out how many ticks there are in a second instead of having to make assumptions.

I think that providing such a mechanism should be a priority and when it's been available for a reasonable amount time (so that the user space programs can be converted to using it) USER_HZ should become equal to HZ.

Another alternative would be to stop exporting time as ticks and use some standard unit for all systems. The chosen unit should be small enough (e.g. microseconds or mybe even nanoseconds) so that no information is lost (which it is in the current implementation) on conversion from ticks to these units. Of course 64 bit integers would be needed.

Peter
--
Dr Peter Williams, Chief Scientist peterw@xxxxxxxxxx
Aurema Pty Limited Tel:+61 2 9698 2322
PO Box 305, Strawberry Hills NSW 2012, Australia Fax:+61 2 9699 9174
79 Myrtle Street, Chippendale NSW 2008, Australia http://www.aurema.com


-
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/