COHERENT manpages
This page displays the COHERENT manpage for idle [Device that returns system's idle time].
List of available manpages
Index
idle -- Device
Device that returns system's idle time
/dev/idle
/dev/idle is the device from which you can read the system's idle time. It
has major device 0, the same as /dev/null and /dev/cmos; and has minor
number 11. This non-portable device node is used exclusively for tracking
system load. Its driver recognizes the system calls open(), ioctl(), and
close(), but not read() or write().
The only available ioctl() for /dev/idle writes a pair of longs to an
address that you supply. The long at the lower address contains the number
of system idle clock ticks (or, more precisely, the number of ticks at the
end of which the system was idle) that have occurred since system startup.
The long at the higher address contains the total number of clock ticks
that have occurred since system startup. To estimate system load during a
specific interval of time, perform the ioctl() for /dev/idle at the start
and end of an interval.
Example
The following program prints system load over a five-second interval. To
see a nonzero load percentage, run it concurrently with a CPU-intensive
process.
#include <sys/null.h>
main()
{
long x[2]; /* tick values at start of interval */
long y[2]; /* tick values at end of interval */
long delta_idle, delta_lbolt;
int fd;
/* We need to open a device before we can ioctl it. */
fd = open("/dev/idle", 0);
/* Get tick values at start of interval. */
ioctl(fd, NLIDLE, x);
/* Sleep during the interval. */
sleep(5);
/* Get tick values at end of interval. */
ioctl(fd, NLIDLE, y);
/* Compute number of system idle ticks during the interval. */
delta_idle = y[0] - x[0];
/* Compute total number of clock ticks during the interval. */
delta_lbolt = y[1] - x[1];
/* System is loaded when it isn't idle, so system load factor
* is 100% minus the percentage of system idle time.
*/
printf("system load = %ld%%\n",
100L - (100L * delta_idle)/delta_lbolt);
close(fd);
}
See Also
device drivers,
ioctl(),
null




