[PATCH v2 0/3] arch/x86: Enable MPK feature on AMD

From: Babu Moger
Date: Fri May 08 2020 - 17:09:52 EST


AMD's next generation of EPYC processors support the MPK (Memory
Protection Keys) feature.

AMD documentation for MPK feature is available at "AMD64 Architecture
Programmerâs Manual Volume 2: System Programming, Pub. 24593 Rev. 3.34,
Section 5.6.6 Memory Protection Keys (MPK) Bit".

The documentation can be obtained at the link below:
https://bugzilla.kernel.org/show_bug.cgi?id=206537

This series enables the feature on AMD and updates config parameters
to reflect the MPK support on generic x86 platforms.
---
v2:
- Introduced intermediate config option X86_MEMORY_PROTECTION_KEYS to
avoid user propmpts. Kept X86_INTEL_MEMORY_PROTECTION_KEYS as is.
Eventually, we will be moving to X86_MEMORY_PROTECTION_KEYS after
couple of kernel revisions.
- Moved pkru data structures to kvm_vcpu_arch. Moved save/restore pkru
to kvm_load_host_xsave_state/kvm_load_guest_xsave_state.

v1:
https://lore.kernel.org/lkml/158880240546.11615.2219410169137148044.stgit@xxxxxxxxxxxxxxxxxxx/

Babu Moger (3):
arch/x86: Rename config X86_INTEL_MEMORY_PROTECTION_KEYS to generic x86
KVM: x86: Move pkru save/restore to x86.c
KVM: SVM: Add support for MPK feature on AMD


Documentation/core-api/protection-keys.rst | 3 ++-
arch/x86/Kconfig | 11 +++++++++--
arch/x86/include/asm/disabled-features.h | 4 ++--
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/include/asm/mmu.h | 2 +-
arch/x86/include/asm/mmu_context.h | 4 ++--
arch/x86/include/asm/pgtable.h | 4 ++--
arch/x86/include/asm/pgtable_types.h | 2 +-
arch/x86/include/asm/special_insns.h | 2 +-
arch/x86/include/uapi/asm/mman.h | 2 +-
arch/x86/kernel/cpu/common.c | 2 +-
arch/x86/kvm/svm/svm.c | 4 ++++
arch/x86/kvm/vmx/vmx.c | 18 ------------------
arch/x86/kvm/x86.c | 20 ++++++++++++++++++++
arch/x86/mm/Makefile | 2 +-
arch/x86/mm/pkeys.c | 2 +-
scripts/headers_install.sh | 2 +-
tools/arch/x86/include/asm/disabled-features.h | 4 ++--
18 files changed, 52 insertions(+), 37 deletions(-)

--