mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 16:11:38 +00:00
b617cfc858
Add two new prctls to control aspects of speculation related vulnerabilites and their mitigations to provide finer grained control over performance impacting mitigations. PR_GET_SPECULATION_CTRL returns the state of the speculation misfeature which is selected with arg2 of prctl(2). The return value uses bit 0-2 with the following meaning: Bit Define Description 0 PR_SPEC_PRCTL Mitigation can be controlled per task by PR_SET_SPECULATION_CTRL 1 PR_SPEC_ENABLE The speculation feature is enabled, mitigation is disabled 2 PR_SPEC_DISABLE The speculation feature is disabled, mitigation is enabled If all bits are 0 the CPU is not affected by the speculation misfeature. If PR_SPEC_PRCTL is set, then the per task control of the mitigation is available. If not set, prctl(PR_SET_SPECULATION_CTRL) for the speculation misfeature will fail. PR_SET_SPECULATION_CTRL allows to control the speculation misfeature, which is selected by arg2 of prctl(2) per task. arg3 is used to hand in the control value, i.e. either PR_SPEC_ENABLE or PR_SPEC_DISABLE. The common return values are: EINVAL prctl is not implemented by the architecture or the unused prctl() arguments are not 0 ENODEV arg2 is selecting a not supported speculation misfeature PR_SET_SPECULATION_CTRL has these additional return values: ERANGE arg3 is incorrect, i.e. it's not either PR_SPEC_ENABLE or PR_SPEC_DISABLE ENXIO prctl control of the selected speculation misfeature is disabled The first supported controlable speculation misfeature is PR_SPEC_STORE_BYPASS. Add the define so this can be shared between architectures. Based on an initial patch from Tim Chen and mostly rewritten. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
30 lines
638 B
ReStructuredText
30 lines
638 B
ReStructuredText
=====================================
|
|
The Linux kernel user-space API guide
|
|
=====================================
|
|
|
|
.. _man-pages: https://www.kernel.org/doc/man-pages/
|
|
|
|
While much of the kernel's user-space API is documented elsewhere
|
|
(particularly in the man-pages_ project), some user-space information can
|
|
also be found in the kernel tree itself. This manual is intended to be the
|
|
place where this information is gathered.
|
|
|
|
.. class:: toc-title
|
|
|
|
Table of contents
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
|
|
no_new_privs
|
|
seccomp_filter
|
|
unshare
|
|
spec_ctrl
|
|
|
|
.. only:: subproject and html
|
|
|
|
Indices
|
|
=======
|
|
|
|
* :ref:`genindex`
|