p_online(2) 맨 페이지 - 윈디하나의 솔라나라

개요

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

p_online(2)

p_online(2)                      System Calls                      p_online(2)

NAME
       p_online - return or change processor operational status

SYNOPSIS
       #include <sys/types.h>
       #include <sys/processor.h>

       int p_online(processorid_t processorid, int flag);

DESCRIPTION
       The  p_online()  function  changes or returns the operational status of
       processors. The state of the processor specified by the processorid ar‐
       gument is changed to the state represented by the flag argument.


       Legal values for flag  are  P_STATUS,  P_ONLINE,  P_OFFLINE,  P_NOINTR,
       P_FAULTED, P_SPARE, and P_FORCED.


       When  flag is P_STATUS, no processor status change occurs, but the cur‐
       rent processor status is returned.


       The P_ONLINE, P_OFFLINE, P_NOINTR, P_FAULTED, and  P_SPARE  values  for
       flag  refer  to  valid  processor  states.  The P_OFFLINE, P_SPARE, and
       P_FAULTED processor states can be combined with the P_FORCED flag.


       A processor in the P_ONLINE state is allowed to  process  LWPs  (light‐
       weight  processes) and perform system activities. The processor is also
       interruptible by I/O devices attached to the system.


       A processor in the P_OFFLINE state is not allowed to process LWPs.  The
       processor  is  as inactive as possible. If the hardware supports such a
       feature, the processor is not interruptible by attached I/O devices.


       A processor in the P_NOINTR state is allowed to process LWPs, but it is
       not interruptible by attached I/O devices. Typically, interrupts,  when
       they  occur  are routed to other processors in the system. Not all sys‐
       tems support putting a processor into the P_NOINTR  state.  It  is  not
       permitted  to  put  all  the  processors  of a system into the P_NOINTR
       state. At least one processor must always be available to service  sys‐
       tem clock interrupts.


       A  processor  in  the  P_SPARE state is not allowed to process LWPs. In
       many respects the P_SPARE state is similar to the P_OFFLINE state,  but
       describes  a processor that is available for reactivation by management
       tools without administrator intervention.


       A processor in the P_FAULTED state is not allowed to process  LWPs.  In
       many  respects  the  P_FAULTED state is similar to the P_OFFLINE state,
       but describes a processor that has been diagnosed as faulty. The privi‐
       leged caller can change the state of the processor  from  P_FAULTED  to
       any  of  the other states, but since the processor might generate addi‐
       tional errors, electing to reactivate such a processor should be  care‐
       fully considered.


       Forced  processor  state transition can be requested if a new processor
       state is  specified  with  the  bitwise-inclusive  OR  of  the  special
       P_FORCED  flag.  Forcing  transition  of  a processor to the P_OFFLINE,
       P_SPARE, or P_FAULTED state revokes processor bindings for all  threads
       that  were  previously  bound to that processor with processor_bind(2).
       There is no guarantee that a forced processor state  transition  always
       succeeds.


       Processor numbers are integers, greater than or equal to 0, and are de‐
       fined  by  the hardware platform. Processor numbers are not necessarily
       contiguous, but "not too sparse." Processor numbers  should  always  be
       printed in decimal.


       The  maximum  possible  processorid  value can be determined by calling
       sysconf(_SC_CPUID_MAX). The list of valid processor numbers can be  de‐
       termined  by  calling  p_online() with processorid values from 0 to the
       maximum returned by sysconf(_SC_CPUID_MAX). The  EINVAL  error  is  re‐
       turned for invalid processor numbers. See EXAMPLES below.

RETURN VALUES
       On  successful  completion, the value returned is the previous state of
       the processor, P_ONLINE, P_OFFLINE, P_NOINTR,  P_FAULTED,  P_SPARE,  or
       P_POWEROFF. Otherwise, −1 is returned, the CPU state remains unchanged,
       and errno is set to indicate the error.

ERRORS
       The p_online() function will fail if:

       EBUSY      The  flag was P_OFFLINE or P_SPARE and the specified proces‐
                  sor is the only on-line processor, there are currently  LWPs
                  bound  to  the processor, or the processor performs some es‐
                  sential function that cannot be performed by another proces‐
                  sor.

                  The flag was P_NOINTR and the  specified  processor  is  the
                  only  interruptible  processor  in the system, or it handles
                  interrupts that cannot be handled by another processor.

                  The specified processor is powered off and cannot be powered
                  on because some platform-specific resource is not available.


       EINVAL     A non-existent processor ID was specified or  flag  was  in‐
                  valid.

                  The  caller  is  in a non-global zone, the pools facility is
                  active, and the processor is not  a  member  of  the  zone's
                  pool's processor set.


       ENOTSUP    The  specified  processor  is  powered off, and the platform
                  does not support power on of individual processors.


       EPERM      The flag was  not  P_STATUS  and  the  {PRIV_SYS_RES_CONFIG}
                  privilege  is not asserted in the effective set of the call‐
                  ing process.


EXAMPLES
       Example 1 List the legal processor numbers.



       The following code sample will list the legal processor numbers:


         #include <sys/unistd.h>
         #include <sys/processor.h>
         #include <sys/types.h>
         #include <stdio.h>
         #include <unistd.h>
         #include <errno.h>

         int
         main()
         {
                 processorid_t i, cpuid_max;
                 cpuid_max = sysconf(_SC_CPUID_MAX);
                 for (i = 0; i <= cpuid_max; i++) {
                       if (p_online(i, P_STATUS) != -1)
                                 printf("processor %d present\n", i);
                 }
                 return (0);
         }


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 _ MT-LevelMT-Safe


SEE ALSO
       processor_bind(2),  processor_info(2), pset_create(2), sysconf(3C), at‐
       tributes(7),   privileges(7),   pooladm(8),   psradm(8),    psrinfo(8),
       zoneadm(8)

Oracle Solaris 11.4               27 Nov 2017                      p_online(2)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3