pset_bind.2 (2010 09)
p
pset_bind(2) pset_bind(2)
NAME
pset_bind() - bind process or thread to a processor set
SYNOPSIS
#include <sys/pset.h>
int pset_bind(
psetid()_t pset ,
idtype_t idtype ,
id_t id,
psetid_t *opset
);
DESCRIPTION
The pset_bind() function binds thread(s) or process(es) specified by idtype and id to the processor set
pset .
If idtype is
P_PID, then id specifies the pid of the process to be assigned, and the binding affects all
threads of the process.
If idtype is
P_LWPID, 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
pthread_pset_bind_np
in pthread_processor_bind_np(3T) for information on binding pthreads to
processor sets.
If idtype is
P_UID, 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
P_PGID, then id specifies the process group ID of all processes to be assigned, and the bind-
ing 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 processor set.
If opset is not
NULL, it contains the previous processor set binding of the specified thread or process upon
successful operation. However, opset is ignored if idtype is P_UID or P_PGID.
All threads of a process need not be assigned to the same processor set.
If id is
P_MYID, then idtype identifies the target process(es) or thread(s) to be assigned to pset . The
P_PID identifies the calling process, whereas P_LWPID identifies the calling thread. The P_UID
identifies all processes with the effective user ID of the calling process, and
P_PGRP identifies all
processes in the process group of the calling process.
If pset is
PS_DEFAULT or PS_NONE, the system default processor set is the target processor set.
If pset is
PS_QUERY, the processor set binding is not changed, the current processor set’s processor set ID
is returned in opset .Ifidtype is P_UID or P_PGID, PS_QUERY request has no meaning. No special
access privileges are needed for PS_QUERY operation.
If pset is the same as the current processor set for the specified process or thread, the operation is con-
sidered a
PS_QUERY request.
The system daemon processes are not restricted to any user defined processor sets. They may execute on
any processor in the system irrespective of the processor set configuration a user may have set up. The
processor set binding of system daemon processes may not be changed. The
PS_QUERY operation on sys-
tem daemon processes returns a special processor set ID of PS_KERNDAEMON to indicate they are treated
differently.
Note: The system daemon processes are created in the kernel for kernel activities, and not the user dae-
mon processes that execute in user space.
A user with the
PSET privilege, or a user with EXEC permission for the processor set pset may affect the
binding change. The pset_setattr() and pset_getattr() 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 processor 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 .
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1