On Fri, 26 Jul 2019 11:45:17 +0100 Shameer Kolothum <shameerali.kolothum.th...@huawei.com> wrote:
> Generate Memory Affinity Structures for PC-DIMM ranges. > > Signed-off-by: Shameer Kolothum <shameerali.kolothum.th...@huawei.com> > Signed-off-by: Eric Auger <eric.au...@redhat.com> > Reviewed-by: Igor Mammedov <imamm...@redhat.com> > --- > 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 018b1e326d..75657caa36 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); > } missing entry in tests/bios-tables-test-allowed-diff.h PS: I don't really know what ARM guest kernel expects but on x86 we had to enable numa for guest to figure out max_possible_pfn (see: in linux.git: 8dd330300197 / ec941c5ffede). It's worth to check if we might need a patch for turning on NUMA (how to do it in QEMU see: auto_enable_numa_with_memhp)