unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

pset_create(2)                   System Calls                   pset_create(2)



NAME
       pset_create, pset_destroy, pset_assign - manage sets of processors

SYNOPSIS
       #include <sys/pset.h>

       int pset_create(psetid_t *newpset);

       int pset_destroy(psetid_t pset);

       int pset_assign(psetid_t pset, processorid_t cpu, psetid_t *opset);

DESCRIPTION
       These  functions control the creation and management of sets of proces-
       sors.  Processor sets allow a subset of the system's processors  to  be
       set  aside for exclusive use by specified LWPs and processes. The bind-
       ing  of  LWPs  and  processes  to  processor  sets  is  controlled   by
       pset_bind(2).

       The pset_create() function creates an empty processor set that contains
       no processors.  On successful return, newpset will contain  the  ID  of
       the new processor set.

       The  pset_destroy() function destroys the processor set pset, releasing
       its constituent processors and processes. If pset is PS_MYID, the  pro-
       cessor set to which the caller is bound is destroyed.

       The  pset_assign()  function assigns the processor cpu to the processor
       set pset. A processor that has been assigned to a  processor  set  will
       run  only  LWPs  and  processes that have been explicitly bound to that
       processor set, unless another LWP requires  a  resource  that  is  only
       available on that processor.

       On successful return, if opset is non-null, opset will contain the pro-
       cessor set ID of the former processor set of the processor.

       If pset is PS_NONE, pset_assign() releases processor cpu from its  cur-
       rent processor set.

       If  pset  is PS_QUERY, pset_assign() makes no change to processor sets,
       but returns the current processor set ID of processor cpu in opset.

       If pset is PS_MYID, processor cpu is assigned to the processor  set  to
       which  the caller belongs. If the caller does not belong to a processor
       set, processor cpu is released from its current processor set.

       These functions are restricted  to  privileged  processes,  except  for
       pset_assign() when pset is PS_QUERY.

RETURN VALUES
       Upon  successful completion, these functions return 0. Otherwise, -1 is
       returned and errno is set to indicate the error.

ERRORS
       These functions will fail if:

       EBUSY           The processor could not be moved to the specified  pro-
                       cessor set.



       EFAULT          The  location pointed to by newpset was not writable by
                       the user, or the location pointed to by opset  was  not
                       NULL and not writable by the user.



       EINVAL          The  specified  processor does not exist, the specified
                       processor  is not on-line, or an invalid processor  set
                       was specified.



       ENOMEM          There  was insufficient space for pset_create to create
                       a new processor set.



       ENOTSUP         The pools  facility  is  active.  See  pooladm(1M)  and
                       pool_set_status(3POOL)  for  information about enabling
                       and disabling the pools facility.



       EPERM           The {PRIV_SYS_RES_CONFIG} privilege is not asserted  in
                       the effectvie set of the calling process.



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


       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE TYPEATTRIBUTE VALUE Interface StabilityStable
       MT-LevelAsync-Signal-Safe


SEE ALSO
       pooladm(1M),  psradm(1M), psrinfo(1M), psrset(1M), p_online(2), proces-
       sor_bind(2),  pset_bind  (2),   pset_info(2),   pool_set_status(3POOL),
       pset_getloadavg(3C), attributes(5), privileges(5)

NOTES
       The processor set type of PS_SYSTEM is no longer supported.

       Processors  with  LWPs  bound to them using processor_bind(2) cannot be
       assigned to a new processor set. If  this is  attempted,  pset_assign()
       will fail and set errno to EBUSY.



SunOS 5.10                        9 Apr 2004                    pset_create(2)