diff options
author | Like Xu <like.xu@linux.intel.com> | 2019-06-12 16:40:56 +0800 |
---|---|---|
committer | Eduardo Habkost <ehabkost@redhat.com> | 2019-07-05 17:08:03 -0300 |
commit | c26ae610811e8d52f4fc73e3ae0a8bc4a24d6763 (patch) | |
tree | c1a50b3db284c3ac7e9a406cffb256577912fe49 /target | |
parent | a5e0b331193a02e5fcbe7636d48bf59af54d6617 (diff) | |
download | qemu-c26ae610811e8d52f4fc73e3ae0a8bc4a24d6763.zip qemu-c26ae610811e8d52f4fc73e3ae0a8bc4a24d6763.tar.gz qemu-c26ae610811e8d52f4fc73e3ae0a8bc4a24d6763.tar.bz2 |
i386: Add die-level cpu topology to x86CPU on PCMachine
The die-level as the first PC-specific cpu topology is added to the leagcy
cpu topology model, which has one die per package implicitly and only the
numbers of sockets/cores/threads are configurable.
In the new model with die-level support, the total number of logical
processors (including offline) on board will be calculated as:
#cpus = #sockets * #dies * #cores * #threads
and considering compatibility, the default value for #dies would be
initialized to one in x86_cpu_initfn() and pc_machine_initfn().
Signed-off-by: Like Xu <like.xu@linux.intel.com>
Message-Id: <20190612084104.34984-2-like.xu@linux.intel.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'target')
-rw-r--r-- | target/i386/cpu.c | 1 | ||||
-rw-r--r-- | target/i386/cpu.h | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 4b5cd49..8ef3063 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5639,6 +5639,7 @@ static void x86_cpu_initfn(Object *obj) CPUX86State *env = &cpu->env; FeatureWord w; + env->nr_dies = 1; cpu_set_cpustate_pointers(cpu); object_property_add(obj, "family", "int", diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 9334579..14c19e6 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1385,6 +1385,8 @@ typedef struct CPUX86State { uint64_t xss; TPRAccess tpr_access_type; + + unsigned nr_dies; } CPUX86State; struct kvm_msrs; |