| PR_SPEC_STORE_BYPASS | Get the state of the speculative store bypass misfeature. |
| PR_SPEC_INDIRECT_BRANCH (since Linux 4.20) | Get the state of the indirect branch speculation misfeature. |
| PR_SPEC_PRCTL | Mitigation can be controlled per thread by PR_SET_SPECULATION_CTRL(2const). |
| PR_SPEC_ENABLE | The speculation feature is enabled, mitigation is disabled. |
| PR_SPEC_DISABLE | The speculation feature is disabled, mitigation is enabled. |
| PR_SPEC_FORCE_DISABLE | Same as PR_SPEC_DISABLE but cannot be undone. |
| PR_SPEC_DISABLE_NOEXEC (since Linux 5.1) | Same as PR_SPEC_DISABLE, but the state will be cleared on execve(2). |
| ENODEV | The kernel or CPU does not support the requested speculation misfeature. |
NAME
PR_GET_SPECULATION_CTRL - get the state of a speculation misfeature for the calling thread
LIBRARY
Standard C library (libc, -lc)
SYNOPSIS
#include <linux/prctl.h>\n /* Definition of \nPR_*\n constants */
\n#include <sys/prctl.h>int prctl(PR_GET_SPECULATION_CTRL, long \nmisfeature\n, 0L, 0L, 0L);DESCRIPTION
Return the state of the speculation misfeature specified in misfeature.
Currently, misfeature must be one of:
- PR_SPEC_STORE_BYPASS
Get the state of the speculative store bypass misfeature.
- PR_SPEC_INDIRECT_BRANCH (since Linux 4.20)
Get the state of the indirect branch speculation misfeature.
The return value uses bits 0-4 with the following meaning:
- PR_SPEC_PRCTL
Mitigation can be controlled per thread by PR_SET_SPECULATION_CTRL(2const).
- PR_SPEC_ENABLE
The speculation feature is enabled, mitigation is disabled.
- PR_SPEC_DISABLE
The speculation feature is disabled, mitigation is enabled.
- PR_SPEC_FORCE_DISABLE
Same as PR_SPEC_DISABLE but cannot be undone.
- PR_SPEC_DISABLE_NOEXEC (since Linux 5.1)
Same as PR_SPEC_DISABLE, but the state will be cleared on execve(2).
If all bits are 0, then the CPU is not affected by the speculation misfeature.
If PR_SPEC_PRCTL is set, then per-thread control of the mitigation is available. If not set, PR_SET_SPECULATION_CTRL(2const) for the speculation misfeature will fail.
RETURN VALUE
On success, PR_GET_SPECULATION_CTRL returns the nonnegative value described above. On error, -1 is returned, and errno is set to indicate the error.
ERRORS
- ENODEV
The kernel or CPU does not support the requested speculation misfeature.
STANDARDS
Linux.
HISTORY
Linux 4.17.
SEE ALSO
prctl(2), PR_SET_SPECULATION_CTRL(2const)