The HZ kernel constant is not the same on all platforms. The procps library seems to need it's value however, it estimates it by measuring during a second. This patch publishes the HZ value in /proc/sys/kernel/hz for the convenience of tools that need it's value. --- linux/include/linux/sysctl.h.sysctlhz Sun May 27 14:12:56 2001 +++ linux/include/linux/sysctl.h Mon Jul 16 11:12:45 2001 @@ -118,7 +118,9 @@ KERN_SHMPATH=48, /* string: path to shm fs */ KERN_HOTPLUG=49, /* string: path to hotplug policy agent */ KERN_IEEE_EMULATION_WARNINGS=50, /* int: unimplemented ieee instructions */ - KERN_S390_USER_DEBUG_LOGGING=51 /* int: dumps of user faults */ + KERN_S390_USER_DEBUG_LOGGING=51, /* int: dumps of user faults */ + + KERN_HZ=60 /* compiled in HZ value */ }; --- linux/kernel/sysctl.c.sysctlhz Thu Apr 12 21:20:31 2001 +++ linux/kernel/sysctl.c Mon Jul 16 14:54:27 2001 @@ -16,6 +16,7 @@ * Wendling. * The list_for_each() macro wasn't appropriate for the sysctl loop. * Removed it and replaced it with older style, 03/23/00, Bill Wendling + * Added hz (HZ), 07/16/01, Rolf Fokkens */ #include @@ -153,6 +154,8 @@ {0} }; +static int hz_value = HZ; + static ctl_table kern_table[] = { {KERN_OSTYPE, "ostype", system_utsname.sysname, 64, 0444, NULL, &proc_doutsstring, &sysctl_string}, @@ -249,6 +252,8 @@ {KERN_S390_USER_DEBUG_LOGGING,"userprocess_debug", &sysctl_userprocess_debug,sizeof(int),0644,NULL,&proc_dointvec}, #endif + {KERN_HZ, "hz", &hz_value,sizeof(int), + 0444, NULL, &proc_dointvec}, {0} };