[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH-for-4.2 v11 06/11] hw/arm/virt-acpi-build: Add PC-DIMM
From: |
Shameer Kolothum |
Subject: |
[Qemu-arm] [PATCH-for-4.2 v11 06/11] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT |
Date: |
Wed, 18 Sep 2019 14:06:28 +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>
---
hw/arm/virt-acpi-build.c | 8 ++++++++
hw/arm/virt.c | 2 ++
2 files changed, 10 insertions(+)
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index cadeea0f41..c97661ad68 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -546,6 +546,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),
+ ms->numa_state->num_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 f926477ba5..d221841c42 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2051,6 +2051,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)
@@ -2156,6 +2157,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 v11 00/11] ARM virt: ACPI memory hotplug support, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 02/11] hw/acpi: Do not create memory hotplug method when handler is not defined, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 01/11] hw/acpi: Make ACPI IO address space configurable, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 03/11] hw/acpi: Add ACPI Generic Event Device Support, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 04/11] hw/arm/virt: Add memory hotplug framework, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 05/11] hw/arm/virt: Enable device memory cold/hot plug with ACPI boot, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 06/11] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT,
Shameer Kolothum <=
- [Qemu-arm] [PATCH-for-4.2 v11 07/11] hw/arm: Factor out powerdown notifier from GPIO, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 08/11] hw/arm: Use GED for system_powerdown event, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 09/11] docs/specs: Add ACPI GED documentation, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 11/11] tests: Add bios tests to arm/virt, Shameer Kolothum, 2019/09/18
- [Qemu-arm] [PATCH-for-4.2 v11 10/11] tests: Update ACPI tables list for upcoming arm/virt tests, Shameer Kolothum, 2019/09/18
- Re: [Qemu-arm] [Qemu-devel] [PATCH-for-4.2 v11 00/11] ARM virt: ACPI memory hotplug support, no-reply, 2019/09/19