ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
i am having linux kernel version 2.4.21-138 (suse 8),
some times i observe that in /proc/stat file the count of cpu_idle
field will be geeting decremented if i cat the /proc/stat file two times.
since these are the statistics that will be from the system uptime,
i believe either the value should be same or incremented.
i think it is a bug in kernel code...
Also can any one let me know how top calculates the CPU usage??
The amount of time, measured in units of USER_HZ (1/100ths of a second on most architecures), that the system spent in
user mode, user mode with low priority (nice), system mode, and the idle task, respectively. The last value should be
USER_HZ times the second entry in the uptime pseudo-file.
This is from proc/sysinfo.c, which is included in the procps package. This is where the source for 'top' includes...
* Some values in /proc are expressed in units of 1/HZ seconds, where HZ
* is the kernel clock tick rate. One of these units is called a jiffy.
* The HZ value used in the kernel may vary according to hacker desire.
* According to Linus Torvalds, this is not true. He considers the values
* in /proc as being in architecture-dependant units that have no relation
* to the kernel clock tick rate. Examination of the kernel source code
* reveals that opinion as wishful thinking.
* In any case, we need the HZ constant as used in /proc. (the real HZ value
* may differ, but we don't care) There are several ways we could get HZ:
* 1. Include the kernel header file. If it changes, recompile this library.
* 2. Use the sysconf() function. When HZ changes, recompile the C library!
* 3. Ask the kernel. This is obviously correct...
* Linus Torvalds won't let us ask the kernel, because he thinks we should
* not know the HZ value. Oh well, we don't have to listen to him.
* Someone smuggled out the HZ value. :-)