From: Brijesh Singh <brijesh.singh@amd.com>
To: x86@kernel.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, linux-coco@lists.linux.dev,
linux-mm@kvack.org, linux-crypto@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Joerg Roedel <jroedel@suse.de>,
Tom Lendacky <thomas.lendacky@amd.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Ard Biesheuvel <ardb@kernel.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Sean Christopherson <seanjc@google.com>,
Vitaly Kuznetsov <vkuznets@redhat.com>,
Wanpeng Li <wanpengli@tencent.com>,
Jim Mattson <jmattson@google.com>,
Andy Lutomirski <luto@kernel.org>,
Dave Hansen <dave.hansen@linux.intel.com>,
Sergio Lopez <slp@redhat.com>, Peter Gonda <pgonda@google.com>,
Peter Zijlstra <peterz@infradead.org>,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
David Rientjes <rientjes@google.com>,
Dov Murik <dovmurik@linux.ibm.com>,
Tobin Feldman-Fitzthum <tobin@ibm.com>,
Borislav Petkov <bp@alien8.de>,
Michael Roth <michael.roth@amd.com>,
Vlastimil Babka <vbabka@suse.cz>,
"Kirill A . Shutemov" <kirill@shutemov.name>,
Andi Kleen <ak@linux.intel.com>,
tony.luck@intel.com, marcorr@google.com,
sathyanarayanan.kuppuswamy@linux.intel.com,
Brijesh Singh <brijesh.singh@amd.com>
Subject: [PATCH Part2 v5 14/45] crypto: ccp: Handle the legacy TMR allocation when SNP is enabled
Date: Fri, 20 Aug 2021 10:58:47 -0500 [thread overview]
Message-ID: <20210820155918.7518-15-brijesh.singh@amd.com> (raw)
In-Reply-To: <20210820155918.7518-1-brijesh.singh@amd.com>
The behavior and requirement for the SEV-legacy command is altered when
the SNP firmware is in the INIT state. See SEV-SNP firmware specification
for more details.
Allocate the Trusted Memory Region (TMR) as a 2mb sized/aligned region
when SNP is enabled to satify new requirements for the SNP. Continue
allocating a 1mb region for !SNP configuration.
While at it, provide API that can be used by others to allocate a page
that can be used by the firmware. The immediate user for this API will
be the KVM driver. The KVM driver to need to allocate a firmware context
page during the guest creation. The context page need to be updated
by the firmware. See the SEV-SNP specification for further details.
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
drivers/crypto/ccp/sev-dev.c | 169 ++++++++++++++++++++++++++++++++++-
include/linux/psp-sev.h | 11 +++
2 files changed, 176 insertions(+), 4 deletions(-)
diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c
index 01edad9116f2..34dc358b13b9 100644
--- a/drivers/crypto/ccp/sev-dev.c
+++ b/drivers/crypto/ccp/sev-dev.c
@@ -62,6 +62,14 @@ static int psp_timeout;
#define SEV_ES_TMR_SIZE (1024 * 1024)
static void *sev_es_tmr;
+/* When SEV-SNP is enabled the TMR needs to be 2MB aligned and 2MB size. */
+#define SEV_SNP_ES_TMR_SIZE (2 * 1024 * 1024)
+
+static size_t sev_es_tmr_size = SEV_ES_TMR_SIZE;
+
+static int __sev_do_cmd_locked(int cmd, void *data, int *psp_ret);
+static int sev_do_cmd(int cmd, void *data, int *psp_ret);
+
static inline bool sev_version_greater_or_equal(u8 maj, u8 min)
{
struct sev_device *sev = psp_master->sev_data;
@@ -159,6 +167,156 @@ static int sev_cmd_buffer_len(int cmd)
return 0;
}
+static void snp_leak_pages(unsigned long pfn, unsigned int npages)
+{
+ WARN(1, "psc failed, pfn 0x%lx pages %d (leaking)\n", pfn, npages);
+ while (npages--) {
+ memory_failure(pfn, 0);
+ dump_rmpentry(pfn);
+ pfn++;
+ }
+}
+
+static int snp_reclaim_pages(unsigned long pfn, unsigned int npages, bool locked)
+{
+ struct sev_data_snp_page_reclaim data;
+ int ret, err, i, n = 0;
+
+ for (i = 0; i < npages; i++) {
+ memset(&data, 0, sizeof(data));
+ data.paddr = pfn << PAGE_SHIFT;
+
+ if (locked)
+ ret = __sev_do_cmd_locked(SEV_CMD_SNP_PAGE_RECLAIM, &data, &err);
+ else
+ ret = sev_do_cmd(SEV_CMD_SNP_PAGE_RECLAIM, &data, &err);
+ if (ret)
+ goto cleanup;
+
+ ret = rmp_make_shared(pfn, PG_LEVEL_4K);
+ if (ret)
+ goto cleanup;
+
+ pfn++;
+ n++;
+ }
+
+ return 0;
+
+cleanup:
+ /*
+ * If failed to reclaim the page then page is no longer safe to
+ * be released, leak it.
+ */
+ snp_leak_pages(pfn, npages - n);
+ return ret;
+}
+
+static inline int rmp_make_firmware(unsigned long pfn, int level)
+{
+ return rmp_make_private(pfn, 0, level, 0, true);
+}
+
+static int snp_set_rmp_state(unsigned long paddr, unsigned int npages, bool to_fw, bool locked,
+ bool need_reclaim)
+{
+ unsigned long pfn = __sme_clr(paddr) >> PAGE_SHIFT; /* Cbit maybe set in the paddr */
+ int rc, n = 0, i;
+
+ for (i = 0; i < npages; i++) {
+ if (to_fw)
+ rc = rmp_make_firmware(pfn, PG_LEVEL_4K);
+ else
+ rc = need_reclaim ? snp_reclaim_pages(pfn, 1, locked) :
+ rmp_make_shared(pfn, PG_LEVEL_4K);
+ if (rc)
+ goto cleanup;
+
+ pfn++;
+ n++;
+ }
+
+ return 0;
+
+cleanup:
+ /* Try unrolling the firmware state changes */
+ if (to_fw) {
+ /*
+ * Reclaim the pages which were already changed to the
+ * firmware state.
+ */
+ snp_reclaim_pages(paddr >> PAGE_SHIFT, n, locked);
+
+ return rc;
+ }
+
+ /*
+ * If failed to change the page state to shared, then its not safe
+ * to release the page back to the system, leak it.
+ */
+ snp_leak_pages(pfn, npages - n);
+
+ return rc;
+}
+
+static struct page *__snp_alloc_firmware_pages(gfp_t gfp_mask, int order, bool locked)
+{
+ unsigned long npages = 1ul << order, paddr;
+ struct sev_device *sev;
+ struct page *page;
+
+ if (!psp_master || !psp_master->sev_data)
+ return ERR_PTR(-EINVAL);
+
+ page = alloc_pages(gfp_mask, order);
+ if (!page)
+ return NULL;
+
+ /* If SEV-SNP is initialized then add the page in RMP table. */
+ sev = psp_master->sev_data;
+ if (!sev->snp_inited)
+ return page;
+
+ paddr = __pa((unsigned long)page_address(page));
+ if (snp_set_rmp_state(paddr, npages, true, locked, false))
+ return NULL;
+
+ return page;
+}
+
+void *snp_alloc_firmware_page(gfp_t gfp_mask)
+{
+ struct page *page;
+
+ page = __snp_alloc_firmware_pages(gfp_mask, 0, false);
+
+ return page ? page_address(page) : NULL;
+}
+EXPORT_SYMBOL_GPL(snp_alloc_firmware_page);
+
+static void __snp_free_firmware_pages(struct page *page, int order, bool locked)
+{
+ unsigned long paddr, npages = 1ul << order;
+
+ if (!page)
+ return;
+
+ paddr = __pa((unsigned long)page_address(page));
+ if (snp_set_rmp_state(paddr, npages, false, locked, true))
+ return;
+
+ __free_pages(page, order);
+}
+
+void snp_free_firmware_page(void *addr)
+{
+ if (!addr)
+ return;
+
+ __snp_free_firmware_pages(virt_to_page(addr), 0, false);
+}
+EXPORT_SYMBOL(snp_free_firmware_page);
+
static int __sev_do_cmd_locked(int cmd, void *data, int *psp_ret)
{
struct psp_device *psp = psp_master;
@@ -281,7 +439,7 @@ static int __sev_platform_init_locked(int *error)
data.flags |= SEV_INIT_FLAGS_SEV_ES;
data.tmr_address = tmr_pa;
- data.tmr_len = SEV_ES_TMR_SIZE;
+ data.tmr_len = sev_es_tmr_size;
}
rc = __sev_do_cmd_locked(SEV_CMD_INIT, &data, error);
@@ -638,6 +796,8 @@ static int __sev_snp_init_locked(int *error)
sev->snp_inited = true;
dev_dbg(sev->dev, "SEV-SNP firmware initialized\n");
+ sev_es_tmr_size = SEV_SNP_ES_TMR_SIZE;
+
return rc;
}
@@ -1161,8 +1321,9 @@ static void sev_firmware_shutdown(struct sev_device *sev)
/* The TMR area was encrypted, flush it from the cache */
wbinvd_on_all_cpus();
- free_pages((unsigned long)sev_es_tmr,
- get_order(SEV_ES_TMR_SIZE));
+ __snp_free_firmware_pages(virt_to_page(sev_es_tmr),
+ get_order(sev_es_tmr_size),
+ false);
sev_es_tmr = NULL;
}
@@ -1233,7 +1394,7 @@ void sev_pci_init(void)
}
/* Obtain the TMR memory area for SEV-ES use */
- tmr_page = alloc_pages(GFP_KERNEL, get_order(SEV_ES_TMR_SIZE));
+ tmr_page = __snp_alloc_firmware_pages(GFP_KERNEL, get_order(sev_es_tmr_size), false);
if (tmr_page) {
sev_es_tmr = page_address(tmr_page);
} else {
diff --git a/include/linux/psp-sev.h b/include/linux/psp-sev.h
index f2105a8755f9..00bd684dc094 100644
--- a/include/linux/psp-sev.h
+++ b/include/linux/psp-sev.h
@@ -12,6 +12,8 @@
#ifndef __PSP_SEV_H__
#define __PSP_SEV_H__
+#include <linux/sev.h>
+
#include <uapi/linux/psp-sev.h>
#ifdef CONFIG_X86
@@ -919,6 +921,8 @@ int snp_guest_page_reclaim(struct sev_data_snp_page_reclaim *data, int *error);
int snp_guest_dbg_decrypt(struct sev_data_snp_dbg *data, int *error);
void *psp_copy_user_blob(u64 uaddr, u32 len);
+void *snp_alloc_firmware_page(gfp_t mask);
+void snp_free_firmware_page(void *addr);
#else /* !CONFIG_CRYPTO_DEV_SP_PSP */
@@ -960,6 +964,13 @@ static inline int snp_guest_dbg_decrypt(struct sev_data_snp_dbg *data, int *erro
return -ENODEV;
}
+static inline void *snp_alloc_firmware_page(gfp_t mask)
+{
+ return NULL;
+}
+
+static inline void snp_free_firmware_page(void *addr) { }
+
#endif /* CONFIG_CRYPTO_DEV_SP_PSP */
#endif /* __PSP_SEV_H__ */
--
2.17.1
next prev parent reply other threads:[~2021-08-20 16:00 UTC|newest]
Thread overview: 239+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-20 15:58 [PATCH Part2 v5 00/45] Add AMD Secure Nested Paging (SEV-SNP) Hypervisor Support Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 01/45] x86/cpufeatures: Add SEV-SNP CPU feature Brijesh Singh
2021-09-16 16:56 ` Borislav Petkov
2021-09-16 17:35 ` Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 02/45] iommu/amd: Introduce function to check SEV-SNP support Brijesh Singh
2021-09-16 17:26 ` Borislav Petkov
2021-08-20 15:58 ` [PATCH Part2 v5 03/45] x86/sev: Add the host SEV-SNP initialization support Brijesh Singh
2021-09-24 8:58 ` Borislav Petkov
2021-08-20 15:58 ` [PATCH Part2 v5 04/45] x86/sev: Add RMP entry lookup helpers Brijesh Singh
2021-09-24 9:49 ` Borislav Petkov
2021-09-27 16:01 ` Brijesh Singh
2021-09-27 16:04 ` Brijesh Singh
2021-09-29 12:56 ` Borislav Petkov
2022-06-02 11:57 ` Jarkko Sakkinen
2021-08-20 15:58 ` [PATCH Part2 v5 05/45] x86/sev: Add helper functions for RMPUPDATE and PSMASH instruction Brijesh Singh
2021-09-24 14:04 ` Borislav Petkov
2021-09-27 16:06 ` Brijesh Singh
2021-10-15 18:05 ` Sean Christopherson
2021-10-15 20:18 ` Brijesh Singh
2021-10-15 20:27 ` Sean Christopherson
2021-10-15 20:36 ` Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 06/45] x86/sev: Invalid pages from direct map when adding it to RMP table Brijesh Singh
2021-09-29 14:34 ` Borislav Petkov
2021-09-30 16:19 ` Brijesh Singh
2021-10-01 11:06 ` Borislav Petkov
2021-08-20 15:58 ` [PATCH Part2 v5 07/45] x86/traps: Define RMP violation #PF error code Brijesh Singh
2021-09-29 17:25 ` Borislav Petkov
2021-08-20 15:58 ` [PATCH Part2 v5 08/45] x86/fault: Add support to handle the RMP fault for user address Brijesh Singh
2021-08-23 14:20 ` Dave Hansen
2021-08-23 14:36 ` Brijesh Singh
2021-08-23 14:50 ` Dave Hansen
2021-08-24 16:42 ` Joerg Roedel
2021-08-25 9:16 ` Vlastimil Babka
2021-08-25 13:50 ` Tom Lendacky
2021-09-29 18:19 ` Borislav Petkov
2021-08-20 15:58 ` [PATCH Part2 v5 09/45] x86/fault: Add support to dump RMP entry on fault Brijesh Singh
2021-09-29 18:38 ` Borislav Petkov
2021-08-20 15:58 ` [PATCH Part2 v5 10/45] crypto: ccp: shutdown SEV firmware on kexec Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 11/45] crypto:ccp: Define the SEV-SNP commands Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 12/45] crypto: ccp: Add support to initialize the AMD-SP for SEV-SNP Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 13/45] crypto:ccp: Provide APIs to issue SEV-SNP commands Brijesh Singh
2021-08-20 15:58 ` Brijesh Singh [this message]
2022-02-25 18:03 ` [PATCH Part2 v5 14/45] crypto: ccp: Handle the legacy TMR allocation when SNP is enabled Alper Gun
2022-03-01 14:12 ` Brijesh Singh
2022-06-14 0:10 ` Alper Gun
2021-08-20 15:58 ` [PATCH Part2 v5 15/45] crypto: ccp: Handle the legacy SEV command " Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 16/45] crypto: ccp: Add the SNP_PLATFORM_STATUS command Brijesh Singh
2021-09-10 3:18 ` Marc Orr
2021-09-13 11:17 ` Brijesh Singh
2021-09-22 17:35 ` Dr. David Alan Gilbert
2021-09-23 18:01 ` Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 17/45] crypto: ccp: Add the SNP_{SET,GET}_EXT_CONFIG command Brijesh Singh
2021-09-01 21:02 ` Connor Kuehl
2021-09-01 23:06 ` Brijesh Singh
2021-09-10 3:27 ` Marc Orr
2021-09-13 11:29 ` Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 18/45] crypto: ccp: Provide APIs to query extended attestation report Brijesh Singh
2021-09-10 3:30 ` Marc Orr
2021-09-12 7:46 ` Dov Murik
2021-08-20 15:58 ` [PATCH Part2 v5 19/45] KVM: SVM: Add support to handle AP reset MSR protocol Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 20/45] KVM: SVM: Provide the Hypervisor Feature support VMGEXIT Brijesh Singh
2021-10-12 20:38 ` Sean Christopherson
2021-08-20 15:58 ` [PATCH Part2 v5 21/45] KVM: SVM: Make AVIC backing, VMSA and VMCB memory allocation SNP safe Brijesh Singh
2021-09-22 18:55 ` Dr. David Alan Gilbert
2021-09-23 18:09 ` Brijesh Singh
2021-09-23 18:39 ` Dr. David Alan Gilbert
2021-09-23 22:23 ` Brijesh Singh
2021-09-23 19:17 ` Marc Orr
2021-09-23 20:44 ` Brijesh Singh
2021-09-23 20:55 ` Marc Orr
2021-10-12 20:44 ` Sean Christopherson
2021-08-20 15:58 ` [PATCH Part2 v5 22/45] KVM: SVM: Add initial SEV-SNP support Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 23/45] KVM: SVM: Add KVM_SNP_INIT command Brijesh Singh
2021-09-05 6:56 ` Dov Murik
2021-09-05 13:59 ` Brijesh Singh
2021-09-10 3:32 ` Marc Orr
2021-09-13 11:32 ` Brijesh Singh
2021-09-16 15:50 ` Peter Gonda
2022-06-13 20:58 ` Alper Gun
2022-06-13 23:15 ` Ashish Kalra
2022-06-13 23:33 ` Alper Gun
2022-06-14 0:21 ` Ashish Kalra
2022-06-14 15:37 ` Peter Gonda
2022-06-14 16:11 ` Kalra, Ashish
2022-06-14 16:30 ` Peter Gonda
2022-06-14 17:16 ` Kalra, Ashish
2022-06-14 18:58 ` Alper Gun
2022-06-14 20:23 ` Kalra, Ashish
2022-06-14 20:29 ` Peter Gonda
2022-06-14 20:39 ` Kalra, Ashish
2021-08-20 15:58 ` [PATCH Part2 v5 24/45] KVM: SVM: Add KVM_SEV_SNP_LAUNCH_START command Brijesh Singh
2021-08-20 15:58 ` [PATCH Part2 v5 25/45] KVM: SVM: Add KVM_SEV_SNP_LAUNCH_UPDATE command Brijesh Singh
2021-09-27 16:43 ` Peter Gonda
2021-09-27 19:33 ` Brijesh Singh
2021-10-05 15:01 ` Peter Gonda
2021-08-20 15:58 ` [PATCH Part2 v5 26/45] KVM: SVM: Mark the private vma unmerable for SEV-SNP guests Brijesh Singh
2021-09-23 17:18 ` Dr. David Alan Gilbert
2021-10-12 18:46 ` Sean Christopherson
2021-10-13 12:39 ` Brijesh Singh
2021-10-13 14:34 ` Sean Christopherson
2021-10-13 14:51 ` Brijesh Singh
2021-10-13 15:33 ` Sean Christopherson
2021-08-20 15:59 ` [PATCH Part2 v5 27/45] KVM: SVM: Add KVM_SEV_SNP_LAUNCH_FINISH command Brijesh Singh
2022-05-18 20:21 ` Marc Orr
2022-05-18 20:35 ` Kalra, Ashish
2021-08-20 15:59 ` [PATCH Part2 v5 28/45] KVM: X86: Keep the NPT and RMP page level in sync Brijesh Singh
2021-08-20 15:59 ` [PATCH Part2 v5 29/45] KVM: x86/mmu: Move 'pfn' variable to caller of direct_page_fault() Brijesh Singh
2021-08-20 15:59 ` [PATCH Part2 v5 30/45] KVM: x86/mmu: Introduce kvm_mmu_map_tdp_page() for use by TDX and SNP Brijesh Singh
2021-08-20 15:59 ` [PATCH Part2 v5 31/45] KVM: x86: Introduce kvm_mmu_get_tdp_walk() for SEV-SNP use Brijesh Singh
2021-08-20 15:59 ` [PATCH Part2 v5 32/45] KVM: x86: Define RMP page fault error bits for #NPF Brijesh Singh
2021-09-30 23:41 ` Marc Orr
2021-10-01 13:03 ` Borislav Petkov
2021-08-20 15:59 ` [PATCH Part2 v5 33/45] KVM: x86: Update page-fault trace to log full 64-bit error code Brijesh Singh
2021-10-13 21:23 ` Sean Christopherson
2021-08-20 15:59 ` [PATCH Part2 v5 34/45] KVM: SVM: Do not use long-lived GHCB map while setting scratch area Brijesh Singh
2021-10-13 21:20 ` Sean Christopherson
2021-10-15 16:11 ` Brijesh Singh
2021-10-15 16:44 ` Sean Christopherson
2021-08-20 15:59 ` [PATCH Part2 v5 35/45] KVM: SVM: Remove the long-lived GHCB host map Brijesh Singh
2021-08-20 15:59 ` [PATCH Part2 v5 36/45] KVM: SVM: Add support to handle GHCB GPA register VMGEXIT Brijesh Singh
2021-08-20 15:59 ` [PATCH Part2 v5 37/45] KVM: SVM: Add support to handle MSR based Page State Change VMGEXIT Brijesh Singh
2021-09-28 9:56 ` Dr. David Alan Gilbert
2021-10-12 21:48 ` Sean Christopherson
2021-10-13 17:04 ` Sean Christopherson
2021-10-13 17:05 ` Brijesh Singh
2021-10-13 17:24 ` Sean Christopherson
2021-10-13 17:49 ` Brijesh Singh
2021-08-20 15:59 ` [PATCH Part2 v5 38/45] KVM: SVM: Add support to handle " Brijesh Singh
2021-09-28 10:17 ` Dr. David Alan Gilbert
2021-09-28 23:20 ` Brijesh Singh
2021-08-20 15:59 ` [PATCH Part2 v5 39/45] KVM: SVM: Introduce ops for the post gfn map and unmap Brijesh Singh
2021-10-13 0:23 ` Sean Christopherson
2021-10-13 18:10 ` Brijesh Singh
2021-10-13 20:10 ` Sean Christopherson
2021-10-13 21:49 ` Brijesh Singh
2021-10-13 22:10 ` Sean Christopherson
2021-10-13 22:31 ` Brijesh Singh
2021-10-13 20:16 ` Sean Christopherson
2021-10-15 16:31 ` Brijesh Singh
2021-10-15 17:16 ` Sean Christopherson
2022-09-08 21:21 ` Michael Roth
2022-09-08 22:28 ` Michael Roth
2022-09-14 8:05 ` Sean Christopherson
2022-09-14 11:02 ` Marc Orr
2022-09-14 16:15 ` Sean Christopherson
2022-09-14 16:32 ` Marc Orr
2022-09-14 16:39 ` Marc Orr
2022-09-19 17:56 ` Michael Roth
2021-08-20 15:59 ` [PATCH Part2 v5 40/45] KVM: x86: Export the kvm_zap_gfn_range() for the SNP use Brijesh Singh
2021-08-20 15:59 ` [PATCH Part2 v5 41/45] KVM: SVM: Add support to handle the RMP nested page fault Brijesh Singh
2021-09-29 12:24 ` Dr. David Alan Gilbert
2021-10-13 17:57 ` Sean Christopherson
2021-08-20 15:59 ` [PATCH Part2 v5 42/45] KVM: SVM: Provide support for SNP_GUEST_REQUEST NAE event Brijesh Singh
2021-09-29 21:33 ` Peter Gonda
2021-09-29 22:00 ` Peter Gonda
2021-08-20 15:59 ` [PATCH Part2 v5 43/45] KVM: SVM: Use a VMSA physical address variable for populating VMCB Brijesh Singh
2021-10-15 18:58 ` Sean Christopherson
2021-08-20 15:59 ` [PATCH Part2 v5 44/45] KVM: SVM: Support SEV-SNP AP Creation NAE event Brijesh Singh
2021-10-15 19:50 ` Sean Christopherson
2021-10-20 21:48 ` Brijesh Singh
2021-10-20 23:01 ` Sean Christopherson
2021-08-20 15:59 ` [PATCH Part2 v5 45/45] KVM: SVM: Add module parameter to enable the SEV-SNP Brijesh Singh
2021-11-12 15:43 ` [PATCH Part2 v5 00/45] Add AMD Secure Nested Paging (SEV-SNP) Hypervisor Support Peter Gonda
2021-11-12 17:59 ` Dave Hansen
2021-11-12 18:35 ` Borislav Petkov
2021-11-12 19:48 ` Sean Christopherson
2021-11-12 20:04 ` Borislav Petkov
2021-11-12 20:37 ` Sean Christopherson
2021-11-12 20:53 ` Borislav Petkov
2021-11-12 21:12 ` Peter Gonda
2021-11-12 21:20 ` Andy Lutomirski
2021-11-12 22:04 ` Borislav Petkov
2021-11-12 22:52 ` Peter Gonda
2021-11-13 0:00 ` Sean Christopherson
2021-11-13 0:10 ` Marc Orr
2021-11-13 18:34 ` Sean Christopherson
2021-11-14 7:54 ` Marc Orr
2021-11-15 17:16 ` Sean Christopherson
2021-11-15 16:36 ` Joerg Roedel
2021-11-15 17:25 ` Sean Christopherson
2021-11-12 21:30 ` Marc Orr
2021-11-12 21:37 ` Dave Hansen
2021-11-12 21:40 ` Marc Orr
2021-11-12 21:39 ` Andy Lutomirski
2021-11-12 21:43 ` Marc Orr
2021-11-12 22:54 ` Peter Gonda
2021-11-13 0:53 ` Sean Christopherson
2021-11-13 1:04 ` Marc Orr
2021-11-13 18:28 ` Sean Christopherson
2021-11-14 7:41 ` Marc Orr
2021-11-15 18:17 ` Sean Christopherson
2021-11-15 16:52 ` Joerg Roedel
2021-11-15 16:18 ` Brijesh Singh
2021-11-15 18:44 ` Sean Christopherson
2021-11-15 18:58 ` Brijesh Singh
2021-11-12 21:16 ` Marc Orr
2021-11-12 21:23 ` Andy Lutomirski
2021-11-12 21:35 ` Borislav Petkov
2021-11-15 12:30 ` Dr. David Alan Gilbert
2021-11-15 14:42 ` Joerg Roedel
2021-11-15 15:33 ` Dr. David Alan Gilbert
2021-11-15 16:20 ` Joerg Roedel
2021-11-15 16:32 ` Dr. David Alan Gilbert
2021-11-15 18:26 ` Sean Christopherson
2021-11-15 18:41 ` Marc Orr
2021-11-15 19:15 ` Sean Christopherson
2021-11-16 3:07 ` Marc Orr
2021-11-16 5:14 ` Andy Lutomirski
2021-11-16 13:21 ` Joerg Roedel
2021-11-16 18:26 ` Sean Christopherson
2021-11-16 18:39 ` Peter Gonda
2021-11-16 13:30 ` Joerg Roedel
2021-11-16 5:00 ` Andy Lutomirski
2021-11-16 13:02 ` Joerg Roedel
2021-11-16 20:08 ` Sean Christopherson
2021-11-15 16:16 ` Joerg Roedel
2021-11-22 15:23 ` Brijesh Singh
2021-11-22 17:03 ` Vlastimil Babka
2021-11-22 18:01 ` Brijesh Singh
2021-11-22 18:30 ` Dave Hansen
2021-11-22 19:06 ` Brijesh Singh
2021-11-22 19:14 ` Dave Hansen
2021-11-22 20:33 ` Brijesh Singh
2021-11-22 21:34 ` Sean Christopherson
2021-11-22 22:51 ` Dave Hansen
2021-11-23 5:15 ` Luck, Tony
2021-11-23 7:18 ` Borislav Petkov
2021-11-23 15:36 ` Sean Christopherson
2021-11-23 16:26 ` Borislav Petkov
2021-11-23 8:55 ` Vlastimil Babka
2021-11-24 16:03 ` Joerg Roedel
2021-11-24 17:48 ` Dave Hansen
2021-11-24 19:34 ` Vlastimil Babka
2021-11-25 10:05 ` Joerg Roedel
2021-11-29 14:44 ` Brijesh Singh
2021-11-29 14:58 ` Vlastimil Babka
2021-11-29 16:13 ` Brijesh Singh
2021-11-30 19:40 ` Vlastimil Babka
2021-11-29 16:41 ` Dave Hansen
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=20210820155918.7518-15-brijesh.singh@amd.com \
--to=brijesh.singh@amd.com \
--cc=ak@linux.intel.com \
--cc=ardb@kernel.org \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=dovmurik@linux.ibm.com \
--cc=hpa@zytor.com \
--cc=jmattson@google.com \
--cc=jroedel@suse.de \
--cc=kirill@shutemov.name \
--cc=kvm@vger.kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luto@kernel.org \
--cc=marcorr@google.com \
--cc=michael.roth@amd.com \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=pgonda@google.com \
--cc=rientjes@google.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=seanjc@google.com \
--cc=slp@redhat.com \
--cc=srinivas.pandruvada@linux.intel.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=tobin@ibm.com \
--cc=tony.luck@intel.com \
--cc=vbabka@suse.cz \
--cc=vkuznets@redhat.com \
--cc=wanpengli@tencent.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).