diff options
author | Dave Airlie <airlied@redhat.com> | 2016-05-09 05:49:56 +0200 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-05-09 05:49:56 +0200 |
commit | bafb86f5bc3173479002555dea7f31d943b12332 (patch) | |
tree | 6ec94c96460faf782cdb8781339560e13e0918b0 /Documentation/x86/protection-keys.txt | |
parent | drm/amdgpu: fix build on aarch64. (diff) | |
parent | Linux 4.6-rc7 (diff) | |
download | linux-bafb86f5bc3173479002555dea7f31d943b12332.tar.xz linux-bafb86f5bc3173479002555dea7f31d943b12332.zip |
Merge tag 'v4.6-rc7' into drm-next
Merge this back as we've built up a fair few conflicts, and I have
some newer trees to pull in.
Diffstat (limited to 'Documentation/x86/protection-keys.txt')
-rw-r--r-- | Documentation/x86/protection-keys.txt | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Documentation/x86/protection-keys.txt b/Documentation/x86/protection-keys.txt new file mode 100644 index 000000000000..c281ded1ba16 --- /dev/null +++ b/Documentation/x86/protection-keys.txt @@ -0,0 +1,27 @@ +Memory Protection Keys for Userspace (PKU aka PKEYs) is a CPU feature +which will be found on future Intel CPUs. + +Memory Protection Keys provides a mechanism for enforcing page-based +protections, but without requiring modification of the page tables +when an application changes protection domains. It works by +dedicating 4 previously ignored bits in each page table entry to a +"protection key", giving 16 possible keys. + +There is also a new user-accessible register (PKRU) with two separate +bits (Access Disable and Write Disable) for each key. Being a CPU +register, PKRU is inherently thread-local, potentially giving each +thread a different set of protections from every other thread. + +There are two new instructions (RDPKRU/WRPKRU) for reading and writing +to the new register. The feature is only available in 64-bit mode, +even though there is theoretically space in the PAE PTEs. These +permissions are enforced on data access only and have no effect on +instruction fetches. + +=========================== Config Option =========================== + +This config option adds approximately 1.5kb of text. and 50 bytes of +data to the executable. A workload which does large O_DIRECT reads +of holes in XFS files was run to exercise get_user_pages_fast(). No +performance delta was observed with the config option +enabled or disabled. |