[PATCH 0/6] mm, x86, powerpc: Memory Protection Keys enhancement

From: Ram Pai
Date: Fri Sep 15 2017 - 21:21:42 EST


The patch-series enhances memory protection keys feature.

The patch(1) introduces an additional vma bit to support 32
pkeys. PowerPC supports 32 pkeys.

The patch(2,3) introduces a new interface arch_pkeys_enabled(),
this interface can be used by arch-neutral code to display
protection key value in smap.

The patch(4) introduces a syfs interface, to display the static
attributes of the protection key. Eg: max number of keys.

The last two patches, (5,6) update documentation.

A separate patch series that enhances selftest will follow. The
entire patch series that enables pkeys on powerpc is at
https://github.com/rampai/memorykeys.git memkey.v9-rc1

Testing:
-------
This patches are tested on powerpc platform using a
enhaced set of selftests.
Could not test on x86 since I do not have access to
one with pkey support.

History:
-------
version v3:
(1) sysfs interface - thanks Thiago.
(2) Documentation update.

version v2:
(1) Documentation is updated to better
capture the semantics.
(2) introduced arch_pkeys_enabled() to find
if an arch enables pkeys. Correspond-
ing change in logic that displays key
value in smaps.
(3) code rearranged in many places based on
comments from Dave Hansen, Balbir,
Anshuman.
version v1: Initial version

Ram Pai (5):
mm: introduce an additional vma bit for powerpc pkey
mm, x86 : introduce arch_pkeys_enabled()
mm: display pkey in smaps if arch_pkeys_enabled() is true
Documentation/x86: Move protecton key documentation to arch neutral
directory
Documentation/vm: PowerPC specific updates to memory protection keys

Thiago Jung Bauermann (1):
mm/mprotect, powerpc/mm/pkeys, x86/mm/pkeys: Add sysfs interface

Documentation/vm/protection-keys.txt | 160 +++++++++++++++++++++++++++++++++
Documentation/x86/protection-keys.txt | 85 -----------------
arch/powerpc/include/asm/pkeys.h | 2 +
arch/powerpc/mm/pkeys.c | 20 ++++
arch/x86/include/asm/mmu_context.h | 4 +-
arch/x86/include/asm/pkeys.h | 2 +
arch/x86/kernel/fpu/xstate.c | 5 +
arch/x86/kernel/setup.c | 8 --
arch/x86/mm/pkeys.c | 8 ++
fs/proc/task_mmu.c | 17 ++--
include/linux/mm.h | 16 ++--
include/linux/pkeys.h | 9 ++
mm/mprotect.c | 88 ++++++++++++++++++
13 files changed, 317 insertions(+), 107 deletions(-)
create mode 100644 Documentation/vm/protection-keys.txt
delete mode 100644 Documentation/x86/protection-keys.txt