DragonFly On-Line Manual Pages

RTPRIO(2)		 DragonFly System Calls Manual		     RTPRIO(2)


rtprio, lwp_rtprio -- examine or modify a process/lwp realtime or idle priority


Standard C Library (libc, -lc)


#include <sys/types.h> #include <sys/rtprio.h> int rtprio(int function, pid_t pid, struct rtprio *rtp); int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp);


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 prior- ity 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 priori- ties, 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 pri- ority 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.


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.


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.


nice(1), ps(1), rtprio(1), setpriority(2), nice(3), renice(8)


The original author was Henrik Vestergaard Draboel <hvd@terry.ping.dk>. This implementation was substantially rewritten by David Greenman. DragonFly 4.3 December 14, 2007 DragonFly 4.3