]> git.baikalelectronics.ru Git - kernel.git/commit
x86/mm: Decouple dynamic __PHYSICAL_MASK from AMD SME
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Fri, 18 May 2018 11:30:28 +0000 (14:30 +0300)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 6 Jun 2018 11:38:01 +0000 (13:38 +0200)
commit1540b40effab85ffd59b0f1e9cba841709d3d7c2
tree0c2c2a712fae357f64de8e330c4956bda1215255
parente4ee2cbd447ff99c8f4c3bb1e8c9dc6364e7f8b4
x86/mm: Decouple dynamic __PHYSICAL_MASK from AMD SME

AMD SME claims one bit from physical address to indicate whether the
page is encrypted or not. To achieve that we clear out the bit from
__PHYSICAL_MASK.

The capability to adjust __PHYSICAL_MASK is required beyond AMD SME.
For instance for upcoming Intel Multi-Key Total Memory Encryption.

Factor it out into a separate feature with own Kconfig handle.

It also helps with overhead of AMD SME. It saves more than 3k in .text
on defconfig + AMD_MEM_ENCRYPT:

add/remove: 3/2 grow/shrink: 5/110 up/down: 189/-3753 (-3564)

We would need to return to this once we have infrastructure to patch
constants in code. That's good candidate for it.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Cc: linux-mm@kvack.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Link: https://lkml.kernel.org/r/20180518113028.79825-1-kirill.shutemov@linux.intel.com
arch/x86/Kconfig
arch/x86/boot/compressed/kaslr_64.c
arch/x86/include/asm/page_types.h
arch/x86/mm/mem_encrypt_identity.c
arch/x86/mm/pgtable.c