Message ID | 20190308114218.26692-8-shameerali.kolothum.thodi@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM virt: ACPI memory hotplug support | expand |
On Fri, 8 Mar 2019 11:42:14 +0000 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> wrote: > 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> > --- > 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 87d66da..6cb7263 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -524,6 +524,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; > @@ -549,6 +550,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); > + } > + do we care about 'Windows' guests? if yes then we should drop this patch, see commit for reasoning dbb6da8ba7e > build_header(linker, table_data, (void *)(table_data->data + srat_start), > "SRAT", table_data->len - srat_start, 3, NULL, NULL); > }
> -----Original Message----- > From: Igor Mammedov [mailto:imammedo@redhat.com] > Sent: 11 March 2019 14:55 > To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com> > Cc: qemu-devel@nongnu.org; qemu-arm@nongnu.org; > eric.auger@redhat.com; peter.maydell@linaro.org; > shannon.zhaosl@gmail.com; sameo@linux.intel.com; > sebastien.boeuf@intel.com; Linuxarm <linuxarm@huawei.com>; xuwei (O) > <xuwei5@huawei.com> > Subject: Re: [PATCH v2 07/11] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT > > On Fri, 8 Mar 2019 11:42:14 +0000 > Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> wrote: > > > 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> > > --- > > 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 87d66da..6cb7263 100644 > > --- a/hw/arm/virt-acpi-build.c > > +++ b/hw/arm/virt-acpi-build.c > > @@ -524,6 +524,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; > > @@ -549,6 +550,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); > > + } > > + > > do we care about 'Windows' guests? > if yes then we should drop this patch, > see commit for reasoning dbb6da8ba7e If I understood that commit, that is reverting to use a single entry for whole hotplug area instead of splitting into multiple entries. ie, remove build_srat_hotpluggable_memory() and use build_srat_memory() instead, which is what this patch does. May be I am missing something here. Please let me know. Thanks, Shameer > > build_header(linker, table_data, (void *)(table_data->data + > srat_start), > > "SRAT", table_data->len - srat_start, 3, NULL, NULL); > > }
On Tue, 12 Mar 2019 09:57:58 +0000 Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com> wrote: > > -----Original Message----- > > From: Igor Mammedov [mailto:imammedo@redhat.com] > > Sent: 11 March 2019 14:55 > > To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com> > > Cc: qemu-devel@nongnu.org; qemu-arm@nongnu.org; > > eric.auger@redhat.com; peter.maydell@linaro.org; > > shannon.zhaosl@gmail.com; sameo@linux.intel.com; > > sebastien.boeuf@intel.com; Linuxarm <linuxarm@huawei.com>; xuwei (O) > > <xuwei5@huawei.com> > > Subject: Re: [PATCH v2 07/11] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT > > > > On Fri, 8 Mar 2019 11:42:14 +0000 > > Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> wrote: > > > > > 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> > > > --- > > > 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 87d66da..6cb7263 100644 > > > --- a/hw/arm/virt-acpi-build.c > > > +++ b/hw/arm/virt-acpi-build.c > > > @@ -524,6 +524,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; > > > @@ -549,6 +550,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); > > > + } > > > + > > > > do we care about 'Windows' guests? > > if yes then we should drop this patch, > > see commit for reasoning dbb6da8ba7e > > If I understood that commit, that is reverting to use a single entry for whole > hotplug area instead of splitting into multiple entries. ie, remove > build_srat_hotpluggable_memory() and use build_srat_memory() instead, > which is what this patch does. > > May be I am missing something here. Please let me know. Apologies it's my mistake :/, you are totally right. This patch looks fine me. > > Thanks, > Shameer > > > > 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 87d66da..6cb7263 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -524,6 +524,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; @@ -549,6 +550,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); }