USCHED_SET(2)

NAME
usched_set - setting up a proc's usched

LIBRARY
libc

SYNOPSIS
#include <sys/types.h>
#include <sys/usched.h>
int
usched_set(pid_t pid, int cmd, void *data, int bytes);

DESCRIPTION
The usched_set() function is used to perform several user scheduler tasks. These tasks include: setting the user scheduler, assigning an LWP to a specific CPU, adding a CPU to the available CPUs for an LWP, and removing a CPU from the list of available CPUs for an LWP. The usched_set() function requires superuser privileges for all commands except USCHED_GET_CPU and USCHED_GET_CPUMASK.

The cmd argument specifies the action for usched_set() to take:

USCHED_SET_SCHEDULER
    set the user scheduler where data is a char * that contains the name of the user scheduler.

USCHED_SET_CPU
    assign the LWP to the cpuid pointed to by data.

USCHED_GET_CPU
    copy the LWP's CPU ID to the cpuid pointed to by data.

USCHED_GET_CPUMASK
    copy the LWP's CPU mask to the cpumask_t type pointed to by data.

USCHED_SET_CPUMASK
    set the LWP's CPU mask to the cpumask_t type pointed to by data.

USCHED_ADD_CPU
    add the cpuid specified by data to the list of available CPUs for the LWP.

USCHED_DEL_CPU
    remove the cpuid specified by data from the list of available CPUs for the LWP.

RETURN VALUES

ERRORS
The function will fail if:

[EINVAL]
    The user scheduler to set is not in the list of available user schedulers. The bytes argument is not the correct size (int) for a cpuid. The specified cpuid is not set in smp_active_mask. Cmd contains an unknown value.

[EFBIG]
    The specified cpuid is not a valid cpuid for the system.

[EPERM]
    Deleting the specified cpuid leaves the LWP without a CPU to run on.

SEE ALSO
usched(8)

HISTORY
The usched_set() function call was added in DragonFly 1.9.

AUTHORS
-nosplit The usched_set() system call was written by Matt Dillon. This manual page was written by Joe Talbott.

BUGS
Only pid equals current LWP PID or 0 is implemented. The current LWP PID is used for pid when pid is 0. One would normally only use 0 for pid.