p_online(2)
p_online --
take a processor online or offline
Synopsis
#include <sys/types.h>
#include <sys/processor.h>
int p_online(processorid_t processorid, int flag);
Description
p_online brings the processor specified by processorid
online or takes it offline.
When a processor is online,
it is performing normal operations,
scheduling and executing processes, and servicing any I/O devices
to which it has access.
If flag is P_ONLINE, the specified processor is brought online.
If the processor was already online, nothing is done.
The previous state of the processor (P_ONLINE or P_OFFLINE) is
returned.
If flag is P_OFFLINE, the specified processor is shut down and
taken offline.
If the processor was already offline, nothing is done.
The previous state of the processor is returned.
An attempt to take a processor offline may fail for several
reasons:
-
One or more processes
are bound to the processor.
-
The processor is the only online processor.
-
The processor performs some essential system function that
cannot be taken over by another processor.
The calling process must have appropriate privileges to bring a
processor online or take it offline.
Return values
On success, p_online returns P_ONLINE or P_OFFLINE.
On failure, p_online returns -1 and sets errno to identify the error.
Errors
In the following conditions, p_online fails and sets errno to:
- EPERM
-
The calling process does not have appropriate privilege for the operation.
- EINVAL
-
The processorid does not refer to an existing processor,
or the processor for P_OFFLINE cannot be taken offline,
the number of processors has reached the limit,
or the flag has an invalid value.
- EBUSY
-
The processorid for P_OFFLINE refers to a processor with processes
bound to it,
it is the only online processor,
or the processor performs some essential system function that
cannot be taken over by another processor.
- EIO
-
The processor to which processorid refers cannot be brought online.
References
psradm(1M)
Notices
Considerations for lightweight processes
Specific LWP, sets of LWPS, as well as entire processes
can be bound to a processor.
See
processor_bind(2).
30 January 1998
© 1998 The Santa Cruz Operation, Inc. All rights reserved.