[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 13/14] pc: add 'etc/boot-cpus' fw_cfg file for ma
From: |
Igor Mammedov |
Subject: |
[Qemu-devel] [PATCH v2 13/14] pc: add 'etc/boot-cpus' fw_cfg file for machine with more than 255 CPUs |
Date: |
Thu, 22 Sep 2016 14:50:54 +0200 |
Currently firmware uses 1 byte at 0x5F offset in RTC CMOS
to get number of CPUs present at boot. However 1 byte is
not enough to handle more than 255 CPUs. So add a new
fw_cfg file that would allow QEMU to tell it.
For compat reasons add file only for machine types that
support more than 255 CPUs.
Signed-off-by: Igor Mammedov <address@hidden>
---
hw/i386/pc.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index f807932..f90db33 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1237,9 +1237,11 @@ void pc_machine_done(Notifier *notifier, void *data)
PCMachineState *pcms = container_of(notifier,
PCMachineState, machine_done);
PCIBus *bus = pcms->bus;
+ static uint16_t boot_cpus;
/* set the number of CPUs */
- rtc_set_memory(pcms->rtc, 0x5f, pc_present_cpus_count(pcms) - 1);
+ boot_cpus = pc_present_cpus_count(pcms);
+ rtc_set_memory(pcms->rtc, 0x5f, boot_cpus - 1);
if (bus) {
int extra_hosts = 0;
@@ -1260,8 +1262,16 @@ void pc_machine_done(Notifier *notifier, void *data)
acpi_setup();
if (pcms->fw_cfg) {
+ MachineClass *mc = MACHINE_GET_CLASS(pcms);
+
pc_build_smbios(pcms->fw_cfg);
pc_build_feature_control_file(pcms);
+
+ if (mc->max_cpus > 255) {
+ boot_cpus = cpu_to_le16(boot_cpus);
+ fw_cfg_add_file(pcms->fw_cfg, "etc/boot-cpus", &boot_cpus,
+ sizeof(boot_cpus));
+ }
}
}
--
2.7.4
- [Qemu-devel] [PATCH v2 05/14] acpi: cphp: force switch to modern cpu hotplug if APIC ID > 254, (continued)
- [Qemu-devel] [PATCH v2 05/14] acpi: cphp: force switch to modern cpu hotplug if APIC ID > 254, Igor Mammedov, 2016/09/22
- [Qemu-devel] [PATCH v2 06/14] pc: leave max apic_id_limit only in legacy cpu hotplug code, Igor Mammedov, 2016/09/22
- [Qemu-devel] [PATCH v2 08/14] pc: apic_common: restore APIC ID to initial ID on reset, Igor Mammedov, 2016/09/22
- [Qemu-devel] [PATCH v2 07/14] pc: apic_common: extend APIC ID property to 32bit, Igor Mammedov, 2016/09/22
- [Qemu-devel] [PATCH v2 09/14] pc: apic_common: reset APIC ID to initial ID when switching into x2APIC mode, Igor Mammedov, 2016/09/22
- [Qemu-devel] [PATCH v2 10/14] pc: kvm_apic: pass APIC ID depending on xAPIC/x2APIC mode, Igor Mammedov, 2016/09/22
- [Qemu-devel] [PATCH v2 12/14] increase MAX_CPUMASK_BITS from 255 to 288, Igor Mammedov, 2016/09/22
- [Qemu-devel] [PATCH v2 11/14] pc: clarify FW_CFG_MAX_CPUS usage comment, Igor Mammedov, 2016/09/22
- [Qemu-devel] [PATCH v2 13/14] pc: add 'etc/boot-cpus' fw_cfg file for machine with more than 255 CPUs,
Igor Mammedov <=
- [Qemu-devel] [PATCH v2 14/14] pc: q35: bump max_cpus to 288, Igor Mammedov, 2016/09/22
- Re: [Qemu-devel] [PATCH v2 00/14] pc: q35: x2APIC support in kvm_apic mode, no-reply, 2016/09/22