rad_fork(3)rad_fork(3)NAMErad_fork - Creates a new process on a Resource Affinity Domain (libnuma
library)
SYNOPSIS
#include <numa.h>
pid_t rad_fork(
radid_t radid,
ulong_t flags );
PARAMETERS
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.
DESCRIPTION
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 descrip‐
tion 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.
RETURN VALUES
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.
ERRORS
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 supe‐
ruser privilege. The radid argument specifies an invalid RAD identi‐
fier. There is insufficient memory to create this process.
SEE ALSO
Functions: nfork(3), nloc(3), numa_intro(3), radsetops(3)
Files: numa_types(4)rad_fork(3)