oracular (3) sched_setparam.3posix.gz

Provided by: manpages-posix-dev_2017a-2_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of this interface
       may differ (consult the corresponding Linux manual page for details of Linux behavior), or the  interface
       may not be implemented on Linux.

NAME

       sched_setparam — set scheduling parameters (REALTIME)

SYNOPSIS

       #include <sched.h>

       int sched_setparam(pid_t pid, const struct sched_param *param);

DESCRIPTION

       The  sched_setparam() function shall set the scheduling parameters of the process specified by pid to the
       values specified by the sched_param structure pointed to by  param.   The  value  of  the  sched_priority
       member  in  the  sched_param  structure  shall be any integer within the inclusive priority range for the
       current scheduling policy of the process specified by pid.  Higher  numerical  values  for  the  priority
       represent  higher  priorities.   If  the  value  of pid is negative, the behavior of the sched_setparam()
       function is unspecified.

       If a process specified by pid  exists,  and  if  the  calling  process  has  permission,  the  scheduling
       parameters shall be set for the process whose process ID is equal to pid.

       If pid is zero, the scheduling parameters shall be set for the calling process.

       The  conditions  under  which  one  process has permission to change the scheduling parameters of another
       process are implementation-defined.

       Implementations may require the requesting  process  to  have  appropriate  privileges  to  set  its  own
       scheduling parameters or those of another process.

       See  Scheduling  Policies  for  a  description on how this function affects the scheduling of the threads
       within the target process.

       If the current scheduling policy for the target process is not SCHED_FIFO, SCHED_RR,  or  SCHED_SPORADIC,
       the result is implementation-defined; this case includes the SCHED_OTHER policy.

       The  specified  sched_ss_repl_period shall be greater than or equal to the specified sched_ss_init_budget
       for the function to succeed; if it is not, then the function shall fail.

       The value of sched_ss_max_repl shall be within the inclusive range [1,{SS_REPL_MAX}] for the function  to
       succeed;  if  not,  the  function  shall  fail.  It  is  unspecified whether the sched_ss_repl_period and
       sched_ss_init_budget values are stored as provided by this function or are  rounded  to  align  with  the
       resolution of the clock being used.

       This function is not atomic with respect to other threads in the process. Threads may continue to execute
       while this function call is in the process of changing the scheduling policy for the  underlying  kernel-
       scheduled entities used by the process contention scope threads.

RETURN VALUE

       If successful, the sched_setparam() function shall return zero.

       If  the  call  to sched_setparam() is unsuccessful, the priority shall remain unchanged, and the function
       shall return a value of -1 and set errno to indicate the error.

ERRORS

       The sched_setparam() function shall fail if:

       EINVAL One or more of the requested scheduling parameters is outside the range defined for the scheduling
              policy of the specified pid.

       EPERM  The requesting process does not have permission to set the scheduling parameters for the specified
              process, or does not have appropriate privileges to invoke sched_setparam().

       ESRCH  No process can be found corresponding to that specified by pid.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       Scheduling Policies, sched_getparam(), sched_getscheduler(), sched_setscheduler()

       The Base Definitions volume of POSIX.1‐2017, <sched.h>

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1-2017, Standard
       for  Information  Technology  --  Portable  Operating  System  Interface  (POSIX),  The  Open  Group Base
       Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical  and  Electronics
       Engineers, Inc and The Open Group.  In the event of any discrepancy between this version and the original
       IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee  document.
       The original Standard can be obtained online at http://www.opengroup.org/unix/online.html .

       Any  typographical  or formatting errors that appear in this page are most likely to have been introduced
       during  the  conversion  of  the  source  files  to  man  page  format.  To  report  such   errors,   see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .