mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
hw/i386: Rename X86CPUTopoInfo structure to X86CPUTopoIDs
Rename few data structures related to X86 topology. X86CPUTopoIDs will have individual arch ids. Next patch introduces X86CPUTopoInfo which will have all topology information(like cores, threads etc..). Signed-off-by: Babu Moger <babu.moger@amd.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <158326541877.40452.17535023236841538507.stgit@naples-babu.amd.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
143c30d4d3
commit
dcf08bc60b
3 changed files with 57 additions and 50 deletions
45
hw/i386/pc.c
45
hw/i386/pc.c
|
@ -1505,7 +1505,7 @@ static void pc_cpu_pre_plug(HotplugHandler *hotplug_dev,
|
|||
int idx;
|
||||
CPUState *cs;
|
||||
CPUArchId *cpu_slot;
|
||||
X86CPUTopoInfo topo;
|
||||
X86CPUTopoIDs topo_ids;
|
||||
X86CPU *cpu = X86_CPU(dev);
|
||||
CPUX86State *env = &cpu->env;
|
||||
MachineState *ms = MACHINE(hotplug_dev);
|
||||
|
@ -1571,12 +1571,12 @@ static void pc_cpu_pre_plug(HotplugHandler *hotplug_dev,
|
|||
return;
|
||||
}
|
||||
|
||||
topo.pkg_id = cpu->socket_id;
|
||||
topo.die_id = cpu->die_id;
|
||||
topo.core_id = cpu->core_id;
|
||||
topo.smt_id = cpu->thread_id;
|
||||
topo_ids.pkg_id = cpu->socket_id;
|
||||
topo_ids.die_id = cpu->die_id;
|
||||
topo_ids.core_id = cpu->core_id;
|
||||
topo_ids.smt_id = cpu->thread_id;
|
||||
cpu->apic_id = apicid_from_topo_ids(x86ms->smp_dies, smp_cores,
|
||||
smp_threads, &topo);
|
||||
smp_threads, &topo_ids);
|
||||
}
|
||||
|
||||
cpu_slot = pc_find_cpu_slot(MACHINE(pcms), cpu->apic_id, &idx);
|
||||
|
@ -1584,11 +1584,11 @@ static void pc_cpu_pre_plug(HotplugHandler *hotplug_dev,
|
|||
MachineState *ms = MACHINE(pcms);
|
||||
|
||||
x86_topo_ids_from_apicid(cpu->apic_id, x86ms->smp_dies,
|
||||
smp_cores, smp_threads, &topo);
|
||||
smp_cores, smp_threads, &topo_ids);
|
||||
error_setg(errp,
|
||||
"Invalid CPU [socket: %u, die: %u, core: %u, thread: %u] with"
|
||||
" APIC ID %" PRIu32 ", valid index range 0:%d",
|
||||
topo.pkg_id, topo.die_id, topo.core_id, topo.smt_id,
|
||||
topo_ids.pkg_id, topo_ids.die_id, topo_ids.core_id, topo_ids.smt_id,
|
||||
cpu->apic_id, ms->possible_cpus->len - 1);
|
||||
return;
|
||||
}
|
||||
|
@ -1606,34 +1606,37 @@ static void pc_cpu_pre_plug(HotplugHandler *hotplug_dev,
|
|||
* once -smp refactoring is complete and there will be CPU private
|
||||
* CPUState::nr_cores and CPUState::nr_threads fields instead of globals */
|
||||
x86_topo_ids_from_apicid(cpu->apic_id, x86ms->smp_dies,
|
||||
smp_cores, smp_threads, &topo);
|
||||
if (cpu->socket_id != -1 && cpu->socket_id != topo.pkg_id) {
|
||||
smp_cores, smp_threads, &topo_ids);
|
||||
if (cpu->socket_id != -1 && cpu->socket_id != topo_ids.pkg_id) {
|
||||
error_setg(errp, "property socket-id: %u doesn't match set apic-id:"
|
||||
" 0x%x (socket-id: %u)", cpu->socket_id, cpu->apic_id, topo.pkg_id);
|
||||
" 0x%x (socket-id: %u)", cpu->socket_id, cpu->apic_id,
|
||||
topo_ids.pkg_id);
|
||||
return;
|
||||
}
|
||||
cpu->socket_id = topo.pkg_id;
|
||||
cpu->socket_id = topo_ids.pkg_id;
|
||||
|
||||
if (cpu->die_id != -1 && cpu->die_id != topo.die_id) {
|
||||
if (cpu->die_id != -1 && cpu->die_id != topo_ids.die_id) {
|
||||
error_setg(errp, "property die-id: %u doesn't match set apic-id:"
|
||||
" 0x%x (die-id: %u)", cpu->die_id, cpu->apic_id, topo.die_id);
|
||||
" 0x%x (die-id: %u)", cpu->die_id, cpu->apic_id, topo_ids.die_id);
|
||||
return;
|
||||
}
|
||||
cpu->die_id = topo.die_id;
|
||||
cpu->die_id = topo_ids.die_id;
|
||||
|
||||
if (cpu->core_id != -1 && cpu->core_id != topo.core_id) {
|
||||
if (cpu->core_id != -1 && cpu->core_id != topo_ids.core_id) {
|
||||
error_setg(errp, "property core-id: %u doesn't match set apic-id:"
|
||||
" 0x%x (core-id: %u)", cpu->core_id, cpu->apic_id, topo.core_id);
|
||||
" 0x%x (core-id: %u)", cpu->core_id, cpu->apic_id,
|
||||
topo_ids.core_id);
|
||||
return;
|
||||
}
|
||||
cpu->core_id = topo.core_id;
|
||||
cpu->core_id = topo_ids.core_id;
|
||||
|
||||
if (cpu->thread_id != -1 && cpu->thread_id != topo.smt_id) {
|
||||
if (cpu->thread_id != -1 && cpu->thread_id != topo_ids.smt_id) {
|
||||
error_setg(errp, "property thread-id: %u doesn't match set apic-id:"
|
||||
" 0x%x (thread-id: %u)", cpu->thread_id, cpu->apic_id, topo.smt_id);
|
||||
" 0x%x (thread-id: %u)", cpu->thread_id, cpu->apic_id,
|
||||
topo_ids.smt_id);
|
||||
return;
|
||||
}
|
||||
cpu->thread_id = topo.smt_id;
|
||||
cpu->thread_id = topo_ids.smt_id;
|
||||
|
||||
if (hyperv_feat_enabled(cpu, HYPERV_FEAT_VPINDEX) &&
|
||||
!kvm_hv_vpindex_settable()) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue