Re: [PATCH v6 6/7] hw/arm/virt-acpi-build: Support cluster level in PPTT generation
On 2022/1/3 19:32, Andrew Jones wrote: On Mon, Jan 03, 2022 at 04:46:35PM +0800, Yanan Wang wrote: Support cluster level in generation of ACPI Processor Properties Topology Table (PPTT) for ARM virt machines. Signed-off-by: Yanan Wang --- hw/arm/virt-acpi-build.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 3ce7680393..5f91969688 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -840,6 +840,21 @@ build_pptt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) 0, socket, NULL, 0); } +length = g_queue_get_length(list); +for (i = 0; i < length; i++) { +int cluster; + +father_offset = GPOINTER_TO_UINT(g_queue_pop_head(list)); +for (cluster = 0; cluster < ms->smp.clusters; cluster++) { +g_queue_push_tail(list, +GUINT_TO_POINTER(table_data->len - pptt_start)); +build_processor_hierarchy_node( +table_data, +(0 << 0), /* not a physical package */ +father_offset, cluster, NULL, 0); +} +} + length = g_queue_get_length(list); for (i = 0; i < length; i++) { int core; -- 2.27.0 Looks good except please do s/father_offset/parent_offset/ as I mentioned in an earlier patch. Will do. Reviewed-by: Andrew Jones Thanks, Yanan
Re: [PATCH v6 6/7] hw/arm/virt-acpi-build: Support cluster level in PPTT generation
On Mon, Jan 03, 2022 at 04:46:35PM +0800, Yanan Wang wrote: > Support cluster level in generation of ACPI Processor Properties > Topology Table (PPTT) for ARM virt machines. > > Signed-off-by: Yanan Wang > --- > hw/arm/virt-acpi-build.c | 15 +++ > 1 file changed, 15 insertions(+) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 3ce7680393..5f91969688 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -840,6 +840,21 @@ build_pptt(GArray *table_data, BIOSLinker *linker, > VirtMachineState *vms) > 0, socket, NULL, 0); > } > > +length = g_queue_get_length(list); > +for (i = 0; i < length; i++) { > +int cluster; > + > +father_offset = GPOINTER_TO_UINT(g_queue_pop_head(list)); > +for (cluster = 0; cluster < ms->smp.clusters; cluster++) { > +g_queue_push_tail(list, > +GUINT_TO_POINTER(table_data->len - pptt_start)); > +build_processor_hierarchy_node( > +table_data, > +(0 << 0), /* not a physical package */ > +father_offset, cluster, NULL, 0); > +} > +} > + > length = g_queue_get_length(list); > for (i = 0; i < length; i++) { > int core; > -- > 2.27.0 > Looks good except please do s/father_offset/parent_offset/ as I mentioned in an earlier patch. Reviewed-by: Andrew Jones
[PATCH v6 6/7] hw/arm/virt-acpi-build: Support cluster level in PPTT generation
Support cluster level in generation of ACPI Processor Properties Topology Table (PPTT) for ARM virt machines. Signed-off-by: Yanan Wang --- hw/arm/virt-acpi-build.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 3ce7680393..5f91969688 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -840,6 +840,21 @@ build_pptt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) 0, socket, NULL, 0); } +length = g_queue_get_length(list); +for (i = 0; i < length; i++) { +int cluster; + +father_offset = GPOINTER_TO_UINT(g_queue_pop_head(list)); +for (cluster = 0; cluster < ms->smp.clusters; cluster++) { +g_queue_push_tail(list, +GUINT_TO_POINTER(table_data->len - pptt_start)); +build_processor_hierarchy_node( +table_data, +(0 << 0), /* not a physical package */ +father_offset, cluster, NULL, 0); +} +} + length = g_queue_get_length(list); for (i = 0; i < length; i++) { int core; -- 2.27.0