Message ID | 20190205173306.20483-14-eric.auger@redhat.com |
---|---|
State | Superseded |
Headers | show |
Series | None | expand |
On Tue, 5 Feb 2019 18:33:01 +0100 Eric Auger <eric.auger@redhat.com> wrote: > From: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> > > Generate Memory Affinity Structures for PC-DIMM ranges. > > Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> > Signed-off-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> > > --- > v5 -> v6: > - fix mingw compil issue > > v4 -> v5: > - Align to x86 code and especially > "pc: acpi: revert back to 1 SRAT entry for hotpluggable area" > > v3 -> v4: > - do not use vms->bootinfo.device_memory_start/device_memory_size anymore > > v1 -> v2: > - build_srat_hotpluggable_memory movedc to aml-build > --- > hw/arm/virt-acpi-build.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 829d2f0035..781eafaf5e 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -516,6 +516,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; > @@ -541,6 +542,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-acpi-build.c b/hw/arm/virt-acpi-build.c index 829d2f0035..781eafaf5e 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -516,6 +516,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; @@ -541,6 +542,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); }