plucky (2) PR_SET_TIMERSLACK.2const.gz

Provided by: manpages-dev_6.9.1-1_all bug

NAME

       PR_SET_TIMERSLACK - set the "current" timer slack value for the calling thread

LIBRARY

       Standard C library (libc, -lc)

SYNOPSIS

       #include <linux/prctl.h>  /* Definition of PR_* constants */
       #include <sys/prctl.h>

       int prctl(PR_SET_TIMERSLACK, unsigned long slack);

DESCRIPTION

       Each  thread  has  two  associated  timer  slack  values: a "default" value, and a "current" value.  This
       operation sets the "current" timer slack value for the calling thread.  slack is an unsigned  long  value
       in  the  range [1L, ULONG_MAX].  If the nanosecond value supplied in slack is greater than zero, then the
       "current" value is set to this value.  If slack is 0L, the "current" timer slack is reset to the thread's
       "default" timer slack value.

       The  "current"  timer  slack is used by the kernel to group timer expirations for the calling thread that
       are close to one another; as a consequence, timer expirations for the thread may be up to  the  specified
       number  of  nanoseconds  late  (but will never expire early).  Grouping timer expirations can help reduce
       system power consumption by minimizing CPU wake-ups.

       The timer expirations affected by timer slack are those set by select(2), pselect(2), poll(2),  ppoll(2),
       epoll_wait(2),  epoll_pwait(2),  clock_nanosleep(2),  nanosleep(2),  and  futex(2)  (and thus the library
       functions  implemented  via  futexes,  including  pthread_cond_timedwait(3),  pthread_mutex_timedlock(3),
       pthread_rwlock_timedrdlock(3), pthread_rwlock_timedwrlock(3), and sem_timedwait(3)).

       Timer  slack  is  not  applied  to  threads  that  are scheduled under a real-time scheduling policy (see
       sched_setscheduler(2)).

       When a new thread is created, the two timer slack values are made the same as the "current" value of  the
       creating  thread.  Thereafter, a thread can adjust its "current" timer slack value via PR_SET_TIMERSLACK.
       The "default" value can't be changed.  The timer slack values of  init  (PID  1),  the  ancestor  of  all
       processes,  are  50,000  nanoseconds  (50  microseconds).   The timer slack value is inherited by a child
       created via fork(2), and is preserved across execve(2).

RETURN VALUE

       On success, 0 is returned.  On error, -1 is returned, and errno is set to indicate the error.

FILES

       /proc/pid/timerslack_ns
              Since Linux 4.6, the "current" timer slack value of any process can be examined  and  changed  via
              this file.

STANDARDS

       Linux.

HISTORY

       Linux 2.6.28.

SEE ALSO

       prctl(2), PR_GET_TIMERSLACK(2const), proc_pid_timerslack_ns(5)