LGRP_INIT(3LGRP) Locality Group Library Functions LGRP_INIT(3LGRP)

NAME


lgrp_init - initialize lgroup interface

SYNOPSIS


cc [ flag... ] file... -llgrp [ library... ]
#include <sys/lgrp_user.h>

lgrp_cookie_t lgrp_init(lgrp_view_t view);


DESCRIPTION


The lgrp_init() function initializes the lgroup interface and takes a
snapshot of the lgroup hierarchy with the given view. If the given
view is LGRP_VIEW_CALLER, the snapshot contains only the resources
that are available to the caller (for example, with respect to
processor sets). When the view is LGRP_VIEW_OS, the snapshot
contains what is available to the operating system.


Given the view, lgrp_init() returns a cookie representing this
snapshot of the lgroup hierarchy. This cookie should be used with
other routines in the lgroup interface needing the lgroup hierarchy.
The lgrp_fini(3LGRP) function should be called with the cookie when
it is no longer needed.


The lgroup hiearchy represents the latency topology of the machine.
The hierarchy is simplified to be a tree and can be used to find the
nearest resources.


The lgroup hiearchy consists of a root lgroup, which is the maximum
bounding locality group of the system, contains all the CPU and
memory resources of the machine, and may contain other locality
groups that contain CPUs and memory within a smaller locality. The
leaf lgroups contain resources within the smallest latency.


The resources of a given lgroup come directly from the lgroup itself
or from leaf lgroups contained within the lgroup. Leaf lgroups
directly contain their own resources and do not encapsulate any other
lgroups.


The lgroup hierarchy can be used to find the nearest resources. From
a given lgroup, the closest resources can be found in the lgroup
itself. After that, the next nearest resources can be found in its
parent lgroup, and so on until the root lgroup is reached where all
the resources of the machine are located.

RETURN VALUES


Upon successful completion, lgrp_init() returns a cookie. Otherwise
it returns LGRP_COOKIE_NONE and sets errno to indicate the error.

ERRORS


The lgrp_init() function will fail if:

EINVAL
The view is not valid.


ENOMEM
There was not enough memory to allocate the snapshot of the
lgroup hierarchy.


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Evolving |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+

SEE ALSO


lgrp_children(3LGRP), lgrp_cookie_stale(3LGRP), lgrp_cpus(3LGRP),
lgrp_fini(3LGRP), lgrp_mem_size(3LGRP), lgrp_nlgrps(3LGRP),
lgrp_parents(3LGRP), lgrp_resources(3LGRP), lgrp_root(3LGRP),
lgrp_view(3LGRP), liblgrp(3LIB), attributes(7)

January 26, 2005 LGRP_INIT(3LGRP)

tribblix@gmail.com :: GitHub :: Privacy