The Solaris::lgrp Module
This Perl module provides a Perl interface to the lgroup APIs that
are in liblgrp. This interface provides a way to traverse the lgroup hierarchy, discover
its contents and characteristics, and set a thread's affinity for an lgroup. The
module gives access to various constants and functions defined in the lgrp_user.h header
file. The module provides the procedural interface and the object interface to the
library.
The default behavior of this module does not export anything. You can use
the following tags to selectively import the constants and functions that are defined
in this module:
- :LGRP_CONSTANTS
LGRP_AFF_NONE, LGRP_AFF_STRONG, LGRP_AFF_WEAK, LGRP_CONTENT_DIRECT, LGRP_CONTENT_HIERARCHY, LGRP_MEM_SZ_FREE, LGRP_MEM_SZ_INSTALLED, LGRP_VER_CURRENT, LGRP_VER_NONE, LGRP_VIEW_CALLER, LGRP_VIEW_OS, LGRP_NONE, LGRP_RSRC_CPU, LGRP_RSRC_MEM, LGRP_CONTENT_ALL, LGRP_LAT_CPU_TO_MEM
- :PROC_CONSTANTS
P_PID, P_LWPID, P_MYID
- :CONSTANTS
:LGRP_CONSTANTS, :PROC_CONSTANTS
- :FUNCTIONS
lgrp_affinity_get(), lgrp_affinity_set(), lgrp_children(), lgrp_cookie_stale(), lgrp_cpus(), lgrp_fini(), lgrp_home(), lgrp_init(), lgrp_latency(), lgrp_latency_cookie(), lgrp_mem_size(), lgrp_nlgrps(), lgrp_parents(), lgrp_root(), lgrp_version(), lgrp_view(), lgrp_resources(), lgrp_lgrps(), lgrp_leaves(), lgrp_isleaf(), lgrp_lgrps(), lgrp_leaves().
- :ALL()
:CONSTANTS(), :FUNCTIONS()
The Perl module has the following methods:
new()
cookie()
stale()
view()
root()
children()
parents()
nlgrps()
mem_size()
cpus()
isleaf()
resources()
version()
home()
affinity_get()
affinity_set()
lgrps()
leaves()
latency()
You can export constants with the :CONSTANTS or :ALL tags. You can
use any of the constants in the following list in Perl programs.
LGRP_NONE
LGRP_VER_CURRENT
LGRP_VER_NONE
LGRP_VIEW_CALLER
LGRP_VIEW_OS
LGRP_AFF_NONE
LGRP_AFF_STRONG
LGRP_AFF_WEAK
LGRP_CONTENT_DIRECT
LGRP_CONTENT_HIERARCHY
LGRP_MEM_SZ_FREE
LGRP_MEM_SZ_INSTALLED
LGRP_RSRC_CPU
LGRP_RSRC_MEM
LGRP_CONTENT_ALL
LGRP_LAT_CPU_TO_MEM
P_PID
P_LWPID
P_MYID
When an underlying library function fails, the functions in this module return either
undef or an empty list. The module can use the following error codes:
- EINVAL
The value supplied is not valid.
- ENOMEM
There was not enough system memory to complete an operation.
- ESRCH
The specified process or thread was not found.
- EPERM
The effective user of the calling process does not have the appropriate privileges, and its real or effective user ID does not match the real or effective user ID of one of the threads.