linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Isaku Yamahata <isaku.yamahata@gmail.com>
To: Michael Roth <michael.roth@amd.com>
Cc: kvm@vger.kernel.org, linux-coco@lists.linux.dev,
	linux-mm@kvack.org, linux-crypto@vger.kernel.org, x86@kernel.org,
	linux-kernel@vger.kernel.org, tglx@linutronix.de,
	mingo@redhat.com, jroedel@suse.de, thomas.lendacky@amd.com,
	hpa@zytor.com, ardb@kernel.org, pbonzini@redhat.com,
	seanjc@google.com, vkuznets@redhat.com, jmattson@google.com,
	luto@kernel.org, dave.hansen@linux.intel.com, slp@redhat.com,
	pgonda@google.com, peterz@infradead.org,
	srinivas.pandruvada@linux.intel.com, rientjes@google.com,
	dovmurik@linux.ibm.com, tobin@ibm.com, bp@alien8.de,
	vbabka@suse.cz, kirill@shutemov.name, ak@linux.intel.com,
	tony.luck@intel.com, marcorr@google.com,
	sathyanarayanan.kuppuswamy@linux.intel.com, alpergun@google.com,
	dgilbert@redhat.com, jarkko@kernel.org, ashish.kalra@amd.com,
	nikunj.dadhania@amd.com, isaku.yamahata@gmail.com
Subject: Re: [PATCH RFC v8 01/56] KVM: x86: Add 'fault_is_private' x86 op
Date: Fri, 17 Mar 2023 21:51:37 -0700	[thread overview]
Message-ID: <20230318045137.GC408922@ls.amr.corp.intel.com> (raw)
In-Reply-To: <20230220183847.59159-2-michael.roth@amd.com>

On Mon, Feb 20, 2023 at 12:37:52PM -0600,
Michael Roth <michael.roth@amd.com> wrote:

> This callback is used by the KVM MMU to check whether a #NPF was for a
> private GPA or not.
> 
> In some cases the full 64-bit error code for the #NPF will be needed to
> make this determination, so also update kvm_mmu_do_page_fault() to
> accept the full 64-bit value so it can be plumbed through to the
> callback.

We can split 64-bit part into the independent patch.

