diff options
Diffstat (limited to 'man/man2')
| -rw-r--r-- | man/man2/prctl.2 | 95 |
1 files changed, 3 insertions, 92 deletions
diff --git a/man/man2/prctl.2 b/man/man2/prctl.2 index f2e0b453ef..2c46923e40 100644 --- a/man/man2/prctl.2 +++ b/man/man2/prctl.2 @@ -25,7 +25,6 @@ .\" 2012-10-25 Michael Kerrisk, Document PR_SET_TIMERSLACK and .\" PR_GET_TIMERSLACK .\" 2013-01-10 Kees Cook, document PR_SET_PTRACER -.\" 2014-11-10 Dave Hansen, document PR_MPX_{EN,DIS}ABLE_MANAGEMENT .\" .\" .TH prctl 2 (date) "Linux man-pages (unreleased)" @@ -102,91 +101,10 @@ The first argument can be: .B PR_SET_MM .TQ .B PR_SET_VMA -.\" prctl PR_MPX_ENABLE_MANAGEMENT -.TP +.TQ .B PR_MPX_ENABLE_MANAGEMENT .TQ -.BR PR_MPX_DISABLE_MANAGEMENT " (since Linux 3.19, removed in Linux 5.4; only on x86)" -.\" commit fe3d197f84319d3bce379a9c0dc17b1f48ad358c -.\" See also http://lwn.net/Articles/582712/ -.\" See also https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler -Enable or disable kernel management of Memory Protection eXtensions (MPX) -bounds tables. -The -.IR arg2 , -.IR arg3 , -.IR arg4 , -and -.I arg5 -.\" commit e9d1b4f3c60997fe197bf0243cb4a41a44387a88 -arguments must be zero. -.IP -MPX is a hardware-assisted mechanism for performing bounds checking on -pointers. -It consists of a set of registers storing bounds information -and a set of special instruction prefixes that tell the CPU on which -instructions it should do bounds enforcement. -There is a limited number of these registers and -when there are more pointers than registers, -their contents must be "spilled" into a set of tables. -These tables are called "bounds tables" and the MPX -.BR prctl () -operations control -whether the kernel manages their allocation and freeing. -.IP -When management is enabled, the kernel will take over allocation -and freeing of the bounds tables. -It does this by trapping the #BR exceptions that result -at first use of missing bounds tables and -instead of delivering the exception to user space, -it allocates the table and populates the bounds directory -with the location of the new table. -For freeing, the kernel checks to see if bounds tables are -present for memory which is not allocated, and frees them if so. -.IP -Before enabling MPX management using -.BR PR_MPX_ENABLE_MANAGEMENT , -the application must first have allocated a user-space buffer for -the bounds directory and placed the location of that directory in the -.I bndcfgu -register. -.IP -These calls fail if the CPU or kernel does not support MPX. -Kernel support for MPX is enabled via the -.B CONFIG_X86_INTEL_MPX -configuration option. -You can check whether the CPU supports MPX by looking for the -.I mpx -CPUID bit, like with the following command: -.IP -.in +4n -.EX -cat /proc/cpuinfo | grep \[aq] mpx \[aq] -.EE -.in -.IP -A thread may not switch in or out of long (64-bit) mode while MPX is -enabled. -.IP -All threads in a process are affected by these calls. -.IP -The child of a -.BR fork (2) -inherits the state of MPX management. -During -.BR execve (2), -MPX management is reset to a state as if .B PR_MPX_DISABLE_MANAGEMENT -had been called. -.IP -For further information on Intel MPX, see the kernel source file -.IR Documentation/x86/intel_mpx.txt . -.IP -.\" commit f240652b6032b48ad7fa35c5e701cc4c8d697c0b -.\" See also https://lkml.kernel.org/r/20190705175321.DB42F0AD@viggo.jf.intel.com -Due to a lack of toolchain support, -.BR PR_MPX_ENABLE_MANAGEMENT " and " PR_MPX_DISABLE_MANAGEMENT -are not supported in Linux 5.4 and later. .\" prctl PR_SET_NAME .TP .BR PR_SET_NAME " (since Linux 2.6.9)" @@ -1572,15 +1490,6 @@ the kernel or CPU does not support the requested speculation misfeature. .B ENXIO .I op was -.B PR_MPX_ENABLE_MANAGEMENT -or -.B PR_MPX_DISABLE_MANAGEMENT -and the kernel or the CPU does not support MPX management. -Check that the kernel and processor have MPX support. -.TP -.B ENXIO -.I op -was .B PR_SET_SPECULATION_CTRL implies that the control of the selected speculation misfeature is not possible. See @@ -1666,4 +1575,6 @@ glibc 2.0.6 .BR PR_MCE_KILL_GET (2const), .BR PR_SET_MM (2const), .BR PR_SET_VMA (2const), +.BR PR_MPX_ENABLE_MANAGEMENT (2const), +.BR PR_MPX_DISABLE_MANAGEMENT (2const), .BR core (5) |
