Scroll to navigation

PR_SET_SPECULATION_CTRL(2const) PR_SET_SPECULATION_CTRL(2const)

NAME

PR_SET_SPECULATION_CTRL - set 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_SET_SPECULATION_CTRL, long misfeature, long val, 0L, 0L);

DESCRIPTION

Sets the state of the speculation misfeature specified in misfeature. The speculation-misfeature settings are per-thread attributes.

Currently, misfeature must be one of:

Set the state of the speculative store bypass misfeature.
Set the state of the indirect branch speculation misfeature.

The val argument is used to hand in the control value, which is one of the following:

The speculation feature is enabled, mitigation is disabled.
The speculation feature is disabled, mitigation is enabled.
Same as PR_SPEC_DISABLE, but cannot be undone.
Same as PR_SPEC_DISABLE, but the state will be cleared on execve(2). Currently only supported for PR_SPEC_STORE_BYPASS.

The speculation feature can also be controlled by the spec_store_bypass_disable boot parameter. This parameter may enforce a read-only policy which will result in the prctl() call failing with the error ENXIO. For further details, see the kernel source file Documentation/admin-guide/kernel-parameters.txt.

RETURN VALUE

On success, 0 is returned. On error, -1 is returned, and errno is set to indicate the error.

ERRORS

The kernel or CPU does not support the requested speculation misfeature.
The control of the selected speculation misfeature is not possible. See PR_GET_SPECULATION_CTRL for the bit fields to determine which option is available.
The speculation was disabled with PR_SPEC_FORCE_DISABLE and caller tried to enable it again.
misfeature is not a valid value.

STANDARDS

Linux.

HISTORY

Linux 4.17.

SEE ALSO

prctl(2), PR_GET_SPECULATION_CTRL(2const)

2024-06-01 Linux man-pages (unreleased)