diff mbox series

[v6,13/18] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT

Message ID 20190205173306.20483-14-eric.auger@redhat.com
State Superseded
Headers show
Series None | expand

Commit Message

Eric Auger Feb. 5, 2019, 5:33 p.m. UTC
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>


---
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(+)

-- 
2.20.1

Comments

Igor Mammedov Feb. 18, 2019, 8:14 a.m. UTC | #1
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 mbox series

Patch

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);
 }