[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH-for-4.2 v9 07/12] hw/arm/virt-acpi-build: Add PC-DIMM
From: |
Shameer Kolothum |
Subject: |
[Qemu-arm] [PATCH-for-4.2 v9 07/12] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT |
Date: |
Tue, 13 Aug 2019 22:05:34 +0100 |
Generate Memory Affinity Structures for PC-DIMM ranges.
Also, Linux and Windows need ACPI SRAT table to make memory hotplug
work properly, however currently QEMU doesn't create SRAT table if
numa options aren't present on CLI. Hence add support(>=4.2) to
create numa node automatically (auto_enable_numa_with_memhp) when
QEMU is started with memory hotplug enabled but without '-numa'
options on CLI.
Signed-off-by: Shameer Kolothum <address@hidden>
Signed-off-by: Eric Auger <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
---
v8 --> v9
- Added auto_enable_numa_with_memhp support.
---
hw/arm/virt-acpi-build.c | 9 +++++++++
hw/arm/virt.c | 2 ++
2 files changed, 11 insertions(+)
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index 63fa845076..6d697af2df 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -518,6 +518,7 @@ build_srat(GArray *table_data, BIOSLinker *linker,
VirtMachineState *vms)
int i, srat_start;
uint64_t mem_base;
MachineClass *mc = MACHINE_GET_CLASS(vms);
+ MachineState *ms = MACHINE(vms);
const CPUArchIdList *cpu_list = mc->possible_cpu_arch_ids(MACHINE(vms));
srat_start = table_data->len;
@@ -543,6 +544,14 @@ build_srat(GArray *table_data, BIOSLinker *linker,
VirtMachineState *vms)
}
}
+ if (ms->device_memory) {
+ numamem = acpi_data_push(table_data, sizeof *numamem);
+ build_srat_memory(numamem, ms->device_memory->base,
+ memory_region_size(&ms->device_memory->mr),
+ nb_numa_nodes - 1,
+ MEM_AFFINITY_HOTPLUGGABLE | MEM_AFFINITY_ENABLED);
+ }
+
build_header(linker, table_data, (void *)(table_data->data + srat_start),
"SRAT", table_data->len - srat_start, 3, NULL, NULL);
}
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 0949a227a9..56d64fc0a9 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2049,6 +2049,7 @@ static void virt_machine_class_init(ObjectClass *oc, void
*data)
hc->plug = virt_machine_device_plug_cb;
hc->unplug_request = virt_machine_device_unplug_request_cb;
mc->numa_mem_supported = true;
+ mc->auto_enable_numa_with_memhp = true;
}
static void virt_instance_init(Object *obj)
@@ -2154,6 +2155,7 @@ static void virt_machine_4_1_options(MachineClass *mc)
virt_machine_4_2_options(mc);
compat_props_add(mc->compat_props, hw_compat_4_1, hw_compat_4_1_len);
vmc->no_ged = true;
+ mc->auto_enable_numa_with_memhp = false;
}
DEFINE_VIRT_MACHINE(4, 1)
--
2.17.1
- [Qemu-arm] [PATCH-for-4.2 v9 00/12] ARM virt: ACPI memory hotplug support, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 02/12] hw/acpi: Do not create memory hotplug method when handler is not defined, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 01/12] hw/acpi: Make ACPI IO address space configurable, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 03/12] hw/acpi: Add ACPI Generic Event Device Support, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 04/12] hw/arm/virt: Add memory hotplug framework, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 05/12] hw/arm/virt: Add 4.2 machine type, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 06/12] hw/arm/virt: Enable device memory cold/hot plug with ACPI boot, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 07/12] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT,
Shameer Kolothum <=
- [Qemu-arm] [PATCH-for-4.2 v9 08/12] hw/arm: Factor out powerdown notifier from GPIO, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 10/12] docs/specs: Add ACPI GED documentation, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 09/12] hw/arm: Use GED for system_powerdown event, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 11/12] tests: add dummy ACPI tables for arm/virt board, Shameer Kolothum, 2019/08/13
- [Qemu-arm] [PATCH-for-4.2 v9 12/12] tests: Add bios tests to arm/virt, Shameer Kolothum, 2019/08/13
- Re: [Qemu-arm] [Qemu-devel] [PATCH-for-4.2 v9 00/12] ARM virt: ACPI memory hotplug support, no-reply, 2019/08/14