On 2/2/25 15:39, Xiaoyao Li wrote:
On 2/1/2025 2:27 AM, Paolo Bonzini wrote:
On Fri, Jan 24, 2025 at 2:40 PM Xiaoyao Li <xiaoyao.li@xxxxxxxxx> wrote:
For TDX guest, the phys_bits is not configurable and can only be
host/native value.
Validate phys_bits inside tdx_check_features().
Hi Xiaoyao,
to avoid
qemu-kvm: TDX requires guest CPU physical bits (48) to match host CPU
physical bits (52)
I need options like
-cpu host,phys-bits=52,guest-phys-bits=52,host-phys-bits-limit=52,-
kvm-asyncpf-int
to start a TDX guest, is that intentional?
"-cpu host" should be sufficient and should not hit the error.
why did you get "guest CPU physical bits (48)"?
Nevermind - I got it from the RHEL machine types. The fix (which does not have
to be included upstream, though I would not complain) is
diff --git a/target/i386/kvm/tdx.c b/target/i386/kvm/tdx.c
index e0ab41bcb7b..7aca8219405 100644
--- a/target/i386/kvm/tdx.c
+++ b/target/i386/kvm/tdx.c
@@ -444,6 +444,7 @@ static void tdx_cpu_instance_init(X86ConfidentialGuest *cg, CPUState *cpu)
X86CPU *x86cpu = X86_CPU(cpu);
object_property_set_bool(OBJECT(cpu), "pmu", false, &error_abort);
+ object_property_set_bool(OBJECT(cpu), "host-phys-bits-limit", 0, &error_abort);
/* invtsc is fixed1 for TD guest */
object_property_set_bool(OBJECT(cpu), "invtsc", true, &error_abort);
but it also needs the patch at
https://lore.kernel.org/qemu-devel/20250203114132.259155-1-pbonzini@xxxxxxxxxx/T/.
With these two changes, QEMU accepts "-cpu host" just fine.
Paolo