NAME
rtprio
, lwp_rtprio
— examine or modify a
process/lwp realtime or idle priority
LIBRARY
library “libc”
SYNOPSIS
#include
<sys/types.h>
#include <sys/rtprio.h>
int
rtprio
(int
function, pid_t
pid, struct rtprio
*rtp);
#include
<sys/lwp.h>
int
lwp_rtprio
(int
function, pid_t
pid, lwpid_t tid,
struct rtprio *rtp);
DESCRIPTION
rtprio
()
is used to lookup or change the realtime or idle priority of a process.
function specifies the operation to be
performed. RTP_LOOKUP
to lookup the current
priority, and RTP_SET
to set the priority.
pid specifies the process to be used, 0 for the
current process.
*rtp is a pointer to a struct rtprio which is used to specify the priority and priority type. This structure has the following form:
struct rtprio { u_short type; u_short prio; };
The value of the type
field may be
RTP_PRIO_REALTIME
for realtime priorities,
RTP_PRIO_NORMAL
for normal priorities, and
RTP_PRIO_IDLE
for idle priorities. The priority
specified by the prio
field ranges between 0 and
RTP_PRIO_MAX (usually 31)
. 0 is the highest possible
priority.
Realtime and idle priority is inherited through
fork
() and
exec
().
A realtime process can only be preempted by a process of equal or higher priority, or by an interrupt; idle priority processes will run only when no other real/normal priority process is runnable. Higher real/idle priority processes preempt lower real/idle priority processes. Processes of equal real/idle priority are run round-robin.
The
lwp_rtprio
()
function is the lwp counterpart of rtprio
(). It
takes one additional argument, tid, specifying the lwp
to be used, -1 for the current lwp.
RETURN VALUES
The rtprio
() and
lwp_rtprio
() functions return the value 0 if
successful; otherwise the value -1 is returned and the global
variable errno is set to indicate the error.
ERRORS
rtprio
() and
lwp_rtprio
() will fail if
- [
EINVAL
] - The specified prio was out of range.
- [
EPERM
] - The calling process is not allowed to set the realtime priority. Only root is allowed to change the realtime priority of any process, and non-root may only change the idle priority of the current process.
- [
ESRCH
] - The specified process was not found.
SEE ALSO
nice(1), ps(1), rtprio(1), setpriority(2), nice(3), renice(8)
AUTHORS
The original author was Henrik Vestergaard Draboel <hvd@terry.ping.dk>. This implementation was substantially rewritten by David Greenman.