[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/19] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
From: |
Michael S. Tsirkin |
Subject: |
[PULL 07/19] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT |
Date: |
Sat, 5 Oct 2019 17:59:11 -0400 |
From: Shameer Kolothum <address@hidden>
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>
Message-Id: <address@hidden>
Acked-by: Peter Maydell <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <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)
--
MST
- [PULL 00/19] virtio, vhost, acpi: features, fixes, tests, Michael S. Tsirkin, 2019/10/05
- [PULL 01/19] vhost-user: save features if the char dev is closed, Michael S. Tsirkin, 2019/10/05
- [PULL 02/19] hw/acpi: Make ACPI IO address space configurable, Michael S. Tsirkin, 2019/10/05
- [PULL 03/19] hw/acpi: Do not create memory hotplug method when handler is not defined, Michael S. Tsirkin, 2019/10/05
- [PULL 04/19] hw/acpi: Add ACPI Generic Event Device Support, Michael S. Tsirkin, 2019/10/05
- [PULL 05/19] hw/arm/virt: Add memory hotplug framework, Michael S. Tsirkin, 2019/10/05
- [PULL 06/19] hw/arm/virt: Enable device memory cold/hot plug with ACPI boot, Michael S. Tsirkin, 2019/10/05
- [PULL 07/19] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT,
Michael S. Tsirkin <=
- [PULL 08/19] hw/arm: Factor out powerdown notifier from GPIO, Michael S. Tsirkin, 2019/10/05
- [PULL 09/19] hw/arm: Use GED for system_powerdown event, Michael S. Tsirkin, 2019/10/05
- [PULL 10/19] docs/specs: Add ACPI GED documentation, Michael S. Tsirkin, 2019/10/05
- [PULL 11/19] tests: Update ACPI tables list for upcoming arm/virt tests, Michael S. Tsirkin, 2019/10/05
- [PULL 12/19] tests/acpi: add empty files, Michael S. Tsirkin, 2019/10/05
- [PULL 13/19] tests: allow empty expected files, Michael S. Tsirkin, 2019/10/05
- [PULL 14/19] tests: Add bios tests to arm/virt, Michael S. Tsirkin, 2019/10/05
- [PULL 15/19] tests: document how to update acpi tables, Michael S. Tsirkin, 2019/10/05
- [PULL 16/19] tests/acpi: add expected tables for arm/virt, Michael S. Tsirkin, 2019/10/05
- [PULL 17/19] virtio: Add virtio_fs linux headers, Michael S. Tsirkin, 2019/10/05