Re: [RFC PATCH v4 08/28] x86: Extend the early_memremap support with additional attrs

From: Borislav Petkov
Date: Mon Feb 20 2017 - 10:45:34 EST


On Thu, Feb 16, 2017 at 09:43:48AM -0600, Tom Lendacky wrote:
> Add to the early_memremap support to be able to specify encrypted and

early_memremap()

Please append "()" to function names in your commit messages text.

> decrypted mappings with and without write-protection. The use of
> write-protection is necessary when encrypting data "in place". The
> write-protect attribute is considered cacheable for loads, but not
> stores. This implies that the hardware will never give the core a
> dirty line with this memtype.

By "hardware will never give" you mean that WP writes won't land dirty
in the cache but will go out to mem and when some other core needs them,
they will have to come from memory?

> Signed-off-by: Tom Lendacky <thomas.lendacky@xxxxxxx>
> ---
> arch/x86/Kconfig | 4 +++
> arch/x86/include/asm/fixmap.h | 13 ++++++++++
> arch/x86/include/asm/pgtable_types.h | 8 ++++++
> arch/x86/mm/ioremap.c | 44 ++++++++++++++++++++++++++++++++++
> include/asm-generic/early_ioremap.h | 2 ++
> mm/early_ioremap.c | 10 ++++++++
> 6 files changed, 81 insertions(+)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index a3b8c71..581eae4 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -1417,6 +1417,10 @@ config AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT
> If set to N, then the encryption of system memory can be
> activated with the mem_encrypt=on command line option.
>
> +config ARCH_USE_MEMREMAP_PROT
> + def_bool y
> + depends on AMD_MEM_ENCRYPT

Why do we need this?

IOW, all those helpers below will end up being defined unconditionally,
in practice. Think distro kernels. Then saving the couple of bytes is
not really worth the overhead.

--
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.