[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 2 PATCH 10/16] hw/i386: Introduce apicid_from_cpu_idx
From: |
Moger, Babu |
Subject: |
[Qemu-devel] [RFC 2 PATCH 10/16] hw/i386: Introduce apicid_from_cpu_idx in PCMachineState |
Date: |
Fri, 6 Sep 2019 19:12:48 +0000 |
Add function pointers in PCMachineState to handle apic id specific
functionalities. This will be used to initialize with correct
handlers based on mode selected.
x86_apicid_from_cpu_idx will be default handler.
Signed-off-by: Babu Moger <address@hidden>
---
hw/i386/pc.c | 5 ++++-
include/hw/i386/pc.h | 4 ++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 504e1ab083..69a6b82186 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -947,7 +947,7 @@ static uint32_t x86_cpu_apic_id_from_index(PCMachineState
*pcms,
initialize_topo_info(&topo_info, pcms, ms);
- correct_id = x86_apicid_from_cpu_idx(&topo_info, cpu_index);
+ correct_id = pcms->apicid_from_cpu_idx(&topo_info, cpu_index);
if (pcmc->compat_apic_id_mode) {
if (cpu_index != correct_id && !warned && !qtest_enabled()) {
error_report("APIC IDs set in compatibility mode, "
@@ -2828,6 +2828,9 @@ static void pc_machine_initfn(Object *obj)
pcms->pit_enabled = true;
pcms->smp_dies = 1;
+ /* Initialize the apic id related handlers */
+ pcms->apicid_from_cpu_idx = x86_apicid_from_cpu_idx;
+
pc_system_flash_create(pcms);
}
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 859b64c51d..6cefefdd57 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -17,6 +17,7 @@
#include "hw/mem/pc-dimm.h"
#include "hw/mem/nvdimm.h"
#include "hw/acpi/acpi_dev_interface.h"
+#include "hw/i386/topology.h"
#define HPET_INTCAP "hpet-intcap"
@@ -66,6 +67,9 @@ struct PCMachineState {
uint64_t numa_nodes;
uint64_t *node_mem;
+ /* Apic id specific handlers */
+ uint32_t (*apicid_from_cpu_idx)(X86CPUTopoInfo *topo_info, unsigned
cpu_index);
+
/* Address space used by IOAPIC device. All IOAPIC interrupts
* will be translated to MSI messages in the address space. */
AddressSpace *ioapic_as;
- [Qemu-devel] [RFC 2 PATCH 04/16] machine: Add SMP Sockets in CpuTopology, (continued)
- [Qemu-devel] [RFC 2 PATCH 04/16] machine: Add SMP Sockets in CpuTopology, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 05/16] hw/i386: Simplify topology Offset/width Calculation, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 06/16] hw/core: Add core complex id in X86CPU topology, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 07/16] hw/386: Add new epyc mode topology decoding functions, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 08/16] i386: Cleanup and use the new epyc mode topology functions, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 09/16] hw/i386: Introduce initialize_topo_info function, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 10/16] hw/i386: Introduce apicid_from_cpu_idx in PCMachineState,
Moger, Babu <=
- [Qemu-devel] [RFC 2 PATCH 11/16] Introduce-topo_ids_from_apicid-handler, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 12/16] hw/i386: Introduce apic_id_from_topo_ids handler in PCMachineState, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 13/16] machine: Add new epyc property in PCMachineState, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 14/16] hw/i386: Introduce epyc mode function handlers, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 15/16] i386: Fix pkg_id offset for epyc mode, Moger, Babu, 2019/09/06
- [Qemu-devel] [RFC 2 PATCH 16/16] hw/core: Fix up the machine_set_cpu_numa_node for epyc, Moger, Babu, 2019/09/06
- Re: [RFC 2 PATCH 00/16] APIC ID fixes for AMD EPYC CPU models, Moger, Babu, 2019/09/20