pset_bind(2)pset_bind(2)NAMEpset_bind() - bind process or thread to a processor set
SYNOPSISDESCRIPTION
The function binds thread(s) or process(es) specified by idtype and id
to the processor set pset.
If idtype is then id specifies the pid of the process to be assigned,
and the binding affects all threads of the process.
If idtype is then id specifies the lwpid of the thread to be assigned,
and the binding affects only the specified thread. You cannot specify
a pthread ID for pthreads in id, an lwpid is required. See in
pthread_processor_bind_np(3T) for information on binding pthreads to
processor sets.
If idtype is then id specifies the effective user ID of all processes
to be assigned, and the binding affects all threads in these processes.
The operation is not a "success is all or none" type, because it
rebinds as many processes as possible without error.
If idtype is then id specifies the process group ID of all processes to
be assigned, and the binding affects all threads in these processes.
The operation is not a "success is all or none" type, because it
rebinds as many processes as possible without error. All processes in
a process group need not have same access permissions to target proces‐
sor set.
If opset is not it contains the previous processor set binding of the
specified thread or process upon successful operation. However, opset
is ignored if idtype is or
All threads of a process need not be assigned to the same processor
set.
If id is then idtype identifies the target process(es) or thread(s) to
be assigned to pset. The identifies the calling process, whereas iden‐
tifies the calling thread. The identifies all processes with the
effective user ID of the calling process, and identifies all processes
in the process group of the calling process.
If pset is or the system default processor set is the target processor
set.
If pset is the processor set binding is not changed, the current pro‐
cessor set's processor set ID is returned in opset. If idtype is or
request has no meaning. No special access privileges are needed for
operation.
If pset is the same as the current processor set for the specified
process or thread, the operation is considered a request.
The system daemon processes are not restricted to any user defined pro‐
cessor sets. They may execute on any processor in the system irrespec‐
tive of the processor set configuration a user may have set up. The
processor set binding of system daemon processes may not be changed.
The operation on system daemon processes returns a special processor
set ID of to indicate they are treated differently.
Note: The system daemon processes are created in the kernel for kernel
activities, and not the user daemon processes that execute in user
space.
A user with the privilege, or a user with EXEC permission for the pro‐
cessor set pset may affect the binding change. The and functions may
be used to set and query the processor set access permissions. See
pset_getattr(2)).
If the thread or process being assigned to pset has binding to a pro‐
cessor or a locality domain in its current processor set, the binding
is reassigned to a processor or locality domain in the new processor
set pset.
If pset is empty (no processors are assigned as yet), the behavior of
function depends on the value of attribute. The default behavior on an
attempt to bind a thread or a process to an empty processor set is to
fail the request.
The child process and its first thread created by a or function inher‐
its the processor set binding from the parent process. The new threads
in the multi-threaded process inherits their processor set binding from
the creator thread.
Security Restrictions
Some or all of the actions associated with this system call require the
privilege. Processes owned by the superuser have this privilege. Pro‐
cesses owned by other users may have this privilege, depending on sys‐
tem configuration. See privileges(5) for more information about privi‐
leged access on systems that support fine-grained privileges.
RETURN VALUE
returns the following values:
Successful completion.
Failure.
is set to indicate the error.
ERRORS
sets to one of the following values if the corresponding condition
occurs.
The memory location pointed to by
opset is not writable by the user.
pset is not valid.
idtype or id is not valid.
pset is empty and the current setting of processor set
attributes does not allow this operation on an empty
processor set.
The memory location pointed to by
opset is NULL and the operation is requested.
The processor set functionality is not supported by the
underlying HP-UX version.
User does not have necessary permissions to bind a
thread or a process to specified processor set.
The specified thread or process is a system daemon.
The specified thread, process, user ID, or process group does not
exist.
EXAMPLES
Migrate the current thread to another processor set new_pset, and
retrive its current processor set in old_pset.
SEE ALSOpsrset(1M), fork(2), pset_assign(2), pset_create(2), pset_ctl(2),
pset_destroy(2), pset_getattr(2), pset_setattr(2), vfork(2), priv‐
grp(4), privileges(5).
pset_bind(2)