From: Binbin Wu <binbin.wu@linux.intel.com>
To: Sagi Shahar <sagis@google.com>
Cc: linux-kselftest@vger.kernel.org,
Paolo Bonzini <pbonzini@redhat.com>,
Shuah Khan <shuah@kernel.org>,
Sean Christopherson <seanjc@google.com>,
Ackerley Tng <ackerleytng@google.com>,
Ryan Afranji <afranji@google.com>,
Andrew Jones <ajones@ventanamicro.com>,
Isaku Yamahata <isaku.yamahata@intel.com>,
Erdem Aktas <erdemaktas@google.com>,
Rick Edgecombe <rick.p.edgecombe@intel.com>,
Roger Wang <runanwang@google.com>,
Oliver Upton <oliver.upton@linux.dev>,
"Pratik R. Sampat" <pratikrajesh.sampat@amd.com>,
Reinette Chatre <reinette.chatre@intel.com>,
Ira Weiny <ira.weiny@intel.com>, Chao Gao <chao.gao@intel.com>,
Chenyi Qiang <chenyi.qiang@intel.com>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
Adrian Hunter <adrian.hunter@intel.com>
Subject: Re: [PATCH v10 04/21] KVM: selftests: Update kvm_init_vm_address_properties() for TDX
Date: Fri, 5 Sep 2025 13:19:41 +0800 [thread overview]
Message-ID: <84bccc75-6e5e-4c08-aba6-1d9219eacfaa@linux.intel.com> (raw)
In-Reply-To: <20250904065453.639610-5-sagis@google.com>
On 9/4/2025 2:54 PM, Sagi Shahar wrote:
> From: Isaku Yamahata <isaku.yamahata@intel.com>
>
> Let kvm_init_vm_address_properties() initialize vm->arch.{s_bit, tag_mask}
> similar to SEV.
>
> TDX sets the shared bit based on the guest physical address width and
> currently supports 48 and 52 widths.
>
> Co-developed-by: Adrian Hunter <adrian.hunter@intel.com>
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
> Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
> Co-developed-by: Sagi Shahar <sagis@google.com>
> Signed-off-by: Sagi Shahar <sagis@google.com>
Reviewed-by: Binbin Wu <binbin.wu@linux.intel.com>
> ---
> .../selftests/kvm/include/x86/tdx/tdx_util.h | 14 ++++++++++++++
> tools/testing/selftests/kvm/lib/x86/processor.c | 12 ++++++++++--
> 2 files changed, 24 insertions(+), 2 deletions(-)
> create mode 100644 tools/testing/selftests/kvm/include/x86/tdx/tdx_util.h
>
> diff --git a/tools/testing/selftests/kvm/include/x86/tdx/tdx_util.h b/tools/testing/selftests/kvm/include/x86/tdx/tdx_util.h
> new file mode 100644
> index 000000000000..286d5e3c24b1
> --- /dev/null
> +++ b/tools/testing/selftests/kvm/include/x86/tdx/tdx_util.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef SELFTESTS_TDX_TDX_UTIL_H
> +#define SELFTESTS_TDX_TDX_UTIL_H
> +
> +#include <stdbool.h>
> +
> +#include "kvm_util.h"
> +
> +static inline bool is_tdx_vm(struct kvm_vm *vm)
> +{
> + return vm->type == KVM_X86_TDX_VM;
> +}
> +
> +#endif // SELFTESTS_TDX_TDX_UTIL_H
> diff --git a/tools/testing/selftests/kvm/lib/x86/processor.c b/tools/testing/selftests/kvm/lib/x86/processor.c
> index 82369373e843..2a44831e0cc9 100644
> --- a/tools/testing/selftests/kvm/lib/x86/processor.c
> +++ b/tools/testing/selftests/kvm/lib/x86/processor.c
> @@ -8,6 +8,7 @@
> #include "kvm_util.h"
> #include "processor.h"
> #include "sev.h"
> +#include "tdx/tdx_util.h"
>
> #ifndef NUM_INTERRUPTS
> #define NUM_INTERRUPTS 256
> @@ -1160,12 +1161,19 @@ void kvm_get_cpu_address_width(unsigned int *pa_bits, unsigned int *va_bits)
>
> void kvm_init_vm_address_properties(struct kvm_vm *vm)
> {
> + uint32_t gpa_bits = kvm_cpu_property(X86_PROPERTY_GUEST_MAX_PHY_ADDR);
> +
> + vm->arch.sev_fd = -1;
> +
> if (is_sev_vm(vm)) {
> vm->arch.sev_fd = open_sev_dev_path_or_exit();
> vm->arch.c_bit = BIT_ULL(this_cpu_property(X86_PROPERTY_SEV_C_BIT));
> vm->gpa_tag_mask = vm->arch.c_bit;
> - } else {
> - vm->arch.sev_fd = -1;
> + } else if (is_tdx_vm(vm)) {
> + TEST_ASSERT(gpa_bits == 48 || gpa_bits == 52,
> + "TDX: bad X86_PROPERTY_GUEST_MAX_PHY_ADDR value: %u", gpa_bits);
> + vm->arch.s_bit = BIT_ULL(gpa_bits - 1);
> + vm->gpa_tag_mask = vm->arch.s_bit;
> }
> }
>
next prev parent reply other threads:[~2025-09-05 5:19 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-04 6:54 [PATCH v10 00/21] TDX KVM selftests Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 01/21] KVM: selftests: Allocate pgd in virt_map() as necessary Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 02/21] KVM: selftests: Expose functions to get default sregs values Sagi Shahar
2025-09-04 9:23 ` Binbin Wu
2025-09-04 6:54 ` [PATCH v10 03/21] KVM: selftests: Expose function to allocate guest vCPU stack Sagi Shahar
2025-09-04 9:27 ` Binbin Wu
2025-09-04 6:54 ` [PATCH v10 04/21] KVM: selftests: Update kvm_init_vm_address_properties() for TDX Sagi Shahar
2025-09-05 5:19 ` Binbin Wu [this message]
2025-09-04 6:54 ` [PATCH v10 05/21] KVM: selftests: Expose segment definitons to assembly files Sagi Shahar
2025-09-05 5:24 ` Binbin Wu
2025-09-04 6:54 ` [PATCH v10 06/21] KVM: selftests: Add kbuild definitons Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 07/21] KVM: selftests: Define structs to pass parameters to TDX boot code Sagi Shahar
2025-09-08 7:19 ` Binbin Wu
2025-09-04 6:54 ` [PATCH v10 08/21] KVM: selftests: Add " Sagi Shahar
2025-09-08 7:33 ` Binbin Wu
2025-09-04 6:54 ` [PATCH v10 09/21] KVM: selftests: Set up TDX boot code region Sagi Shahar
2025-09-08 7:39 ` Binbin Wu
2025-09-04 6:54 ` [PATCH v10 10/21] KVM: selftests: Set up TDX boot parameters region Sagi Shahar
2025-09-08 8:07 ` Binbin Wu
2025-09-25 17:13 ` Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 11/21] KVM: selftests: Add helper to initialize TDX VM Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 12/21] KVM: selftests: TDX: Use KVM_TDX_CAPABILITIES to validate TDs' attribute configuration Sagi Shahar
2025-09-08 9:22 ` Binbin Wu
2025-09-04 6:54 ` [PATCH v10 13/21] KVM: selftests: Add helpers to init TDX memory and finalize VM Sagi Shahar
2025-09-10 6:49 ` Binbin Wu
2025-09-04 6:54 ` [PATCH v10 14/21] KVM: selftests: Call TDX init when creating a new TDX vm Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 15/21] KVM: selftests: Setup memory regions for TDX on vm creation Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 16/21] KVM: selftests: Call KVM_TDX_INIT_VCPU when creating a new TDX vcpu Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 17/21] KVM: selftests: Set entry point for TDX guest code Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 18/21] KVM: selftests: Add support for TDX TDCALL from guest Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 19/21] KVM: selftests: Add wrapper for TDX MMIO " Sagi Shahar
2025-09-04 6:54 ` [PATCH v10 20/21] KVM: selftests: Add ucall support for TDX Sagi Shahar
2025-09-10 7:46 ` Binbin Wu
2025-09-04 6:54 ` [PATCH v10 21/21] KVM: selftests: Add TDX lifecycle test Sagi Shahar
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=84bccc75-6e5e-4c08-aba6-1d9219eacfaa@linux.intel.com \
--to=binbin.wu@linux.intel.com \
--cc=ackerleytng@google.com \
--cc=adrian.hunter@intel.com \
--cc=afranji@google.com \
--cc=ajones@ventanamicro.com \
--cc=chao.gao@intel.com \
--cc=chenyi.qiang@intel.com \
--cc=erdemaktas@google.com \
--cc=ira.weiny@intel.com \
--cc=isaku.yamahata@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=oliver.upton@linux.dev \
--cc=pbonzini@redhat.com \
--cc=pratikrajesh.sampat@amd.com \
--cc=reinette.chatre@intel.com \
--cc=rick.p.edgecombe@intel.com \
--cc=runanwang@google.com \
--cc=sagis@google.com \
--cc=seanjc@google.com \
--cc=shuah@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.