All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: Tom Lendacky <thomas.lendacky@amd.com>
Cc: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org,
	kvm@vger.kernel.org, linux-doc@vger.kernel.org, x86@kernel.org,
	linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com,
	linux-mm@kvack.org, iommu@lists.linux-foundation.org,
	"Rik van Riel" <riel@redhat.com>,
	"Radim Krčmář" <rkrcmar@redhat.com>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Matt Fleming" <matt@codeblueprint.co.uk>,
	"Joerg Roedel" <joro@8bytes.org>,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Larry Woodman" <lwoodman@redhat.com>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Andy Lutomirski" <luto@kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Andrey Ryabinin" <aryabinin@virtuozzo.com>,
	"Alexander Potapenko" <glider@google.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Dmitry Vyukov" <dvyukov@google.com>
Subject: Re: [RFC PATCH v3 08/20] x86: Add support for early encryption/decryption of memory
Date: Wed, 16 Nov 2016 11:46:56 +0100	[thread overview]
Message-ID: <20161116104656.qz5wp33zzyja373r@pd.tnic> (raw)
In-Reply-To: <20161110003610.3280.22043.stgit@tlendack-t1.amdoffice.net>

Btw, for your next submission, this patch can be split in two exactly
like the commit message paragraphs are:

On Wed, Nov 09, 2016 at 06:36:10PM -0600, Tom Lendacky wrote:
> Add support to be able to either encrypt or decrypt data in place during
> the early stages of booting the kernel. This does not change the memory
> encryption attribute - it is used for ensuring that data present in either
> an encrypted or un-encrypted memory area is in the proper state (for
> example the initrd will have been loaded by the boot loader and will not be
> encrypted, but the memory that it resides in is marked as encrypted).

Patch 2: users of the new memmap change

> The early_memmap support is enhanced to specify encrypted and un-encrypted
> 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.

Patch 1: change memmap

This makes this aspect of the patchset much clearer and is better for
bisection.

> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
> ---
>  arch/x86/include/asm/fixmap.h        |    9 +++
>  arch/x86/include/asm/mem_encrypt.h   |   15 +++++
>  arch/x86/include/asm/pgtable_types.h |    8 +++
>  arch/x86/mm/ioremap.c                |   28 +++++++++
>  arch/x86/mm/mem_encrypt.c            |  102 ++++++++++++++++++++++++++++++++++
>  include/asm-generic/early_ioremap.h  |    2 +
>  mm/early_ioremap.c                   |   15 +++++
>  7 files changed, 179 insertions(+)

...

> diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
> index d642cc5..06235b4 100644
> --- a/arch/x86/mm/mem_encrypt.c
> +++ b/arch/x86/mm/mem_encrypt.c
> @@ -14,6 +14,9 @@
>  #include <linux/init.h>
>  #include <linux/mm.h>
>  
> +#include <asm/tlbflush.h>
> +#include <asm/fixmap.h>
> +
>  extern pmdval_t early_pmd_flags;
>  
>  /*
> @@ -24,6 +27,105 @@ extern pmdval_t early_pmd_flags;
>  unsigned long sme_me_mask __section(.data) = 0;
>  EXPORT_SYMBOL_GPL(sme_me_mask);
>  
> +/* Buffer used for early in-place encryption by BSP, no locking needed */
> +static char sme_early_buffer[PAGE_SIZE] __aligned(PAGE_SIZE);
> +
> +/*
> + * This routine does not change the underlying encryption setting of the
> + * page(s) that map this memory. It assumes that eventually the memory is
> + * meant to be accessed as encrypted but the contents are currently not
> + * encrypted.
> + */
> +void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
> +{
> +	void *src, *dst;
> +	size_t len;
> +
> +	if (!sme_me_mask)
> +		return;
> +
> +	local_flush_tlb();
> +	wbinvd();
> +
> +	/*
> +	 * There are limited number of early mapping slots, so map (at most)
> +	 * one page at time.
> +	 */
> +	while (size) {
> +		len = min_t(size_t, sizeof(sme_early_buffer), size);
> +
> +		/* Create a mapping for non-encrypted write-protected memory */
> +		src = early_memremap_dec_wp(paddr, len);
> +
> +		/* Create a mapping for encrypted memory */
> +		dst = early_memremap_enc(paddr, len);
> +
> +		/*
> +		 * If a mapping can't be obtained to perform the encryption,
> +		 * then encrypted access to that area will end up causing
> +		 * a crash.
> +		 */
> +		BUG_ON(!src || !dst);
> +
> +		memcpy(sme_early_buffer, src, len);
> +		memcpy(dst, sme_early_buffer, len);

I still am missing the short explanation why we need the temporary buffer.


Oh, and we can save us the code duplication a little. Diff ontop of yours:

---
diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
index 06235b477d7c..50e2c4fc7338 100644
--- a/arch/x86/mm/mem_encrypt.c
+++ b/arch/x86/mm/mem_encrypt.c
@@ -36,7 +36,8 @@ static char sme_early_buffer[PAGE_SIZE] __aligned(PAGE_SIZE);
  * meant to be accessed as encrypted but the contents are currently not
  * encrypted.
  */
-void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
+static void __init noinline
+__mem_enc_dec(resource_size_t paddr, unsigned long size, bool enc)
 {
 	void *src, *dst;
 	size_t len;
@@ -54,15 +55,15 @@ void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
 	while (size) {
 		len = min_t(size_t, sizeof(sme_early_buffer), size);
 
-		/* Create a mapping for non-encrypted write-protected memory */
-		src = early_memremap_dec_wp(paddr, len);
+		src = (enc ? early_memremap_dec_wp(paddr, len)
+			   : early_memremap_enc_wp(paddr, len));
 
-		/* Create a mapping for encrypted memory */
-		dst = early_memremap_enc(paddr, len);
+		dst = (enc ? early_memremap_enc(paddr, len)
+			   : early_memremap_dec(paddr, len));
 
 		/*
-		 * If a mapping can't be obtained to perform the encryption,
-		 * then encrypted access to that area will end up causing
+		 * If a mapping can't be obtained to perform the dec/encryption,
+		 * then (un-)encrypted access to that area will end up causing
 		 * a crash.
 		 */
 		BUG_ON(!src || !dst);
@@ -78,52 +79,14 @@ void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
 	}
 }
 
-/*
- * This routine does not change the underlying encryption setting of the
- * page(s) that map this memory. It assumes that eventually the memory is
- * meant to be accessed as not encrypted but the contents are currently
- * encrypted.
- */
-void __init sme_early_mem_dec(resource_size_t paddr, unsigned long size)
+void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
 {
-	void *src, *dst;
-	size_t len;
-
-	if (!sme_me_mask)
-		return;
-
-	local_flush_tlb();
-	wbinvd();
-
-	/*
-	 * There are limited number of early mapping slots, so map (at most)
-	 * one page at time.
-	 */
-	while (size) {
-		len = min_t(size_t, sizeof(sme_early_buffer), size);
-
-		/* Create a mapping for encrypted write-protected memory */
-		src = early_memremap_enc_wp(paddr, len);
-
-		/* Create a mapping for non-encrypted memory */
-		dst = early_memremap_dec(paddr, len);
-
-		/*
-		 * If a mapping can't be obtained to perform the decryption,
-		 * then un-encrypted access to that area will end up causing
-		 * a crash.
-		 */
-		BUG_ON(!src || !dst);
-
-		memcpy(sme_early_buffer, src, len);
-		memcpy(dst, sme_early_buffer, len);
-
-		early_memunmap(dst, len);
-		early_memunmap(src, len);
+	return __mem_enc_dec(paddr, size, true);
+}
 
-		paddr += len;
-		size -= len;
-	}
+void __init sme_early_mem_dec(resource_size_t paddr, unsigned long size)
+{
+	return __mem_enc_dec(paddr, size, false);
 }
 
 void __init sme_early_init(void)

-- 
Regards/Gruss,
    Boris.

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

WARNING: multiple messages have this Message-ID (diff)
From: Borislav Petkov <bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org>
To: Tom Lendacky <thomas.lendacky-5C7GfCeVMHo@public.gmane.org>
Cc: linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	kasan-dev-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
	linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	"Rik van Riel" <riel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Radim Krčmář" <rkrcmar-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Arnd Bergmann" <arnd-r2nGTMty4D4@public.gmane.org>,
	"Jonathan Corbet" <corbet-T1hC0tSOHrs@public.gmane.org>,
	"Matt Fleming"
	<matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>,
	"Joerg Roedel" <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>,
	"Konrad Rzeszutek Wilk"
	<konrad.wilk-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
	"Paolo Bonzini"
	<pbonzini-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Larry Woodman"
	<lwoodman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Ingo Molnar" <mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Andy Lutomirski" <luto-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>,
	"Andrey Ryabinin"
	<aryabinin-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org>,
	"Alexander Potapenko"
	<glider-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC PATCH v3 08/20] x86: Add support for early encryption/decryption of memory
Date: Wed, 16 Nov 2016 11:46:56 +0100	[thread overview]
Message-ID: <20161116104656.qz5wp33zzyja373r@pd.tnic> (raw)
In-Reply-To: <20161110003610.3280.22043.stgit-qCXWGYdRb2BnqfbPTmsdiZQ+2ll4COg0XqFh9Ls21Oc@public.gmane.org>

Btw, for your next submission, this patch can be split in two exactly
like the commit message paragraphs are:

On Wed, Nov 09, 2016 at 06:36:10PM -0600, Tom Lendacky wrote:
> Add support to be able to either encrypt or decrypt data in place during
> the early stages of booting the kernel. This does not change the memory
> encryption attribute - it is used for ensuring that data present in either
> an encrypted or un-encrypted memory area is in the proper state (for
> example the initrd will have been loaded by the boot loader and will not be
> encrypted, but the memory that it resides in is marked as encrypted).

Patch 2: users of the new memmap change

> The early_memmap support is enhanced to specify encrypted and un-encrypted
> 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.

Patch 1: change memmap

This makes this aspect of the patchset much clearer and is better for
bisection.

> Signed-off-by: Tom Lendacky <thomas.lendacky-5C7GfCeVMHo@public.gmane.org>
> ---
>  arch/x86/include/asm/fixmap.h        |    9 +++
>  arch/x86/include/asm/mem_encrypt.h   |   15 +++++
>  arch/x86/include/asm/pgtable_types.h |    8 +++
>  arch/x86/mm/ioremap.c                |   28 +++++++++
>  arch/x86/mm/mem_encrypt.c            |  102 ++++++++++++++++++++++++++++++++++
>  include/asm-generic/early_ioremap.h  |    2 +
>  mm/early_ioremap.c                   |   15 +++++
>  7 files changed, 179 insertions(+)

...

> diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
> index d642cc5..06235b4 100644
> --- a/arch/x86/mm/mem_encrypt.c
> +++ b/arch/x86/mm/mem_encrypt.c
> @@ -14,6 +14,9 @@
>  #include <linux/init.h>
>  #include <linux/mm.h>
>  
> +#include <asm/tlbflush.h>
> +#include <asm/fixmap.h>
> +
>  extern pmdval_t early_pmd_flags;
>  
>  /*
> @@ -24,6 +27,105 @@ extern pmdval_t early_pmd_flags;
>  unsigned long sme_me_mask __section(.data) = 0;
>  EXPORT_SYMBOL_GPL(sme_me_mask);
>  
> +/* Buffer used for early in-place encryption by BSP, no locking needed */
> +static char sme_early_buffer[PAGE_SIZE] __aligned(PAGE_SIZE);
> +
> +/*
> + * This routine does not change the underlying encryption setting of the
> + * page(s) that map this memory. It assumes that eventually the memory is
> + * meant to be accessed as encrypted but the contents are currently not
> + * encrypted.
> + */
> +void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
> +{
> +	void *src, *dst;
> +	size_t len;
> +
> +	if (!sme_me_mask)
> +		return;
> +
> +	local_flush_tlb();
> +	wbinvd();
> +
> +	/*
> +	 * There are limited number of early mapping slots, so map (at most)
> +	 * one page at time.
> +	 */
> +	while (size) {
> +		len = min_t(size_t, sizeof(sme_early_buffer), size);
> +
> +		/* Create a mapping for non-encrypted write-protected memory */
> +		src = early_memremap_dec_wp(paddr, len);
> +
> +		/* Create a mapping for encrypted memory */
> +		dst = early_memremap_enc(paddr, len);
> +
> +		/*
> +		 * If a mapping can't be obtained to perform the encryption,
> +		 * then encrypted access to that area will end up causing
> +		 * a crash.
> +		 */
> +		BUG_ON(!src || !dst);
> +
> +		memcpy(sme_early_buffer, src, len);
> +		memcpy(dst, sme_early_buffer, len);

I still am missing the short explanation why we need the temporary buffer.


Oh, and we can save us the code duplication a little. Diff ontop of yours:

---
diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
index 06235b477d7c..50e2c4fc7338 100644
--- a/arch/x86/mm/mem_encrypt.c
+++ b/arch/x86/mm/mem_encrypt.c
@@ -36,7 +36,8 @@ static char sme_early_buffer[PAGE_SIZE] __aligned(PAGE_SIZE);
  * meant to be accessed as encrypted but the contents are currently not
  * encrypted.
  */
-void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
+static void __init noinline
+__mem_enc_dec(resource_size_t paddr, unsigned long size, bool enc)
 {
 	void *src, *dst;
 	size_t len;
@@ -54,15 +55,15 @@ void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
 	while (size) {
 		len = min_t(size_t, sizeof(sme_early_buffer), size);
 
-		/* Create a mapping for non-encrypted write-protected memory */
-		src = early_memremap_dec_wp(paddr, len);
+		src = (enc ? early_memremap_dec_wp(paddr, len)
+			   : early_memremap_enc_wp(paddr, len));
 
-		/* Create a mapping for encrypted memory */
-		dst = early_memremap_enc(paddr, len);
+		dst = (enc ? early_memremap_enc(paddr, len)
+			   : early_memremap_dec(paddr, len));
 
 		/*
-		 * If a mapping can't be obtained to perform the encryption,
-		 * then encrypted access to that area will end up causing
+		 * If a mapping can't be obtained to perform the dec/encryption,
+		 * then (un-)encrypted access to that area will end up causing
 		 * a crash.
 		 */
 		BUG_ON(!src || !dst);
@@ -78,52 +79,14 @@ void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
 	}
 }
 
-/*
- * This routine does not change the underlying encryption setting of the
- * page(s) that map this memory. It assumes that eventually the memory is
- * meant to be accessed as not encrypted but the contents are currently
- * encrypted.
- */
-void __init sme_early_mem_dec(resource_size_t paddr, unsigned long size)
+void __init sme_early_mem_enc(resource_size_t paddr, unsigned long size)
 {
-	void *src, *dst;
-	size_t len;
-
-	if (!sme_me_mask)
-		return;
-
-	local_flush_tlb();
-	wbinvd();
-
-	/*
-	 * There are limited number of early mapping slots, so map (at most)
-	 * one page at time.
-	 */
-	while (size) {
-		len = min_t(size_t, sizeof(sme_early_buffer), size);
-
-		/* Create a mapping for encrypted write-protected memory */
-		src = early_memremap_enc_wp(paddr, len);
-
-		/* Create a mapping for non-encrypted memory */
-		dst = early_memremap_dec(paddr, len);
-
-		/*
-		 * If a mapping can't be obtained to perform the decryption,
-		 * then un-encrypted access to that area will end up causing
-		 * a crash.
-		 */
-		BUG_ON(!src || !dst);
-
-		memcpy(sme_early_buffer, src, len);
-		memcpy(dst, sme_early_buffer, len);
-
-		early_memunmap(dst, len);
-		early_memunmap(src, len);
+	return __mem_enc_dec(paddr, size, true);
+}
 
-		paddr += len;
-		size -= len;
-	}
+void __init sme_early_mem_dec(resource_size_t paddr, unsigned long size)
+{
+	return __mem_enc_dec(paddr, size, false);
 }
 
 void __init sme_early_init(void)

-- 
Regards/Gruss,
    Boris.

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

  reply	other threads:[~2016-11-16 10:47 UTC|newest]

Thread overview: 244+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-10  0:34 [RFC PATCH v3 00/20] x86: Secure Memory Encryption (AMD) Tom Lendacky
2016-11-10  0:34 ` Tom Lendacky
2016-11-10  0:34 ` Tom Lendacky
2016-11-10  0:34 ` Tom Lendacky
2016-11-10  0:34 ` [RFC PATCH v3 01/20] x86: Documentation for AMD Secure Memory Encryption (SME) Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-10 10:51   ` Borislav Petkov
2016-11-10 10:51     ` Borislav Petkov
2016-11-14 17:15     ` Tom Lendacky
2016-11-14 17:15       ` Tom Lendacky
2016-11-14 17:15       ` Tom Lendacky
2016-11-10  0:34 ` [RFC PATCH v3 02/20] x86: Set the write-protect cache mode for full PAT support Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-10 13:14   ` Borislav Petkov
2016-11-10 13:14     ` Borislav Petkov
2016-11-11  1:26     ` Kani, Toshimitsu
2016-11-11  1:26       ` Kani, Toshimitsu
2016-11-11  1:26       ` Kani, Toshimitsu
2016-11-14 16:51       ` Tom Lendacky
2016-11-14 16:51         ` Tom Lendacky
2016-11-14 16:51         ` Tom Lendacky
2016-11-14 16:51         ` Tom Lendacky
2016-11-10  0:34 ` [RFC PATCH v3 03/20] x86: Add the Secure Memory Encryption cpu feature Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-10  0:34   ` Tom Lendacky
2016-11-11 11:53   ` Borislav Petkov
2016-11-11 11:53     ` Borislav Petkov
2016-11-10  0:35 ` [RFC PATCH v3 04/20] x86: Handle reduction in physical address size with SME Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-15 12:10   ` Joerg Roedel
2016-11-15 12:10     ` Joerg Roedel
2016-11-15 12:10     ` Joerg Roedel
2016-11-15 12:14     ` Borislav Petkov
2016-11-15 12:14       ` Borislav Petkov
2016-11-15 14:40       ` Tom Lendacky
2016-11-15 14:40         ` Tom Lendacky
2016-11-15 15:33         ` Borislav Petkov
2016-11-15 15:33           ` Borislav Petkov
2016-11-15 15:33           ` Borislav Petkov
2016-11-15 16:06           ` Tom Lendacky
2016-11-15 16:06             ` Tom Lendacky
2016-11-15 16:06             ` Tom Lendacky
2016-11-15 16:33             ` Borislav Petkov
2016-11-15 16:33               ` Borislav Petkov
2016-11-15 17:08               ` Tom Lendacky
2016-11-15 17:08                 ` Tom Lendacky
2016-11-15 17:08                 ` Tom Lendacky
2016-11-15 21:22       ` Tom Lendacky
2016-11-15 21:22         ` Tom Lendacky
2016-11-15 21:22         ` Tom Lendacky
2016-11-15 21:33         ` Borislav Petkov
2016-11-15 21:33           ` Borislav Petkov
2016-11-15 21:33           ` Borislav Petkov
2016-11-15 22:01           ` Tom Lendacky
2016-11-15 22:01             ` Tom Lendacky
2016-11-15 14:32     ` Tom Lendacky
2016-11-15 14:32       ` Tom Lendacky
2016-11-15 14:32       ` Tom Lendacky
2016-11-10  0:35 ` [RFC PATCH v3 05/20] x86: Add Secure Memory Encryption (SME) support Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35 ` [RFC PATCH v3 06/20] x86: Add support to enable SME during early boot processing Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-14 17:29   ` Borislav Petkov
2016-11-14 17:29     ` Borislav Petkov
2016-11-14 18:18     ` Tom Lendacky
2016-11-14 18:18       ` Tom Lendacky
2016-11-14 18:18       ` Tom Lendacky
2016-11-14 20:01       ` Borislav Petkov
2016-11-14 20:01         ` Borislav Petkov
2016-11-10  0:35 ` [RFC PATCH v3 07/20] x86: Provide general kernel support for memory encryption Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:35   ` Tom Lendacky
2016-11-10  0:36 ` [RFC PATCH v3 08/20] x86: Add support for early encryption/decryption of memory Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-16 10:46   ` Borislav Petkov [this message]
2016-11-16 10:46     ` Borislav Petkov
2016-11-16 19:22     ` Tom Lendacky
2016-11-16 19:22       ` Tom Lendacky
2016-11-16 19:22       ` Tom Lendacky
2016-11-10  0:36 ` [RFC PATCH v3 09/20] x86: Insure that boot memory areas are mapped properly Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-17 12:20   ` Borislav Petkov
2016-11-17 12:20     ` Borislav Petkov
2016-11-19 18:12     ` Tom Lendacky
2016-11-19 18:12       ` Tom Lendacky
2016-11-10  0:36 ` [RFC PATCH v3 10/20] Add support to access boot related data in the clear Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-11 16:17   ` Kani, Toshimitsu
2016-11-11 16:17     ` Kani, Toshimitsu
2016-11-14 16:24     ` Tom Lendacky
2016-11-14 16:24       ` Tom Lendacky
2016-11-14 16:24       ` Tom Lendacky
2016-11-17 15:55   ` Borislav Petkov
2016-11-17 15:55     ` Borislav Petkov
2016-11-19 18:33     ` Tom Lendacky
2016-11-19 18:33       ` Tom Lendacky
2016-11-19 18:33       ` Tom Lendacky
2016-11-20 23:04       ` Borislav Petkov
2016-11-20 23:04         ` Borislav Petkov
2016-12-07 13:19   ` Matt Fleming
2016-12-07 13:19     ` Matt Fleming
2016-12-07 13:19     ` Matt Fleming
2016-12-09 14:26     ` Tom Lendacky
2016-12-09 14:26       ` Tom Lendacky
2016-12-09 14:26       ` Tom Lendacky
2016-11-10  0:36 ` [RFC PATCH v3 11/20] x86: Add support for changing memory encryption attribute Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-10  0:36   ` Tom Lendacky
2016-11-17 17:39   ` Borislav Petkov
2016-11-17 17:39     ` Borislav Petkov
2016-11-19 18:48     ` Tom Lendacky
2016-11-19 18:48       ` Tom Lendacky
2016-11-21  8:27       ` Borislav Petkov
2016-11-21  8:27         ` Borislav Petkov
2016-11-10  0:37 ` [RFC PATCH v3 12/20] x86: Decrypt trampoline area if memory encryption is active Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-17 18:09   ` Borislav Petkov
2016-11-17 18:09     ` Borislav Petkov
2016-11-19 18:50     ` Tom Lendacky
2016-11-19 18:50       ` Tom Lendacky
2016-11-10  0:37 ` [RFC PATCH v3 13/20] x86: DMA support for memory encryption Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-15 14:39   ` Radim Krčmář
2016-11-15 14:39     ` Radim Krčmář
2016-11-15 14:39     ` Radim Krčmář
2016-11-15 17:02     ` Tom Lendacky
2016-11-15 17:02       ` Tom Lendacky
2016-11-15 17:02       ` Tom Lendacky
2016-11-15 17:02       ` Tom Lendacky
2016-11-15 18:17       ` Radim Krčmář
2016-11-15 18:17         ` Radim Krčmář
2016-11-15 18:17         ` Radim Krčmář
2016-11-15 18:17         ` Radim Krčmář
2016-11-15 20:33         ` Tom Lendacky
2016-11-15 20:33           ` Tom Lendacky
2016-11-15 20:33           ` Tom Lendacky
2016-11-15 20:33           ` Tom Lendacky
2016-11-15 15:16   ` Michael S. Tsirkin
2016-11-15 15:16     ` Michael S. Tsirkin
2016-11-15 15:16     ` Michael S. Tsirkin
2016-11-15 18:29     ` Tom Lendacky
2016-11-15 18:29       ` Tom Lendacky
2016-11-15 18:29       ` Tom Lendacky
2016-11-15 19:16       ` Michael S. Tsirkin
2016-11-15 19:16         ` Michael S. Tsirkin
2016-11-15 19:16         ` Michael S. Tsirkin
2016-11-22 11:38       ` Borislav Petkov
2016-11-22 11:38         ` Borislav Petkov
2016-11-22 11:38         ` Borislav Petkov
2016-11-22 15:22         ` Michael S. Tsirkin
2016-11-22 15:22           ` Michael S. Tsirkin
2016-11-22 15:22           ` Michael S. Tsirkin
2016-11-22 15:41           ` Borislav Petkov
2016-11-22 15:41             ` Borislav Petkov
2016-11-22 20:41             ` Michael S. Tsirkin
2016-11-22 20:41               ` Michael S. Tsirkin
2016-11-22 20:41               ` Michael S. Tsirkin
2016-11-10  0:37 ` [RFC PATCH v3 14/20] iommu/amd: Disable AMD IOMMU if memory encryption is active Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-14 16:32   ` Joerg Roedel
2016-11-14 16:32     ` Joerg Roedel
2016-11-14 16:32     ` Joerg Roedel
2016-11-14 16:48     ` Tom Lendacky
2016-11-14 16:48       ` Tom Lendacky
2016-11-14 16:48       ` Tom Lendacky
2016-11-10  0:37 ` [RFC PATCH v3 15/20] x86: Check for memory encryption on the APs Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-22 19:25   ` Borislav Petkov
2016-11-22 19:25     ` Borislav Petkov
2016-11-29 18:00     ` Tom Lendacky
2016-11-29 18:00       ` Tom Lendacky
2016-11-29 18:00       ` Tom Lendacky
2016-11-10  0:37 ` [RFC PATCH v3 16/20] x86: Do not specify encrypted memory for video mappings Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:37   ` Tom Lendacky
2016-11-10  0:38 ` [RFC PATCH v3 17/20] x86/kvm: Enable Secure Memory Encryption of nested page tables Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38 ` [RFC PATCH v3 18/20] x86: Access the setup data through debugfs un-encrypted Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38 ` [RFC PATCH v3 19/20] x86: Add support to make use of Secure Memory Encryption Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-24 12:50   ` Borislav Petkov
2016-11-24 12:50     ` Borislav Petkov
2016-11-24 12:50     ` Borislav Petkov
2016-11-29 18:40     ` Tom Lendacky
2016-11-29 18:40       ` Tom Lendacky
2016-11-10  0:38 ` [RFC PATCH v3 20/20] " Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-10  0:38   ` Tom Lendacky
2016-11-22 18:58   ` Borislav Petkov
2016-11-22 18:58     ` Borislav Petkov
2016-11-22 18:58     ` Borislav Petkov
2016-11-26 20:47   ` Borislav Petkov
2016-11-26 20:47     ` Borislav Petkov
2016-11-29 18:48     ` Tom Lendacky
2016-11-29 18:48       ` Tom Lendacky
2016-11-29 19:56       ` Borislav Petkov
2016-11-29 19:56         ` Borislav Petkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161116104656.qz5wp33zzyja373r@pd.tnic \
    --to=bp@alien8.de \
    --cc=arnd@arndb.de \
    --cc=aryabinin@virtuozzo.com \
    --cc=corbet@lwn.net \
    --cc=dvyukov@google.com \
    --cc=glider@google.com \
    --cc=hpa@zytor.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=kasan-dev@googlegroups.com \
    --cc=konrad.wilk@oracle.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=luto@kernel.org \
    --cc=lwoodman@redhat.com \
    --cc=matt@codeblueprint.co.uk \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=riel@redhat.com \
    --cc=rkrcmar@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.