Re: how to list the current HZ value?

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

 



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;
}


--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



[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