> Signed-off-by: Michael Roth <michael.roth@amd.com>
> ---
>  arch/x86/include/asm/kvm-x86-ops.h |  1 +
>  arch/x86/include/asm/kvm_host.h    |  1 +
>  arch/x86/kvm/mmu/mmu.c             |  3 +--
>  arch/x86/kvm/mmu/mmu_internal.h    | 37 +++++++++++++++++++++++++++---
>  4 files changed, 37 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/x86/include/asm/kvm-x86-ops.h b/arch/x86/include/asm/kvm-x86-ops.h
> index 8dc345cc6318..72183da010b8 100644
> --- a/arch/x86/include/asm/kvm-x86-ops.h
> +++ b/arch/x86/include/asm/kvm-x86-ops.h
> @@ -131,6 +131,7 @@ KVM_X86_OP(msr_filter_changed)
>  KVM_X86_OP(complete_emulated_msr)
>  KVM_X86_OP(vcpu_deliver_sipi_vector)
>  KVM_X86_OP_OPTIONAL_RET0(vcpu_get_apicv_inhibit_reasons);
> +KVM_X86_OP_OPTIONAL_RET0(fault_is_private);
>  
>  #undef KVM_X86_OP
>  #undef KVM_X86_OP_OPTIONAL
> diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
> index e552374f2357..f856d689dda0 100644
> --- a/arch/x86/include/asm/kvm_host.h
> +++ b/arch/x86/include/asm/kvm_host.h
> @@ -1643,6 +1643,7 @@ struct kvm_x86_ops {
>  
>  	void (*load_mmu_pgd)(struct kvm_vcpu *vcpu, hpa_t root_hpa,
>  			     int root_level);
> +	bool (*fault_is_private)(struct kvm *kvm, gpa_t gpa, u64 error_code, bool *private_fault);
>  
>  	bool (*has_wbinvd_exit)(void);
>  
> diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
> index eda615f3951c..fb3f34b7391c 100644
> --- a/arch/x86/kvm/mmu/mmu.c
> +++ b/arch/x86/kvm/mmu/mmu.c
> @@ -5724,8 +5724,7 @@ int noinline kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u64 err
>  	}
>  
>  	if (r == RET_PF_INVALID) {
> -		r = kvm_mmu_do_page_fault(vcpu, cr2_or_gpa,
> -					  lower_32_bits(error_code), false);
> +		r = kvm_mmu_do_page_fault(vcpu, cr2_or_gpa, error_code, false);
>  		if (KVM_BUG_ON(r == RET_PF_INVALID, vcpu->kvm))
>  			return -EIO;
>  	}
> diff --git a/arch/x86/kvm/mmu/mmu_internal.h b/arch/x86/kvm/mmu/mmu_internal.h
> index e642d431df4b..557a001210df 100644
> --- a/arch/x86/kvm/mmu/mmu_internal.h
> +++ b/arch/x86/kvm/mmu/mmu_internal.h
> @@ -231,6 +231,37 @@ struct kvm_page_fault {
>  
>  int kvm_tdp_page_fault(struct kvm_vcpu *vcpu, struct kvm_page_fault *fault);
>  
> +static bool kvm_mmu_fault_is_private(struct kvm *kvm, gpa_t gpa, u64 err)
> +{
> +	struct kvm_memory_slot *slot;
> +	bool private_fault = false;
> +	gfn_t gfn = gpa_to_gfn(gpa);
> +
> +	slot = gfn_to_memslot(kvm, gfn);
> +	if (!slot) {
> +		pr_debug("%s: no slot, GFN: 0x%llx\n", __func__, gfn);
> +		goto out;
> +	}
> +
> +	if (!kvm_slot_can_be_private(slot)) {
> +		pr_debug("%s: slot is not private, GFN: 0x%llx\n", __func__, gfn);
> +		goto out;
> +	}
> +
> +	if (static_call(kvm_x86_fault_is_private)(kvm, gpa, err, &private_fault))
> +		goto out;
> +
> +	/*
> +	 * Handling below is for UPM self-tests and guests that treat userspace
> +	 * as the authority on whether a fault should be private or not.
> +	 */
> +	private_fault = kvm_mem_is_private(kvm, gpa >> PAGE_SHIFT);
> +
> +out:
> +	pr_debug("%s: GFN: 0x%llx, private: %d\n", __func__, gfn, private_fault);
> +	return private_fault;
> +}
> +
>  /*
>   * Return values of handle_mmio_page_fault(), mmu.page_fault(), fast_page_fault(),
>   * and of course kvm_mmu_do_page_fault().
> @@ -262,11 +293,11 @@ enum {
>  };
>  
>  static inline int kvm_mmu_do_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
> -					u32 err, bool prefetch)
> +					u64 err, bool prefetch)
>  {
>  	struct kvm_page_fault fault = {
>  		.addr = cr2_or_gpa,
> -		.error_code = err,
> +		.error_code = lower_32_bits(err),
>  		.exec = err & PFERR_FETCH_MASK,
>  		.write = err & PFERR_WRITE_MASK,
>  		.present = err & PFERR_PRESENT_MASK,
> @@ -280,7 +311,7 @@ static inline int kvm_mmu_do_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
>  		.max_level = KVM_MAX_HUGEPAGE_LEVEL,
>  		.req_level = PG_LEVEL_4K,
>  		.goal_level = PG_LEVEL_4K,
> -		.is_private = kvm_mem_is_private(vcpu->kvm, cr2_or_gpa >> PAGE_SHIFT),
> +		.is_private = kvm_mmu_fault_is_private(vcpu->kvm, cr2_or_gpa, err),

I don't think kvm_mmu_fault_is_private(). It's too heavy. We can make it
it's own. I.e. the following.

From b0f914a1a4d154f076c0294831ce9ef0df7eb3d3 Mon Sep 17 00:00:00 2001
Message-Id: <b0f914a1a4d154f076c0294831ce9ef0df7eb3d3.1679114841.git.isaku.yamahata@intel.com>
In-Reply-To: <428a676face7a06a90e59dca1c32941c9b6ee001.1679114841.git.isaku.yamahata@intel.com>
References: <428a676face7a06a90e59dca1c32941c9b6ee001.1679114841.git.isaku.yamahata@intel.com>
From: Isaku Yamahata <isaku.yamahata@intel.com>
Date: Fri, 17 Mar 2023 11:18:13 -0700
Subject: [PATCH 2/4] KVM: x86: Add 'fault_is_private' x86 op

This callback is used by the KVM MMU to check whether a KVM page fault was
for a private GPA or not.

Originally-by: Michael Roth <michael.roth@amd.com>
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
---
 arch/x86/include/asm/kvm-x86-ops.h |  1 +
 arch/x86/include/asm/kvm_host.h    |  1 +
 arch/x86/kvm/mmu.h                 | 19 +++++++++++++++++++
 arch/x86/kvm/mmu/mmu_internal.h    |  2 +-
 arch/x86/kvm/x86.c                 |  8 ++++++++
 5 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/kvm-x86-ops.h b/arch/x86/include/asm/kvm-x86-ops.h
index e1f57905c8fe..dc5f18ac0bd5 100644
--- a/arch/x86/include/asm/kvm-x86-ops.h
+++ b/arch/x86/include/asm/kvm-x86-ops.h
@@ -99,6 +99,7 @@ KVM_X86_OP_OPTIONAL_RET0(set_tss_addr)
 KVM_X86_OP_OPTIONAL_RET0(set_identity_map_addr)
 KVM_X86_OP_OPTIONAL_RET0(get_mt_mask)
 KVM_X86_OP(load_mmu_pgd)
+KVM_X86_OP(fault_is_private)
 KVM_X86_OP_OPTIONAL(link_private_spt)
 KVM_X86_OP_OPTIONAL(free_private_spt)
 KVM_X86_OP_OPTIONAL(split_private_spt)
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 59196a80c3c8..0382d236fbf4 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1730,6 +1730,7 @@ struct kvm_x86_ops {
 
 	void (*load_mmu_pgd)(struct kvm_vcpu *vcpu, hpa_t root_hpa,
 			     int root_level);
+	bool (*fault_is_private)(struct kvm *kvm, gpa_t gpa, u64 error_code);
 
 	int (*link_private_spt)(struct kvm *kvm, gfn_t gfn, enum pg_level level,
 				void *private_spt);
diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h
index 4aaef2132b97..1f21680b9b97 100644
--- a/arch/x86/kvm/mmu.h
+++ b/arch/x86/kvm/mmu.h
@@ -289,6 +289,25 @@ static inline gpa_t kvm_translate_gpa(struct kvm_vcpu *vcpu,
 	return translate_nested_gpa(vcpu, gpa, access, exception);
 }
 
+static inline bool kvm_mmu_fault_is_private_default(struct kvm *kvm, gpa_t gpa, u64 err)
+{
+	struct kvm_memory_slot *slot;
+	gfn_t gfn = gpa_to_gfn(gpa);
+
+	slot = gfn_to_memslot(kvm, gfn);
+	if (!slot)
+		return false;
+
+	if (!kvm_slot_can_be_private(slot))
+		return false;
+
+	/*
+	 * Handling below is for UPM self-tests and guests that treat userspace
+	 * as the authority on whether a fault should be private or not.
+	 */
+	return kvm_mem_is_private(kvm, gfn);
+}
+
 static inline gfn_t kvm_gfn_shared_mask(const struct kvm *kvm)
 {
 #ifdef CONFIG_KVM_MMU_PRIVATE
diff --git a/arch/x86/kvm/mmu/mmu_internal.h b/arch/x86/kvm/mmu/mmu_internal.h
index bb5709f1cb57..6b54b069d1ed 100644
--- a/arch/x86/kvm/mmu/mmu_internal.h
+++ b/arch/x86/kvm/mmu/mmu_internal.h
@@ -445,7 +445,7 @@ static inline int kvm_mmu_do_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
 		.max_level = vcpu->kvm->arch.tdp_max_page_level,
 		.req_level = PG_LEVEL_4K,
 		.goal_level = PG_LEVEL_4K,
-		.is_private = kvm_is_private_gpa(vcpu->kvm, cr2_or_gpa),
+		.is_private = static_call(kvm_x86_fault_is_private)(vcpu->kvm, cr2_or_gpa, err),
 	};
 	int r;
 
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index fd14368c6bc8..0311ab450330 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -9419,6 +9419,14 @@ static inline void kvm_ops_update(struct kvm_x86_init_ops *ops)
 #undef __KVM_X86_OP
 
 	kvm_pmu_ops_update(ops->pmu_ops);
