|
Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!
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 argument 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 current 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
(lightweight 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 systems 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
system clock interrupts.
A processor in the P_SPARE state is not allowed to process
LWPs. In many respects the P_SPARE state is similiar to the
P_OFFLINE state, but describes a processor that is available
for reactivation by management tools without administrator
intervention.
SunOS 5.10 Last change: 16 Aug 2004 1
System Calls p_online(2)
A processor in the P_FAULTED state is not allowed to process
LWPs. In many respects the P_FAULTED state is similiar to
the P_OFFLINE state, but describes a processor that has been
diagnosed as faulty. The privileged caller can change the
state of the processor from P_FAULTED to any of the other
states, but since the processor might generate additional
errors, electing to reactivate such a processor should be
carefully 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 pro-
cessor 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 defined by the hardware platform. Processor numbers
are not necessarily contiguous, but "not too sparse." Pro-
cessor 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 determined by calling p_online() with proces-
sorid values from 0 to the maximum returned by
sysconf(_SC_CPUID_MAX). The EINVAL error is returned 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 processor is the only on-line pro-
cessor, there are currently LWPs bound to
the processor, or the processor performs
some essential function that cannot be per-
formed by another processor.
The flag was P_NOINTR and the specified pro-
cessor is the only interruptible processor
in the system, or it handles interrupts that
cannot be handled by another processor.
SunOS 5.10 Last change: 16 Aug 2004 2
System Calls p_online(2)
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 invalid.
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 proces-
sor 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 calling
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 <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);
}
SunOS 5.10 Last change: 16 Aug 2004 3
System Calls p_online(2)
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
SEE ALSO
pooladm(1M), psradm(1M), psrinfo(1M), zoneadm(1M),
processor_bind(2), processor_info(2), pset_create(2),
sysconf(3C), attributes(5), privileges(5)
SunOS 5.10 Last change: 16 Aug 2004 4
Man(1) output converted with
man2html and wrapped by fishsponge
This page was generated on Wed Sep 12 11:27:04 GMT 2007
|
Your favourite pages:
No pages logged yet... Top 10 most popular pages:
prstat man page (24546 hits) (Solaris 10 11_06)
netcat man page (17695 hits) (Suse Linux 10.1)
ssh-socks5-proxy-connect man page (13532 hits) (Solaris 10 11_06)
signal man page (12551 hits) (Suse Linux 10.1)
startproc man page (11991 hits) (Suse Linux 10.1)
raidctl man page (11357 hits) (Solaris 10 11_06)
adv_cap_autoneg man page (10286 hits) (Solaris 10 11_06)
sqlite3 man page (9729 hits) (openSUSE 10.2)
CPAN man page (8947 hits) (Suse Linux 10.1)
BusyBox man page (7702 hits) (Suse Linux 10.1)
|