Manpage logo

PR_GET_SPECULATION_CTRL - get the state of a speculation misfeature for the calling thread

NAME  LIBRARY  SYNOPSIS  DESCRIPTION  RETURN VALUE  ERRORS  STANDARDS  HISTORY  SEE ALSO 

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> /* Definition of PR_* constants */
#include <sys/prctl.h>

int prctl(PR_GET_SPECULATION_CTRL, long misfeature, 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)


Updated 2026-06-01 - jenkler.se | uex.se