rad_fork - Creates a new process on a Resource Affinity
Domain (libnuma library)
#include <numa.h>
pid_t rad_fork(
radid_t radid,
ulong_t flags );
Identifies a Resource Affinity Domain (RAD) on which to
allocate data and schedule threads for a new process.
Specifies options (a bit mask) that affect the attachment
or binding operation. See DESCRIPTION for details.
The rad_fork() function behaves the same as nfork() when
the latter specifies a resource type of R_RAD and a
resource descriptor that points to a RAD set containing a
single RAD identifier. For a description of this behavior,
refer to the description of the R_RAD resource type in
nfork(3).
The following option is specified for the flags argument:
The child process might not be assigned to the same home
RAD as its parent process. Allows the system to assign a
home RAD to the child process depending on available
resources.
Normally, child processes do inherit the assignments
and attributes of the parent process.
Success (returned to the child process). In this case, the
function also returns the process ID of the child process
to the parent process.
The child process and all of its data structures
are allocated on the RAD specified by the radid
argument. In addition, the initial thread of the
child process is scheduled on one of the CPUs in
the specified RAD. Failure (returned to the parent
process). In this case, no child process is created
and the function sets errno to indicate the error.
The limit on the total number of processes executing for a
single user would be exceeded. This limit can be exceeded
by a process with superuser privilege. The radid argument
specifies an invalid RAD identifier. There is insufficient
memory to create this process.
Functions: nfork(3), nloc(3), numa_intro(3), radsetops(3)
Files: numa_types(4)
rad_fork(3)
[ Back ] |