lgrp_affinity_get(3lgrp) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

lgrp_affinity_get(3lgrp)

Locality Group Library Functions                      lgrp_affinity_get(3LGRP)



NAME
       lgrp_affinity_get, lgrp_affinity_set - get of set lgroup affinity

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

       lgrp_affinity_t lgrp_affinity_get(idtype_t idtype, id_t id,
            lgrp_id_t lgrp);


       int lgrp_affinity_set(idtype_t idtype, id_t id, lgrp_id_t lgrp,
            lgrp_affinity_t affinity);

DESCRIPTION
       The  lgrp_affinity_get()  function returns the affinity that the LWP or
       set of LWPs specified by the idtype and id arguments have for the given
       lgroup.


       The  lgrp_affinity_set() function sets the affinity that the LWP or set
       of LWPs specified by idtype and id  have  for  the  given  lgroup.  The
       lgroup  affinity  can  be  set  to  LGRP_AFF_STRONG,  LGRP_AFF_WEAK, or
       LGRP_AFF_NONE.


       If the idtype is P_PID, the affinity is retrieved for one of  the  LWPs
       in  the  process or set for all the LWPs of the process with process ID
       (PID) id. The affinity is retrieved or set for the LWP of  the  current
       process  with LWP ID id if idtype is P_LWPID. If id is P_MYID, then the
       current LWP or process is specified.


       The operating system uses the lgroup affinities as advice on  where  to
       run  a  thread  and allocate its memory and factors this advice in with
       other constraints. Processor binding and processor  sets  can  restrict
       which lgroups a thread can run on, but do not change the lgroup affini‐
       ties.


       Each thread can have an affinity for an lgroup in the system such  that
       the thread will tend to be scheduled to run on that lgroup and allocate
       memory from there whenever possible. If the  thread  has  affinity  for
       more  than  one lgroup, the operating system will try to run the thread
       and allocate its memory on the lgroup for which it  has  the  strongest
       affinity,  then  the  next  strongest, and so on up through some small,
       system-dependent number  of  these  lgroup  affinities.  When  multiple
       lgroups  have  the same affinity, the order of preference among them is
       unspecified and up to the operating system to choose. The  lgroup  with
       the strongest affinity that the thread can run on is known as its "home
       lgroup" (see lgrp_home(3LGRP)) and is usually  the  operating  system's
       first choice of where to run the thread and allocate its memory.


       There  are  different  levels  of  affinity  that can be specified by a
       thread for a particular lgroup. The levels of affinity are the  follow‐
       ing from strongest to weakest:

         LGRP_AFF_STRONG         /* strong affinity */
         LGRP_AFF_WEAK           /* weak affinity */
         LGRP_AFF_NONE           /* no affinity */



       The  LGRP_AFF_STRONG  affinity serves as a hint to the operating system
       that the calling thread has a strong affinity for the given lgroup.  If
       this  is  the  thread's  home  lgroup,  the operating system will avoid
       rehoming it to another lgroup if possible. However, dynamic  reconfigu‐
       ration, processor offlining, processor binding, and processor set bind‐
       ing and manipulation are examples of events that can cause the  operat‐
       ing system to change the thread's home lgroup for which it has a strong
       affinity.


       The LGRP_AFF_WEAK affinity is a hint to the operating system  that  the
       calling  thread  has  a weak affinity for the given lgroup. If a thread
       has a weak affinity for its home lgroup, the  operating  system  inter‐
       prets  this  to  mean  that thread does not mind whether it is rehomed,
       unlike LGRP_AFF_STRONG. Load balancing, dynamic  reconfiguration,  pro‐
       cessor  binding, or processor set binding and manipulation are examples
       of events that can cause the operating system to change a thread's home
       lgroup for which it has a weak affinity.


       The  LGRP_AFF_NONE  affinity  signifies  no affinity and can be used to
       remove a thread's affinity for a  particular  lgroup.  Initially,  each
       thread has no affinity to any lgroup. If a thread has no lgroup affini‐
       ties set, the operating system chooses a home  lgroup  for  the  thread
       with no affinity set.

RETURN VALUES
       Upon  successful  completion,  lgrp_affinity_get() returns the affinity
       for the given lgroup.


       Upon successful completion, lgrp_affinity_set() return 0.


       Otherwise, both functions return −1  and  set  errno  to  indicate  the
       error.

ERRORS
       The lgrp_affinity_get() and lgrp_affinity_set() functions will fail if:

       EINVAL    The specified lgroup, affinity, or ID type is not valid.


       EPERM     The  effective  user  of  the  calling  process does not have
                 appropriate privileges, and its real  or  effective  user  ID
                 does  not  match  the real or effective user ID of one of the
                 LWPs.


       ESRCH     The specified lgroup or LWP(s) was not found.


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


       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe


SEE ALSO
       lgrp_home(3LGRP), liblgrp(3LIB), attributes(7)



Oracle Solaris 11.4               13 Nov 2020         lgrp_affinity_get(3LGRP)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3