On Sat, 1 Aug 2009, Greg KH wrote: > On Fri, Jul 31, 2009 at 11:23:15AM +0700, Mulyadi Santosa wrote: > > On Fri, Jul 31, 2009 at 6:52 AM, Karel Zak<kzak@xxxxxxxxxx> wrote: > > > Linux exports HZ to userspace via AT_CLKTCK auxiliary vector entry, > > > for more details see include/linux/auxvec.h. > > > > > > The vector is area between process's environ[] and argv[]. I guess glibc > > > reads the vector for the sysconf() call. > > > > > > Karel > > > > Hi Karel... > > > > I checked that using the following command: > > $ LD_SHOW_AUXV=1 sleep 1 > > AT_SYSINFO: 0xb7fed414 > > AT_SYSINFO_EHDR: 0xb7fed000 > > AT_HWCAP: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca > > cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe > > AT_PAGESZ: 4096 > > AT_CLKTCK: 100 > > AT_PHDR: 0x8048034 > > AT_PHENT: 32 > > AT_PHNUM: 8 > > AT_BASE: 0x0 > > AT_FLAGS: 0x0 > > AT_ENTRY: 0x8048c50 > > AT_UID: 500 > > AT_EUID: 500 > > AT_GID: 500 > > AT_EGID: 500 > > AT_SECURE: 0 > > AT_??? (0x19): 0xbf84ba4b > > AT_??? (0x1f): 0xbf84cff1 > > AT_PLATFORM: i686 > > > > It seems that user space sees HZ as 100, while in fact my current > > running kernel is compiled with HZ=300. What do you think about it? Or > > is there something wrong with my conclusion? > > The following C program should properly show you the kernel HZ. > > thanks, > > greg k-h > > -------------- > > #include <unistd.h> > #include <time.h> > #include <stdio.h> > > int main() > { > struct timespec res; > double resolution; > > printf("UserHZ %ld\n", sysconf(_SC_CLK_TCK)); > > clock_getres(CLOCK_REALTIME, &res); > resolution = res.tv_sec + (((double)res.tv_nsec)/1.0e9); > > printf("SystemHZ %ld\n", (unsigned long)(1/resolution + 0.5)); > return 0; > } i already knew about sysconf. so i'm going to assume there's no simpler way to get the current HZ (either command line or /proc based). rday p.s. is there any reason why one couldn't submit a patch to add that value to /proc? surely the addition of, say, /proc/hz wouldn't be ridiculously disruptive. -- ======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA Linux Consulting, Training and Annoying Kernel Pedantry. Web page: http://crashcourse.ca Twitter: http://twitter.com/rpjday "Kernel Newbie Corner" column @ linux.com: http://cli.gs/WG6WYX ========================================================================