Skip to content

RFC add manpages for Memory Protection Keys

Dave Hansen linux-api linux-man 1 version In review

Get series with b4
b4 am 20160608173351.5CF7B2D3@ray

Versions newest first

  1. v4 RFC Latest6 patches 2 repliesIn review

Changes in v4 from the cover letter

* Split patches up, one per manpage.
* Started new sentences on new lines.
* Added description of default key to pkey.7
* reindented and fixed up sys_ in example code, s/err/status/, also removed assert()s.
* Various other fixes in response to Michael's review

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6pkey.7: New page with overview of Memory Protection Keysman7/pkey.7+230 -02 replies
2/6mprotect.2: add pkey_mprotect() syscallman2/mprotect.2+41 -30 replies
3/6pkey_alloc.2: New page describing protection key allocation and freeman2/pkey_alloc.2+109 -00 replies
4/6pkey_get.2: New page desribing pkey rights manipulation syscallsman2/pkey_get.2+109 -00 replies
5/6sigaction.2: describe siginfo changes from pkey-induced signalsman2/sigaction.2+9 -00 replies
6/6proc.5: describe new ProtectionKey smaps fieldman5/proc.5+7 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v4 yet.

Read the v4 thread

Cover letter [PATCH 0/6] [RFCv4] add manpages for Memory Protection Keys

From: Dave Hansen <dave.hansen-VuQAYsv1563Yd54FQh9/[email protected]>

Changes from v3:
* Split patches up, one per manpage.
* Started new sentences on new lines.
* Added description of default key to pkey.7
* reindented and fixed up sys_ in example code, s/err/status/, also removed assert()s.
* Various other fixes in response to Michael's review

One outstanding issue is the language and behavior for the PKEY_DISABLE_ACCESS/WRITE flags. Should the manpage describe the acceptable number of flags as "zero or more" or "zero or one"?

Changes from v2:
* clarified that calling pkey_free() on a pkey in use by a mapping is bad.

--

Memory Protection Keys for User pages is an Intel CPU feature which will first appear on Skylake Servers, but will also be supported on future non-server parts (there is also a QEMU implementation). It provides a mechanism for enforcing page-based protections, but without requiring modification of the page tables when an application wishes to change permissions.

I have propsed adding five new system calls to support this feature. The five calls are distributed across three man-pages (one existing and 2 new), plus a new pkey(7) page which serves as a general overview of the feature.

The system calls for this feature are not currently upstream but can be found here:

http://git.kernel.org/cgit/linux/kernel/git/daveh/x86-pkeys.git/