+
+	/*
+	 * TODO: Once all backend fills this option, remove this and the default
+	 * function.
+	 */
+	if (!ops->runtime_ops->fault_is_private)
+		static_call_update(kvm_x86_fault_is_private,
+				   kvm_mmu_fault_is_private_default);
 }
 
 static int kvm_x86_check_processor_compatibility(void)
-- 
2.25.1




-- 
Isaku Yamahata <isaku.yamahata@gmail.com>


  parent reply	other threads:[~2023-03-18  4:51 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-20 18:37 [PATCH RFC v8 00/56] Add AMD Secure Nested Paging (SEV-SNP) Hypervisor Support Michael Roth
2023-02-20 18:37 ` [PATCH RFC v8 01/56] KVM: x86: Add 'fault_is_private' x86 op Michael Roth
2023-03-01 10:25   ` Zhi Wang
2023-03-18  4:51   ` Isaku Yamahata [this message]
2023-03-20 17:46     ` Michael Roth
2023-03-18  4:53   ` Isaku Yamahata
2023-02-20 18:37 ` [PATCH RFC v8 02/56] KVM: x86: Add 'update_mem_attr' " Michael Roth
2023-03-18  4:56   ` Isaku Yamahata
2023-03-20 18:05     ` Michael Roth
2023-03-21 11:21       ` Zhi Wang
     [not found]         ` <20230322015838.z3bwcrvi4gqag3q6@amd.com>
2023-03-23 18:17           ` Zhi Wang
2023-03-28  4:36             ` Michael Roth
2023-03-28 23:00               ` Zhi Wang
2023-03-29 23:50                 ` Michael Roth
2023-02-20 18:37 ` [PATCH RFC v8 03/56] KVM: x86: Add platform hooks for private memory invalidations Michael Roth
2023-03-18  5:13   ` Isaku Yamahata
2023-03-20 18:09     ` Michael Roth
2023-02-20 18:37 ` [PATCH RFC v8 04/56] KVM: Add HVA range operator Michael Roth
2023-02-20 21:37   ` Zhi Wang
2023-03-27  0:34     ` Michael Roth
2023-04-04 14:40       ` Zhi Wang
2023-02-20 18:37 ` [PATCH RFC v8 05/56] KVM: SEV: Require KVM_PROTECTED_VM when AMD_MEM_ENCRYPT is enabled Michael Roth
2023-02-20 18:37 ` [PATCH RFC v8 06/56] KVM: Split out memory attribute xarray updates to helper function Michael Roth
2023-02-20 18:37 ` [PATCH RFC v8 07/56] KVM: SEV: Populate private memory fd during LAUNCH_UPDATE_DATA Michael Roth
2023-02-20 18:37 ` [PATCH RFC v8 08/56] KVM: SEV: Rename sev_{pin,unpin}_memory Michael Roth
2023-03-03 14:00   ` Vlastimil Babka
2023-03-06 11:01     ` Nikunj A. Dadhania
2023-02-20 18:38 ` [PATCH RFC v8 09/56] KVM: SEV: Handle memory backed by restricted memfd Michael Roth
2023-03-03 14:05   ` Vlastimil Babka
2023-03-06 11:03     ` Nikunj A. Dadhania
2023-02-20 18:38 ` [PATCH RFC v8 10/56] x86/cpufeatures: Add SEV-SNP CPU feature Michael Roth
2023-02-21 21:21   ` Sathyanarayanan Kuppuswamy
2023-02-22 23:27     ` Kalra, Ashish
2023-02-20 18:38 ` [PATCH RFC v8 11/56] x86/sev: Add the host SEV-SNP initialization support Michael Roth
2023-02-20 20:12   ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 12/56] x86/sev: Add RMP entry lookup helpers Michael Roth
2023-03-03 15:28   ` Vlastimil Babka
2023-03-29 22:59     ` Michael Roth
2023-04-20 16:31       ` Vlastimil Babka
2023-02-20 18:38 ` [PATCH RFC v8 13/56] x86/fault: Add helper for dumping RMP entries Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 14/56] x86/sev: Add helper functions for RMPUPDATE and PSMASH instruction Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 15/56] x86/sev: Invalidate pages from the direct map when adding them to the RMP table Michael Roth
2023-03-01 12:07   ` Tom Dohrmann
2023-03-01 16:15   ` Dave Hansen
2023-03-28 22:12     ` Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 16/56] x86/traps: Define RMP violation #PF error code Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 17/56] x86/fault: Add support to handle the RMP fault for user address Michael Roth
2023-03-01 16:21   ` Dave Hansen
2023-03-28 23:31     ` Michael Roth
2023-04-11 18:27       ` Dave Hansen
2023-03-03 15:31   ` Vlastimil Babka
2023-02-20 18:38 ` [PATCH RFC v8 18/56] x86/fault: fix handle_split_page_fault() to work with memfd backed pages Michael Roth
2023-02-20 19:57   ` Hugh Dickins
2023-02-20 20:31     ` Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 19/56] x86/fault: Return pfn from dump_pagetable() for SEV-specific fault handling Michael Roth
2023-02-20 21:13   ` Zhi Wang
2023-02-28 10:53   ` Wu Zongyong
2023-02-20 18:38 ` [PATCH RFC v8 20/56] crypto:ccp: Define the SEV-SNP commands Michael Roth
2023-04-17 14:54   ` Sabin Rapan
2023-02-20 18:38 ` [PATCH RFC v8 21/56] crypto: ccp: Add support to initialize the AMD-SP for SEV-SNP Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 22/56] crypto:ccp: Provide API to issue SEV and SNP commands Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 23/56] crypto: ccp: Introduce snp leaked pages list Michael Roth
2023-03-03 15:54   ` Vlastimil Babka
2023-02-20 18:38 ` [PATCH RFC v8 24/56] crypto: ccp: Handle the legacy TMR allocation when SNP is enabled Michael Roth
2023-02-21  9:28   ` Zhi Wang
2023-02-21 15:31     ` Kalra, Ashish
2023-02-21 21:15       ` Zhi Wang
2023-02-21 22:06         ` Kalra, Ashish
2023-02-20 18:38 ` [PATCH RFC v8 25/56] crypto: ccp: Handle the legacy SEV command " Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 26/56] crypto: ccp: Add the SNP_PLATFORM_STATUS command Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 27/56] crypto: ccp: Add the SNP_{SET,GET}_EXT_CONFIG command Michael Roth
2023-02-22 12:32   ` Zhi Wang
2023-02-22 16:50     ` Tom Lendacky
2023-02-22 22:43     ` Kalra, Ashish
2023-02-23  6:38       ` Zhi Wang
2023-02-23 14:19         ` Tom Lendacky
2023-02-20 18:38 ` [PATCH RFC v8 28/56] crypto: ccp: Provide APIs to query extended attestation report Michael Roth
2023-02-22 20:24   ` Zhi Wang
2023-02-22 22:35     ` Kalra, Ashish
2023-02-23  8:14       ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 29/56] KVM: SVM: Add support to handle AP reset MSR protocol Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 30/56] KVM: SVM: Provide the Hypervisor Feature support VMGEXIT Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 31/56] KVM: SVM: Make AVIC backing, VMSA and VMCB memory allocation SNP safe Michael Roth
2023-02-22 20:42   ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 32/56] KVM: SVM: Add initial SEV-SNP support Michael Roth
2023-02-23 17:46   ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 33/56] KVM: SVM: Add KVM_SNP_INIT command Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 34/56] KVM: SVM: Add KVM_SEV_SNP_LAUNCH_START command Michael Roth
2023-02-23 21:41   ` Zhi Wang
2023-02-24 16:22     ` Tom Lendacky
2023-04-26 17:06   ` Sabin Rapan
2023-04-26 18:02     ` Tom Lendacky
2023-02-20 18:38 ` [PATCH RFC v8 35/56] KVM: SVM: Add KVM_SEV_SNP_LAUNCH_UPDATE command Michael Roth
2023-02-24 11:55   ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 36/56] KVM: SVM: Add KVM_SEV_SNP_LAUNCH_FINISH command Michael Roth
2023-03-24 14:40   ` Alexander Graf
2023-04-17 13:42   ` Alexander Graf
2023-02-20 18:38 ` [PATCH RFC v8 37/56] KVM: X86: Keep the NPT and RMP page level in sync Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 38/56] KVM: x86: Define RMP page fault error bits for #NPF Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 39/56] KVM: SVM: Add support to handle GHCB GPA register VMGEXIT Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 40/56] KVM: SVM: Add KVM_EXIT_VMGEXIT Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 41/56] KVM: SVM: Add support to handle MSR based Page State Change VMGEXIT Michael Roth
2023-02-24 15:06   ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 42/56] KVM: SVM: Add support to handle " Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 43/56] KVM: x86: Export the kvm_zap_gfn_range() for the SNP use Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 44/56] KVM: SVM: Add support to handle the RMP nested page fault Michael Roth
2023-02-28 19:11   ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 45/56] KVM: SVM: Provide support for SNP_GUEST_REQUEST NAE event Michael Roth
2023-02-24 11:01   ` Alexander Graf
2023-02-28 19:34   ` Zhi Wang
2023-04-17 13:05   ` Alexander Graf
2023-02-20 18:38 ` [PATCH RFC v8 46/56] KVM: SVM: Use a VMSA physical address variable for populating VMCB Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 47/56] KVM: SVM: Support SEV-SNP AP Creation NAE event Michael Roth
2023-02-24 12:37   ` Alexander Graf
2023-02-28 20:47     ` Zhi Wang
2023-03-01 21:14       ` Alexander Graf
2023-04-05  0:54         ` Michael Roth
2023-04-04 22:48     ` Michael Roth
2023-04-05 15:20       ` Tom Lendacky
2023-02-20 18:38 ` [PATCH RFC v8 48/56] KVM: SVM: Add SNP-specific handling for memory attribute updates Michael Roth
2023-03-01 23:37   ` Dave Hansen
2023-04-05 23:48     ` Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 49/56] KVM: SVM: Implement .fault_is_private callback for SNP Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 50/56] KVM: SEV: Handle restricted memory invalidations " Michael Roth
2023-03-01 10:41   ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 51/56] KVM: SVM: Add module parameter to enable the SEV-SNP Michael Roth
2023-03-01 10:45   ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 52/56] ccp: Add support to decrypt the page Michael Roth
2023-03-01 21:20   ` Zhi Wang
2023-03-02  5:59     ` Dov Murik
2023-03-02 14:33       ` Tom Lendacky
2023-03-02 21:11         ` Dov Murik
2023-02-20 18:38 ` [PATCH RFC v8 53/56] KVM: SVM: Make VMSAVE target area memory allocation SNP safe Michael Roth
2023-03-01 21:23   ` Zhi Wang
2023-02-20 18:38 ` [PATCH RFC v8 54/56] x86/sev: Add KVM commands for instance certs Michael Roth
2023-02-21 12:40   ` Dov Murik
2023-03-02  0:02   ` Zhi Wang
2023-03-02  1:41     ` Dionna Amalie Glaze
2023-03-02 11:27       ` Zhi Wang
2023-03-02 11:34   ` Dov Murik
2023-02-20 18:38 ` [PATCH RFC v8 55/56] x86/sev: Document KVM_SEV_SNP_{G,S}ET_CERTS Michael Roth
2023-02-20 18:38 ` [PATCH RFC v8 56/56] iommu/amd: Add IOMMU_SNP_SHUTDOWN support Michael Roth
2023-03-01 16:56 ` [PATCH RFC v8 00/56] Add AMD Secure Nested Paging (SEV-SNP) Hypervisor Support Dave Hansen
2023-03-01 22:59   ` Zhi Wang
2023-03-01 23:39     ` Dave Hansen
2023-08-03 18:27 ` Schander, Johanna 'Mimoja' Amelie
2023-08-04  1:01   ` Kalra, Ashish

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=20230318045137.GC408922@ls.amr.corp.intel.com \
    --to=isaku.yamahata@gmail.com \
    --cc=ak@linux.intel.com \
    --cc=alpergun@google.com \
    --cc=ardb@kernel.org \
    --cc=ashish.kalra@amd.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=dgilbert@redhat.com \
    --cc=dovmurik@linux.ibm.com \
    --cc=hpa@zytor.com \
    --cc=jarkko@kernel.org \
    --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=nikunj.dadhania@amd.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=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