All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Eduardo Habkost" <ehabkost@redhat.com>
Subject: [PULL 07/24] i386: use better matching family/model/stepping for 'max' CPU
Date: Tue,  1 Jun 2021 14:09:57 -0400	[thread overview]
Message-ID: <20210601181014.2568861-8-ehabkost@redhat.com> (raw)
In-Reply-To: <20210601181014.2568861-1-ehabkost@redhat.com>

From: Daniel P. Berrangé <berrange@redhat.com>

The 'max' CPU under TCG currently reports a family/model/stepping that
approximately corresponds to an AMD K7 vintage architecture.
The K7 series predates the introduction of 64-bit support by AMD
in the K8 series. This has been reported to lead to LLVM complaints
about generating 64-bit code for a 32-bit CPU target

  LLVM ERROR: 64-bit code requested on a subtarget that doesn't support it!

It appears LLVM looks at the family/model/stepping, despite qemu64
reporting it is 64-bit capable.

This patch changes 'max' to report a CPUID with the family, model
and stepping taken from a

 AMD Athlon(tm) 64 X2 Dual Core Processor 4000+

which is one of the first 64-bit AMD CPUs.

Closes https://gitlab.com/qemu-project/qemu/-/issues/191

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20210507133650.645526-3-berrange@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 target/i386/cpu.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 078ec905522..d150378c400 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -4285,9 +4285,15 @@ static void max_x86_cpu_initfn(Object *obj)
      */
     object_property_set_str(OBJECT(cpu), "vendor", CPUID_VENDOR_AMD,
                             &error_abort);
+#ifdef TARGET_X86_64
+    object_property_set_int(OBJECT(cpu), "family", 15, &error_abort);
+    object_property_set_int(OBJECT(cpu), "model", 107, &error_abort);
+    object_property_set_int(OBJECT(cpu), "stepping", 1, &error_abort);
+#else
     object_property_set_int(OBJECT(cpu), "family", 6, &error_abort);
     object_property_set_int(OBJECT(cpu), "model", 6, &error_abort);
     object_property_set_int(OBJECT(cpu), "stepping", 3, &error_abort);
+#endif
     object_property_set_str(OBJECT(cpu), "model-id",
                             "QEMU TCG CPU version " QEMU_HW_VERSION,
                             &error_abort);
-- 
2.30.2



  parent reply	other threads:[~2021-06-01 18:18 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-01 18:09 [PULL 00/24] x86 queue, 2021-06-01 Eduardo Habkost
2021-06-01 18:09 ` [PULL 01/24] target/i386: Add CPU model versions supporting 'xsaves' Eduardo Habkost
2021-06-01 18:09 ` [PULL 02/24] i386: Document when features can be added to kvm_default_props Eduardo Habkost
2021-06-01 18:09 ` [PULL 03/24] target/i386/cpu: Constify CPUCaches Eduardo Habkost
2021-06-01 18:09 ` [PULL 04/24] target/i386/cpu: Constify X86CPUDefinition Eduardo Habkost
2021-06-01 18:09 ` [PULL 05/24] i386/cpu_dump: support AVX512 ZMM regs dump Eduardo Habkost
2021-06-01 18:09 ` [PULL 06/24] i386: use better matching family/model/stepping for 'qemu64' CPU Eduardo Habkost
2021-06-01 18:09 ` Eduardo Habkost [this message]
2021-06-01 18:09 ` [PULL 08/24] i386: keep hyperv_vendor string up-to-date Eduardo Habkost
2021-06-01 18:09 ` [PULL 09/24] i386: invert hyperv_spinlock_attempts setting logic with hv_passthrough Eduardo Habkost
2021-06-01 18:10 ` [PULL 10/24] i386: always fill Hyper-V CPUID feature leaves from X86CPU data Eduardo Habkost
2021-06-01 18:10 ` [PULL 11/24] i386: stop using env->features[] for filling Hyper-V CPUIDs Eduardo Habkost
2021-06-01 18:10 ` [PULL 12/24] i386: introduce hyperv_feature_supported() Eduardo Habkost
2021-06-01 18:10 ` [PULL 13/24] i386: introduce hv_cpuid_get_host() Eduardo Habkost
2021-06-01 18:10 ` [PULL 14/24] i386: drop FEAT_HYPERV feature leaves Eduardo Habkost
2021-06-01 18:10 ` [PULL 15/24] i386: introduce hv_cpuid_cache Eduardo Habkost
2021-06-01 18:10 ` [PULL 16/24] i386: split hyperv_handle_properties() into hyperv_expand_features()/hyperv_fill_cpuids() Eduardo Habkost
2021-06-01 18:10 ` [PULL 17/24] i386: move eVMCS enablement to hyperv_init_vcpu() Eduardo Habkost
2021-06-01 18:10 ` [PULL 18/24] i386: switch hyperv_expand_features() to using error_setg() Eduardo Habkost
2021-06-01 18:10 ` [PULL 19/24] i386: adjust the expected KVM_GET_SUPPORTED_HV_CPUID array size Eduardo Habkost
2021-06-01 18:10 ` [PULL 20/24] i386: prefer system KVM_GET_SUPPORTED_HV_CPUID ioctl over vCPU's one Eduardo Habkost
2021-06-01 18:10 ` [PULL 21/24] i386: use global kvm_state in hyperv_enabled() check Eduardo Habkost
2021-06-01 18:10 ` [PULL 22/24] target/i386/sev: add support to query the attestation report Eduardo Habkost
2021-06-01 18:10   ` Eduardo Habkost
2021-06-01 18:10 ` [PULL 23/24] sev: use explicit indices for mapping firmware error codes to strings Eduardo Habkost
2021-06-01 18:10 ` [PULL 24/24] sev: add missing firmware error conditions Eduardo Habkost
2021-06-02 10:41 ` [PULL 00/24] x86 queue, 2021-06-01 Peter Maydell

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=20210601181014.2568861-8-ehabkost@redhat.com \
    --to=ehabkost@redhat.com \
    --cc=berrange@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.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.