[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v3 34/42] i386: Get model-id from CPU object on "-cpu
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PULL v3 34/42] i386: Get model-id from CPU object on "-cpu help" |
Date: |
Tue, 2 Jul 2019 12:35:27 -0300 |
When introducing versioned CPU models, the string at
X86CPUDefinition::model_id might not be the model-id we'll really
use. Instantiate a CPU object and check the model-id property on
"-cpu help"
Signed-off-by: Eduardo Habkost <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
target/i386/cpu.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 9059121273..955ea20d69 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -3837,18 +3837,28 @@ static GSList *get_sorted_cpu_model_list(void)
return list;
}
+static char *x86_cpu_class_get_model_id(X86CPUClass *xc)
+{
+ Object *obj = object_new(object_class_get_name(OBJECT_CLASS(xc)));
+ char *r = object_property_get_str(obj, "model-id", &error_abort);
+ object_unref(obj);
+ return r;
+}
+
static void x86_cpu_list_entry(gpointer data, gpointer user_data)
{
ObjectClass *oc = data;
X86CPUClass *cc = X86_CPU_CLASS(oc);
char *name = x86_cpu_class_get_model_name(cc);
- const char *desc = cc->model_description;
- if (!desc && cc->cpu_def) {
- desc = cc->cpu_def->model_id;
+ char *desc = g_strdup(cc->model_description);
+
+ if (!desc) {
+ desc = x86_cpu_class_get_model_id(cc);
}
qemu_printf("x86 %-20s %-48s\n", name, desc);
g_free(name);
+ g_free(desc);
}
/* list available CPU models and flags */
--
2.18.0.rc1.1.g3f1ff2140
- [Qemu-devel] [PULL v3 25/42] x86/cpu: use FeatureWordArray to define filtered_features, (continued)
- [Qemu-devel] [PULL v3 25/42] x86/cpu: use FeatureWordArray to define filtered_features, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 22/42] i386: Don't print warning if phys-bits was set automatically, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 21/42] deprecate -mem-path fallback to anonymous RAM, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 23/42] i386: Fix signedness of hyperv_spinlock_attempts, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 26/42] i386: Remove unused host_cpudef variable, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 27/42] target/i386: Add CPUID.1F generation support for multi-dies PCMachine, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 28/42] machine: Refactor smp_parse() in vl.c as MachineClass::smp_parse(), Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 29/42] vl.c: Add -smp, dies=* command line support and update doc, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 30/42] qmp: Add deprecation information to query-machines, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 31/42] i386: Introduce SnowRidge CPU model, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 34/42] i386: Get model-id from CPU object on "-cpu help",
Eduardo Habkost <=
- [Qemu-devel] [PULL v3 33/42] i386: Add x-force-features option for testing, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 32/42] qmp: Add "alias-of" field to query-cpu-definitions, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 39/42] docs: Deprecate CPU model runnability guarantees, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 40/42] i386: Add Cascadelake-Server-v2 CPU model, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 37/42] i386: Replace -noTSX, -IBRS, -IBPB CPU models with aliases, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 36/42] i386: Define -IBRS, -noTSX, -IBRS versions of CPU models, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 38/42] i386: Make unversioned CPU models be aliases, Eduardo Habkost, 2019/07/02
- [Qemu-devel] [PULL v3 41/42] numa: allow memory-less nodes when using memdev as backend, Eduardo Habkost, 2019/07/02