jrsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget+/translations/zh_CN/userspace-api/spec_ctrlmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/userspace-api/spec_ctrlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/userspace-api/spec_ctrlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/userspace-api/spec_ctrlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/userspace-api/spec_ctrlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/userspace-api/spec_ctrlmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hSpeculation Controlh]hSpeculation Control}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhE/var/lib/git/docbuild/linux/Documentation/userspace-api/spec_ctrl.rsthKubh paragraph)}(hQuite some CPUs have speculation-related misfeatures which are in fact vulnerabilities causing data leaks in various forms even across privilege domains.h]hQuite some CPUs have speculation-related misfeatures which are in fact vulnerabilities causing data leaks in various forms even across privilege domains.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hThe kernel provides mitigation for such vulnerabilities in various forms. Some of these mitigations are compile-time configurable and some can be supplied on the kernel command line.h]hThe kernel provides mitigation for such vulnerabilities in various forms. Some of these mitigations are compile-time configurable and some can be supplied on the kernel command line.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hThere is also a class of mitigations which are very expensive, but they can be restricted to a certain set of processes or tasks in controlled environments. The mechanism to control these mitigations is via :manpage:`prctl(2)`.h](hThere is also a class of mitigations which are very expensive, but they can be restricted to a certain set of processes or tasks in controlled environments. The mechanism to control these mitigations is via }(hhhhhNhNubhmanpage)}(h:manpage:`prctl(2)`h]hprctl(2)}(hhhhhNhNubah}(h]h ]hah"]h$]h&] xml:spacepreservepathprctl(2)pageprctlsection2uh1hhhubh.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(h6There are two prctl options which are related to this:h]h6There are two prctl options which are related to this:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh block_quote)}(h5* PR_GET_SPECULATION_CTRL * PR_SET_SPECULATION_CTRL h]h bullet_list)}(hhh](h list_item)}(hPR_GET_SPECULATION_CTRL h]h)}(hPR_GET_SPECULATION_CTRLh]hPR_GET_SPECULATION_CTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hPR_SET_SPECULATION_CTRL h]h)}(hPR_SET_SPECULATION_CTRLh]hPR_SET_SPECULATION_CTRL}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j hhhKhhhhubh)}(hhh](h)}(hPR_GET_SPECULATION_CTRLh]hPR_GET_SPECULATION_CTRL}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhhhhhKubh)}(hPR_GET_SPECULATION_CTRL returns the state of the speculation misfeature which is selected with arg2 of prctl(2). The return value uses bits 0-3 with the following meaning:h]hPR_GET_SPECULATION_CTRL returns the state of the speculation misfeature which is selected with arg2 of prctl(2). The return value uses bits 0-3 with the following meaning:}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjXhhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj~ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj~ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK2uh1jhj~ubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hBith]hBit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hDefineh]hDefine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj~ubhtbody)}(hhh](j)}(hhh](j)}(hhh]h)}(h0h]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h PR_SPEC_PRCTLh]h PR_SPEC_PRCTL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hAMitigation can be controlled per task by PR_SET_SPECULATION_CTRL.h]hAMitigation can be controlled per task by PR_SET_SPECULATION_CTRL.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h1h]h1}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjTubah}(h]h ]h"]h$]h&]uh1jhjQubj)}(hhh]h)}(hPR_SPEC_ENABLEh]hPR_SPEC_ENABLE}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjkubah}(h]h ]h"]h$]h&]uh1jhjQubj)}(hhh]h)}(h;The speculation feature is enabled, mitigation is disabled.h]h;The speculation feature is enabled, mitigation is disabled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hhh]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPR_SPEC_DISABLEh]hPR_SPEC_DISABLE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h;The speculation feature is disabled, mitigation is enabled.h]h;The speculation feature is disabled, mitigation is enabled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h3h]h3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPR_SPEC_FORCE_DISABLEh]hPR_SPEC_FORCE_DISABLE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(haSame as PR_SPEC_DISABLE, but cannot be undone. A subsequent prctl(..., PR_SPEC_ENABLE) will fail.h]haSame as PR_SPEC_DISABLE, but cannot be undone. A subsequent prctl(..., PR_SPEC_ENABLE) will fail.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h4h]h4}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hj=ubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(hhh]h)}(hPR_SPEC_DISABLE_NOEXECh]hPR_SPEC_DISABLE_NOEXEC}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjTubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(hhh]h)}(hOSame as PR_SPEC_DISABLE, but the state will be cleared on :manpage:`execve(2)`.h](h:Same as PR_SPEC_DISABLE, but the state will be cleared on }(hjnhhhNhNubh)}(h:manpage:`execve(2)`h]h execve(2)}(hjvhhhNhNubah}(h]h ]hah"]h$]h&]hhh execve(2)hexecvehhuh1hhjnubh.}(hjnhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK*hjkubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]colsKuh1j|hjyubah}(h]h ]h"]h$]h&]uh1jwhjXhhhhhNubh)}(hHIf all bits are 0 the CPU is not affected by the speculation misfeature.h]hHIf all bits are 0 the CPU is not affected by the speculation misfeature.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjXhhubh)}(hIf 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.h]hIf 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjXhhubhtarget)}(h.. _set_spec_ctrl:h]h}(h]h ]h"]h$]h&]refid set-spec-ctrluh1jhK4hjXhhhhubeh}(h]pr-get-speculation-ctrlah ]h"]pr_get_speculation_ctrlah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hPR_SET_SPECULATION_CTRLh]hPR_SET_SPECULATION_CTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK7ubh)}(hPR_SET_SPECULATION_CTRL allows to control the speculation misfeature, which is selected by arg2 of :manpage:`prctl(2)` per task. arg3 is used to hand in the control value, i.e. either PR_SPEC_ENABLE or PR_SPEC_DISABLE or PR_SPEC_FORCE_DISABLE.h](hcPR_SET_SPECULATION_CTRL allows to control the speculation misfeature, which is selected by arg2 of }(hjhhhNhNubh)}(h:manpage:`prctl(2)`h]hprctl(2)}(hjhhhNhNubah}(h]h ]hah"]h$]h&]hhhprctl(2)hprctlhhuh1hhjubh} per task. arg3 is used to hand in the control value, i.e. either PR_SPEC_ENABLE or PR_SPEC_DISABLE or PR_SPEC_FORCE_DISABLE.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK9hjhhubeh}(h](pr-set-speculation-ctrljeh ]h"](pr_set_speculation_ctrl set_spec_ctrleh$]h&]uh1hhhhhhhhK7expect_referenced_by_name}jjsexpect_referenced_by_id}jjsubh)}(hhh](h)}(hCommon error codesh]hCommon error codes}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hhhhhK?ubjx)}(hhh]j})}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj5ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKAuh1jhj5ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hValueh]hValue}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjRubah}(h]h ]h"]h$]h&]uh1jhjOubj)}(hhh]h)}(hMeaningh]hMeaning}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjiubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhj5ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(hEINVALh]hEINVAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hXThe prctl is not implemented by the architecture or unused prctl(2) arguments are not 0.h]hXThe prctl is not implemented by the architecture or unused prctl(2) arguments are not 0.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hENODEVh]hENODEV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h9arg2 is selecting a not supported speculation misfeature.h]h9arg2 is selecting a not supported speculation misfeature.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]colsKuh1j|hj2ubah}(h]h ]h"]h$]h&]uh1jwhj!hhhhhNubeh}(h]common-error-codesah ]h"]common error codesah$]h&]uh1hhhhhhhhK?ubh)}(hhh](h)}(h#PR_SET_SPECULATION_CTRL error codesh]h#PR_SET_SPECULATION_CTRL error codes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKJubjx)}(hhh]j})}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj,ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKAuh1jhj,ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hValueh]hValue}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhjIubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(hhh]h)}(hMeaningh]hMeaning}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhj`ubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhj,ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(hj h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSuccessh]hSuccess}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hERANGEh]hERANGE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hbarg3 is incorrect, i.e. it's neither PR_SPEC_ENABLE nor PR_SPEC_DISABLE nor PR_SPEC_FORCE_DISABLE.h]hdarg3 is incorrect, i.e. it’s neither PR_SPEC_ENABLE nor PR_SPEC_DISABLE nor PR_SPEC_FORCE_DISABLE.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hENXIOh]hENXIO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h\Control of the selected speculation misfeature is not possible. See PR_GET_SPECULATION_CTRL.h]h\Control of the selected speculation misfeature is not possible. See PR_GET_SPECULATION_CTRL.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hEPERMh]hEPERM}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhj-ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(hXSpeculation was disabled with PR_SPEC_FORCE_DISABLE and caller tried to enable it again.h]hXSpeculation was disabled with PR_SPEC_FORCE_DISABLE and caller tried to enable it again.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjDubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]colsKuh1j|hj)ubah}(h]h ]h"]h$]h&]uh1jwhjhhhhhNubeh}(h]#pr-set-speculation-ctrl-error-codesah ]h"]#pr_set_speculation_ctrl error codesah$]h&]uh1hhhhhhhhKJubh)}(hhh](h)}(hSpeculation misfeature controlsh]hSpeculation misfeature controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hhhhhK[ubj)}(hhh](j)}(hXPR_SPEC_STORE_BYPASS: Speculative Store Bypass Invocations: * prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, 0, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_ENABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_FORCE_DISABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE_NOEXEC, 0, 0); h](h)}(h.PR_SPEC_STORE_BYPASS: Speculative Store Bypassh]h.PR_SPEC_STORE_BYPASS: Speculative Store Bypass}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjubhdefinition_list)}(hhh]hdefinition_list_item)}(hXInvocations: * prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, 0, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_ENABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_FORCE_DISABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE_NOEXEC, 0, 0); h](hterm)}(h Invocations:h]h Invocations:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKchjubh definition)}(hhh]j)}(hhh](j)}(h>prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, 0, 0, 0);h]h)}(hjh]h>prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, 0, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hKprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_ENABLE, 0, 0);h]h)}(hjh]hKprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_ENABLE, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hLprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);h]h)}(hjh]hLprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hRprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_FORCE_DISABLE, 0, 0);h]h)}(hj h]hRprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_FORCE_DISABLE, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hTprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE_NOEXEC, 0, 0); h]h)}(hSprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE_NOEXEC, 0, 0);h]hSprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE_NOEXEC, 0, 0);}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jPjQuh1jhhhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKchjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(hXPR_SPEC_INDIR_BRANCH: Indirect Branch Speculation in User Processes (Mitigate Spectre V2 style attacks against user processes) Invocations: * prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, 0, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_ENABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_DISABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_FORCE_DISABLE, 0, 0); h]j)}(hhh](j)}(hPR_SPEC_INDIR_BRANCH: Indirect Branch Speculation in User Processes (Mitigate Spectre V2 style attacks against user processes) h](j)}(hCPR_SPEC_INDIR_BRANCH: Indirect Branch Speculation in User Processesh]hCPR_SPEC_INDIR_BRANCH: Indirect Branch Speculation in User Processes}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKfhj^ubj)}(hhh]h)}(h:(Mitigate Spectre V2 style attacks against user processes)h]h:(Mitigate Spectre V2 style attacks against user processes)}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjpubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhhhKfhj[ubj)}(hXLInvocations: * prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, 0, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_ENABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_DISABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_FORCE_DISABLE, 0, 0); h](j)}(h Invocations:h]h Invocations:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKlhjubj)}(hhh]j)}(hhh](j)}(hAprctl(PR_GET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, 0, 0, 0);h]h)}(hjh]hAprctl(PR_GET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, 0, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hNprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_ENABLE, 0, 0);h]h)}(hjh]hNprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_ENABLE, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hOprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_DISABLE, 0, 0);h]h)}(hjh]hOprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_DISABLE, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hVprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_FORCE_DISABLE, 0, 0); h]h)}(hUprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_FORCE_DISABLE, 0, 0);h]hUprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_INDIRECT_BRANCH, PR_SPEC_FORCE_DISABLE, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jPjQuh1jhhhKihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKlhj[ubeh}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(hXmPR_SPEC_L1D_FLUSH: Flush L1D Cache on context switch out of the task (works only when tasks run on non SMT cores) Invocations: * prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, 0, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, PR_SPEC_ENABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, PR_SPEC_DISABLE, 0, 0);h]j)}(hhh](j)}(hrPR_SPEC_L1D_FLUSH: Flush L1D Cache on context switch out of the task (works only when tasks run on non SMT cores) h](j)}(hDPR_SPEC_L1D_FLUSH: Flush L1D Cache on context switch out of the taskh]hDPR_SPEC_L1D_FLUSH: Flush L1D Cache on context switch out of the task}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKohj'ubj)}(hhh]h)}(h,(works only when tasks run on non SMT cores)h]h,(works only when tasks run on non SMT cores)}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohj9ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhhhKohj$ubj)}(hInvocations: * prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, 0, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, PR_SPEC_ENABLE, 0, 0); * prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, PR_SPEC_DISABLE, 0, 0);h](j)}(h Invocations:h]h Invocations:}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKshjVubj)}(hhh]j)}(hhh](j)}(h;prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, 0, 0, 0);h]h)}(hjph]h;prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, 0, 0, 0);}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjnubah}(h]h ]h"]h$]h&]uh1jhjkubj)}(hHprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, PR_SPEC_ENABLE, 0, 0);h]h)}(hjh]hHprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, PR_SPEC_ENABLE, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshjubah}(h]h ]h"]h$]h&]uh1jhjkubj)}(hIprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, PR_SPEC_DISABLE, 0, 0);h]h)}(hjh]hIprctl(PR_SET_SPECULATION_CTRL, PR_SPEC_L1D_FLUSH, PR_SPEC_DISABLE, 0, 0);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]jPjQuh1jhhhKrhjhubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhhhKshj$ubeh}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubeh}(h]h ]h"]h$]h&]jP-uh1jhhhK\hj|hhubeh}(h]speculation-misfeature-controlsah ]h"]speculation misfeature controlsah$]h&]uh1hhhhhhhhK[ubeh}(h]speculation-controlah ]h"]speculation controlah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}j]jasnameids}(jjjjjjjjjjjyjvjju nametypes}(jjjjjjyjuh}(jhjjXjjjjjj!jvjjj|u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]h3Hyperlink target "set-spec-ctrl" is not referenced.}hjt sbah}(h]h ]h"]h$]h&]uh1hhjq ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineK4uh1jo uba transformerN include_log] decorationNhhub.