Re: how to list the current HZ value?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux