cpusetMove(3x)
cpusetMove - move processes associated with an ID to another cpuset
As shipped in IRIX 6.5.19. Added in IRIX 6.5.19.
NAME cpusetMove - move processes associated with an ID to another cpuset SYNOPSIS #include <cpuset.h> int cpusetMove(char *from_qname, char *to_qname, int idtype, int64_t id); DESCRIPTION The cpusetMove function is used to temporarily move processes associated with an ID, identified by id from one cpuset to another. This function does not move the memory associated with the processes. This function should be used in conjuction with cpusetMoveMigrate. The from_qname argument is the name of the cpuset from which the processes are moved. Using a NULL for this argument will result in having all the processes identified by id to be move into the global cpuset. The global cpuset is a term used to describe all the CPUS that are not in a cpuset. The to_qname argument is the name of the destination cpuset for the specified ID. Using a NULL for this argument will result in having all the processes identified by id to be moved into the global cpuset. The idType argument defines the type of number passed in as id. The possible options for idType are CPUSET_PID (Process ID), CPUSET_ASH (Array Session Handle), CPUSET_PGID (Process Group ID), CPUSET_SID (Session ID), and CPUSET_JID (Job ID). The use of CPUSET_JID will result in an ENOPKG error on systems running the IRIX maintenance stream, or those running the IRIX feature stream but without the job limits package installed. This function requires the processes associated with id to be stopped before it can enact the move. A test is made to see if all the processes are stopped. If id has processes A, B, and C and B is stopped, A and C will be stopped. Then, after the move, A and C will be restarted (but not B). This function requires root privileges on standard IRIX, and CAP_SCHED_MGMT on Trusted IRIX (TRIX). EXAMPLES This example moves a process ID from the cpuset queue named mpi_set to the cpuset queue named my_set. char *from_qname = "mpi_set"; char *to_qname = "my_set"; int64_t id = 1534; /* move from mpi_set to my_set, * if error - print error & exit */ if (!cpusetMove(from_qname, to_qname, CPUSET_PID, id)) { perror("cpusetMove"); exit(1); } NOTES cpusetMove is found in the library "libcpuset.so", and will be loaded if the option -lcpuset is used with cc(1) or ld(1). SEE ALSO cpuset(1), cpusetCreate(3x), cpusetMoveMigrate(3x), cpuset(5). DIAGNOSTICS If successful, cpusetMove returns a 1. If cpusetMove fails, it returns the value 0 and errno is set to indicate the error. The possible values for errno are the same as those used by sysmp(2). With any error, an attempt is made to move the processes back to their originating cpuset.