qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Xiaoyao Li <xiaoyao.li@intel.com>
Subject: [PULL 18/24] i386/tdx: Error and exit when named cpu model is requested
Date: Fri, 20 Jun 2025 18:40:46 +0200	[thread overview]
Message-ID: <20250620164053.579416-19-pbonzini@redhat.com> (raw)
In-Reply-To: <20250620164053.579416-1-pbonzini@redhat.com>

From: Xiaoyao Li <xiaoyao.li@intel.com>

Currently, it gets below error when requesting any named cpu model with
"-cpu" to boot a TDX VM:

  qemu-system-x86_64: KVM_TDX_INIT_VM failed: Invalid argument

It misleads people to think it's the bug of KVM or QEMU. It is just that
current QEMU doesn't support named cpu model for TDX.

To support named cpu models for TDX guest, there are opens to be
finalized and needs a mount of additional work.

For now, explicitly check the case when named cpu model is requested.
Error report a hint and exit.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Link: https://lore.kernel.org/r/20250612133801.2238342-1-xiaoyao.li@intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 target/i386/kvm/tdx.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/target/i386/kvm/tdx.c b/target/i386/kvm/tdx.c
index 820ca3614e2..2b52de9d71b 100644
--- a/target/i386/kvm/tdx.c
+++ b/target/i386/kvm/tdx.c
@@ -739,8 +739,14 @@ static int tdx_kvm_type(X86ConfidentialGuest *cg)
 
 static void tdx_cpu_instance_init(X86ConfidentialGuest *cg, CPUState *cpu)
 {
+    X86CPUClass *xcc = X86_CPU_GET_CLASS(cpu);
     X86CPU *x86cpu = X86_CPU(cpu);
 
+    if (xcc->model) {
+        error_report("Named cpu model is not supported for TDX yet!");
+        exit(1);
+    }
+
     object_property_set_bool(OBJECT(cpu), "pmu", false, &error_abort);
 
     /* invtsc is fixed1 for TD guest */
-- 
2.49.0



  parent reply	other threads:[~2025-06-20 16:42 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-20 16:40 [PULL 00/24] i386 (TCG, TDX), Rust changes for 2025-06-20 Paolo Bonzini
2025-06-20 16:40 ` [PULL 01/24] meson: cleanup win32 library detection Paolo Bonzini
2025-06-20 16:40 ` [PULL 02/24] target/i386: fix TB exit logic in gen_movl_seg() when writing to SS Paolo Bonzini
2025-06-20 16:40 ` [PULL 03/24] hw: Fix type constant for DTB files Paolo Bonzini
2025-06-20 16:40 ` [PULL 04/24] pc-bios/dtb/meson: Prefer target name to be outfile, not infile Paolo Bonzini
2025-06-20 16:40 ` [PULL 05/24] rust: qemu_api: introduce MaybeUninit field projection Paolo Bonzini
2025-06-20 16:40 ` [PULL 06/24] rust: hpet: fully initialize object during instance_init Paolo Bonzini
2025-06-20 16:40 ` [PULL 07/24] rust: qom: introduce ParentInit Paolo Bonzini
2025-06-20 16:40 ` [PULL 08/24] rust: qom: make ParentInit lifetime-invariant Paolo Bonzini
2025-06-20 16:40 ` [PULL 09/24] rust: qom: change instance_init to take a ParentInit<> Paolo Bonzini
2025-06-20 16:40 ` [PULL 10/24] rust: prepare variable definitions for multiple bindgen invocations Paolo Bonzini
2025-06-20 16:40 ` [PULL 11/24] rust: move rust.bindgen to qemu-api crate Paolo Bonzini
2025-06-20 16:40 ` [PULL 12/24] rust/qemu-api: Add initial logging support based on C API Paolo Bonzini
2025-06-20 16:40 ` [PULL 13/24] rust: pl011: Implement logging Paolo Bonzini
2025-06-20 16:40 ` [PULL 14/24] rust: pl011: Add missing logging to match C version Paolo Bonzini
2025-06-20 16:40 ` [PULL 15/24] rust: hpet: fix new warning Paolo Bonzini
2025-06-20 16:40 ` [PULL 16/24] i386/cpu: Move adjustment of CPUID_EXT_PDCM before feature_dependencies[] check Paolo Bonzini
2025-06-20 16:40 ` [PULL 17/24] i386/cpu: Warn about why CPUID_EXT_PDCM is not available Paolo Bonzini
2025-06-20 16:40 ` Paolo Bonzini [this message]
2025-06-20 16:40 ` [PULL 19/24] i386/cpu: Rename enable_cpuid_0x1f to force_cpuid_0x1f Paolo Bonzini
2025-06-20 16:40 ` [PULL 20/24] i386/tdx: Fix the typo of the comment of struct TdxGuest Paolo Bonzini
2025-06-20 16:40 ` [PULL 21/24] i386/tdx: Clarify the error message of mrconfigid/mrowner/mrownerconfig Paolo Bonzini
2025-06-20 16:40 ` [PULL 22/24] update Linux headers to v6.16-rc3 Paolo Bonzini
2025-06-20 16:40 ` [PULL 23/24] i386/tdx: handle TDG.VP.VMCALL<GetTdVmCallInfo> Paolo Bonzini
2025-06-20 16:40 ` [PULL 24/24] i386/tdx: handle TDG.VP.VMCALL<GetQuote> Paolo Bonzini
2025-06-23  6:43   ` Cédric Le Goater
2025-06-23  7:03     ` Xiaoyao Li
2025-06-23  7:44       ` Cédric Le Goater
2025-06-23  8:02       ` Daniel P. Berrangé
2025-06-23 13:04         ` Stefan Hajnoczi
2025-06-23 13:08           ` Daniel P. Berrangé
2025-06-23 18:57             ` Stefan Hajnoczi
2025-06-23 20:37               ` Cédric Le Goater
2025-06-24 15:03                 ` Stefan Hajnoczi
2025-06-24 15:08                   ` Daniel P. Berrangé
2025-06-24 15:22                     ` Cédric Le Goater

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=20250620164053.579416-19-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=xiaoyao.li@intel.com \
    /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).