SCHED_RR_GET_INTERVAL(2) Linux Programmer's Manual SCHED_RR_GET_INTERVAL(2)

sched_rr_get_interval - get the SCHED_RR interval for the named process

#include <sched.h>

int sched_rr_get_interval(pid_t pid, struct timespec * tp);

sched_rr_get_interval() writes into the timespec structure pointed to by tp the round-robin time quantum for the process identified by pid. The specified process should be running under the SCHED_RR scheduling policy.

The timespec structure has the following form:


struct timespec {

    time_t tv_sec;    /* seconds */

    long   tv_nsec;   /* nanoseconds */
};

If pid is zero, the time quantum for the calling process is written into *tp.

On success, sched_rr_get_interval() returns 0. On error, -1 is returned, and errno is set appropriately.

Problem with copying information to userspace.
Invalid pid.
The system call is not yet implemented (only on rather old kernels).
Could not find a process with the ID pid.

POSIX.1-2001.

POSIX systems on which sched_rr_get_interval() is available define _POSIX_PRIORITY_SCHEDULING in <unistd.h>.

POSIX does not specify any mechanism for controlling the size of the round-robin time quantum. Older Linux kernels provide a (nonportable) method of doing this. The quantum can be controlled by adjusting the process's nice value (see setpriority(2)). Assigning a negative (i.e., high) nice value results in a longer quantum; assigning a positive (i.e., low) nice value results in a shorter quantum. The default quantum is 0.1 seconds; the degree to which changing the nice value affects the quantum has varied somewhat across kernel versions. Since Linux 2.6.24, the SCHED_RR quantum cannot be modified.

sched_setscheduler(2) has a description of the Linux scheduling scheme.

Programming for the real world - POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0

This page is part of release 3.37 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.

2011-10-16 Linux

Different Versions of this Page: