]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man2/sched_rr_get_interval.2
sched_get_priority_max.2: Small changes consistent with migration of content to sched(7)
[thirdparty/man-pages.git] / man2 / sched_rr_get_interval.2
CommitLineData
fea681da
MK
1.\" Copyright (C) Tom Bjorkholm & Markus Kuhn, 1996
2.\"
1dd72f9c 3.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
fea681da
MK
4.\" This is free documentation; you can redistribute it and/or
5.\" modify it under the terms of the GNU General Public License as
6.\" published by the Free Software Foundation; either version 2 of
7.\" the License, or (at your option) any later version.
8.\"
9.\" The GNU General Public License's references to "object code"
10.\" and "executables" are to be interpreted as the output of any
11.\" document formatting or typesetting system, including
12.\" intermediate and printed output.
13.\"
14.\" This manual is distributed in the hope that it will be useful,
15.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17.\" GNU General Public License for more details.
18.\"
19.\" You should have received a copy of the GNU General Public
c715f741
MK
20.\" License along with this manual; if not, see
21.\" <http://www.gnu.org/licenses/>.
6a8d8745 22.\" %%%LICENSE_END
fea681da
MK
23.\"
24.\" 1996-04-01 Tom Bjorkholm <tomb@mydata.se>
25.\" First version written
26.\" 1996-04-10 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
27.\" revision
28.\"
65656807 29.TH SCHED_RR_GET_INTERVAL 2 2013-03-18 "Linux" "Linux Programmer's Manual"
fea681da 30.SH NAME
273691af 31sched_rr_get_interval \- get the SCHED_RR interval for the named process
fea681da
MK
32.SH SYNOPSIS
33.B #include <sched.h>
34.sp
c307030c 35.BI "int sched_rr_get_interval(pid_t " pid ", struct timespec * " tp );
fea681da 36.SH DESCRIPTION
e511ffb6 37.BR sched_rr_get_interval ()
ca016ea9
MK
38writes into the
39.I timespec
40structure pointed to by
41.I tp
42the round-robin time quantum for the process identified by
43.IR pid .
4e2621b5
MK
44The specified process should be running under the
45.B SCHED_RR
46scheduling policy.
1bef0ec2 47
ca016ea9
MK
48The
49.I timespec
50structure has the following form:
1bef0ec2 51
088a639b 52.in +4n
1bef0ec2
MK
53.nf
54struct timespec {
55 time_t tv_sec; /* seconds */
56 long tv_nsec; /* nanoseconds */
57};
58.fi
273691af 59.in
1bef0ec2
MK
60
61If
ca016ea9
MK
62.I pid
63is zero, the time quantum for the calling process is written into
64.IR *tp .
8d30cbf4
MK
65.\" FIXME . On Linux, sched_rr_get_interval()
66.\" returns the timeslice for SCHED_OTHER processes -- this timeslice
67.\" is influenced by the nice value.
68.\" For SCHED_FIFO processes, this always returns 0.
69.\"
273691af
MK
70.\" The round-robin time quantum value is not alterable under Linux
71.\" 1.3.81.
c13182ef 72.\"
47297adb 73.SH RETURN VALUE
fea681da 74On success,
e511ffb6 75.BR sched_rr_get_interval ()
fea681da
MK
76returns 0.
77On error, \-1 is returned, and
78.I errno
79is set appropriately.
80.SH ERRORS
81.TP
82.B EFAULT
7fac88a9 83Problem with copying information to user space.
fea681da
MK
84.TP
85.B EINVAL
86Invalid pid.
87.TP
88.B ENOSYS
273691af 89The system call is not yet implemented (only on rather old kernels).
fea681da
MK
90.TP
91.B ESRCH
585d3814
MK
92Could not find a process with the ID
93.IR pid .
47297adb 94.SH CONFORMING TO
97c1eac8 95POSIX.1-2001.
4fb31341 96.SH NOTES
4e2621b5
MK
97POSIX systems on which
98.BR sched_rr_get_interval ()
99is available define
100.B _POSIX_PRIORITY_SCHEDULING
ca016ea9
MK
101in
102.IR <unistd.h> .
c634028a 103.SS Linux notes
273691af
MK
104POSIX does not specify any mechanism for controlling the size of the
105round-robin time quantum.
45b4eda6 106Older Linux kernels provide a (nonportable) method of doing this.
273691af
MK
107The quantum can be controlled by adjusting the process's nice value (see
108.BR setpriority (2)).
109Assigning a negative (i.e., high) nice value results in a longer quantum;
110assigning a positive (i.e., low) nice value results in a shorter quantum.
111The default quantum is 0.1 seconds;
c13182ef 112the degree to which changing the nice value affects the
273691af 113quantum has varied somewhat across kernel versions.
65656807 114This method of adjusting the quantum was removed
45b4eda6 115.\" commit a4ec24b48ddef1e93f7578be53270f0b95ad666c
65656807
MK
116starting with Linux 2.6.24.
117
118Linux 3.9 added
119.\" commit ce0dbbbb30aee6a835511d5be446462388ba9eee
120a new mechanism for adjusting (and viewing) the
45b4eda6 121.BR SCHED_RR
65656807
MK
122quantum: the
123.I /proc/sys/kernel/sched_rr_timeslice_ms
124file exposes the quantum as a millisecond value, whose default is 100.
125Writing 0 to this file resets the quantum to the default value.
273691af 126.\" .SH BUGS
988db661 127.\" As of Linux 1.3.81
a4401275
MK
128.\" .BR sched_rr_get_interval ()
129.\" returns with error
273691af
MK
130.\" ENOSYS, because SCHED_RR has not yet been fully implemented and tested
131.\" properly.
47297adb 132.SH SEE ALSO
fea681da
MK
133.BR sched_setscheduler (2)
134has a description of the Linux scheduling scheme.
135.PP
136.I Programming for the real world \- POSIX.4
173fe7e7 137by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0.