[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 00/10] pc: do not create invalid MADT.LAPIC/Proce
From: |
Igor Mammedov |
Subject: |
[Qemu-devel] [PATCH v2 00/10] pc: do not create invalid MADT.LAPIC/Processor entries |
Date: |
Fri, 5 Feb 2016 19:06:56 +0100 |
Changes since v1:
- rebased on top of PCI tree that contains
Eduardo's guest_info removel series
- fix ^2 times present CPU lookup when creating CPON
package (spotted-by: Eduardo Habkost <address@hidden>)
It's mostly clean up series that removes invalid CPU
entries from MADT/DSDT/SRAT tables when APIC IDs are
sparse distributed*.
Series also removes intermediate present CPUs bitmap
in ACPI tables generation code, replacing it with
machine reported presence status. That should
help later for consolidating and sharing CPU hotplug
codebase and extending supported CPU count above 256
on ACPI side, where I'm going to replace current
"not scalable" bitmap based CPU hotplug MMIO interface
with memory-hotplug like one, which could easily
scale and provide additional info for ACPI CPU device
objects.
Tested hoptlug with: RHEL72 and WS2003.
Git tree for testing:
https://github.com/imammedo/qemu.git pc_madt_dsdt_lapic_cleanups_v2
* example topology with sparse APIC IDs:
-smp X,sockets=2,cores=3,maxcpus=6
* it's not possible to remove notion of apic_ad_limit
since guest visible interfaces like CPU hoptlug MMIO
(CPON array in ACPI + corresponding MMIO in QEMU) and
FWCFG should stay the same for compat reasons with
current setups and legacy SeaBIOS.
Igor Mammedov (10):
cpu: rename cpu_exists() to qemu_get_cpu_by_arch_id()
machine: introduce MachineClass.possible_cpu_arch_ids() hook
pc: init pcms->apic_id_limit once and use it throughout pc.c
pc: acpi: cleanup qdev_get_machine() calls
pc: acpi: SRAT: create only valid processor lapic entries
pc: acpi: create Processor and Notify objects only for valid lapics
pc: acpi: create MADT.lapic entries only for valid lapics
pc: acpi: move cpu->found_cpus bitmap to build_processor_devices()
pc: acpi: clarify why possible LAPIC entries must be present in MADT
pc: acpi: remove NOP assignment
hw/i386/acpi-build.c | 144 +++++++++++++++++++++++++++------------------------
hw/i386/pc.c | 63 ++++++++++++----------
include/hw/boards.h | 18 +++++++
include/qom/cpu.h | 10 ++--
qom/cpu.c | 6 +--
target-i386/cpu.c | 2 +-
6 files changed, 139 insertions(+), 104 deletions(-)
--
1.8.3.1
- [Qemu-devel] [PATCH v2 00/10] pc: do not create invalid MADT.LAPIC/Processor entries,
Igor Mammedov <=
- [Qemu-devel] [PATCH v2 02/10] machine: introduce MachineClass.possible_cpu_arch_ids() hook, Igor Mammedov, 2016/02/05
- [Qemu-devel] [PATCH v2 01/10] cpu: rename cpu_exists() to qemu_get_cpu_by_arch_id(), Igor Mammedov, 2016/02/05
- [Qemu-devel] [PATCH v2 03/10] pc: init pcms->apic_id_limit once and use it throughout pc.c, Igor Mammedov, 2016/02/05
- [Qemu-devel] [PATCH v2 04/10] pc: acpi: cleanup qdev_get_machine() calls, Igor Mammedov, 2016/02/05
- [Qemu-devel] [PATCH v2 05/10] pc: acpi: SRAT: create only valid processor lapic entries, Igor Mammedov, 2016/02/05
- [Qemu-devel] [PATCH v2 06/10] pc: acpi: create Processor and Notify objects only for valid lapics, Igor Mammedov, 2016/02/05
- [Qemu-devel] [PATCH v2 07/10] pc: acpi: create MADT.lapic entries only for valid lapics, Igor Mammedov, 2016/02/05
- [Qemu-devel] [PATCH v2 10/10] pc: acpi: remove NOP assignment, Igor Mammedov, 2016/02/05