qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Ying Fang <fangying1@huawei.com>
To: Andrew Jones <drjones@redhat.com>
Cc: peter.maydell@linaro.org, zhang.zhanghailiang@huawei.com,
	qemu-devel@nongnu.org, alex.chen@huawei.com,
	shannon.zhaosl@gmail.com, qemu-arm@nongnu.org,
	alistair.francis@wdc.com, imammedo@redhat.com
Subject: Re: [RFC PATCH v2 07/13] hw/arm/virt-acpi-build: distinguish possible and present cpus Message
Date: Mon, 2 Nov 2020 11:13:24 +0800	[thread overview]
Message-ID: <da7abc9a-873f-b968-e366-3bdcedbf81ef@huawei.com> (raw)
In-Reply-To: <20201029172016.rsgo4stjrkdr7j2r@kamzik.brq.redhat.com>



On 10/30/2020 1:20 AM, Andrew Jones wrote:
> 
> You need to remove 'Message' from the summary.
> 
> On Tue, Oct 20, 2020 at 09:14:34PM +0800, Ying Fang wrote:
>> When building ACPI tables regarding CPUs we should always build
>> them for the number of possible CPUs, not the number of present
>> CPUs. We then ensure only the present CPUs are enabled.
>>
>> Signed-off-by: Andrew Jones <drjones@redhat.com>
> 
> I guess my s-o-b is here because this is a rework of
> 
> https://github.com/rhdrjones/qemu/commit/b18d7a889f424b8a8679c43d7f4804fdeeeaf3fd

The s-o-b is given since this one is based on your branch.

> 
> I think it changed enough you could just drop my authorship. A
> based-on comment in the commit message would be more than enough.

Thanks. Will fix it. Hope it won't make you confused.

> 
> Comment on the patch below.
> 
>> Signed-off-by: Ying Fang <fangying1@huawei.com>
>> ---
>>   hw/arm/virt-acpi-build.c | 17 ++++++++++++-----
>>   1 file changed, 12 insertions(+), 5 deletions(-)
>>
>> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
>> index a222981737..fae5a26741 100644
>> --- a/hw/arm/virt-acpi-build.c
>> +++ b/hw/arm/virt-acpi-build.c
>> @@ -57,14 +57,18 @@
>>   
>>   #define ARM_SPI_BASE 32
>>   
>> -static void acpi_dsdt_add_cpus(Aml *scope, int cpus)
>> +static void acpi_dsdt_add_cpus(Aml *scope, VirtMachineState *vms)
>>   {
>>       uint16_t i;
>> +    CPUArchIdList *possible_cpus = MACHINE(vms)->possible_cpus;
>>   
>> -    for (i = 0; i < cpus; i++) {
>> +    for (i = 0; i < possible_cpus->len; i++) {
>>           Aml *dev = aml_device("C%.03X", i);
>>           aml_append(dev, aml_name_decl("_HID", aml_string("ACPI0007")));
>>           aml_append(dev, aml_name_decl("_UID", aml_int(i)));
>> +        if (possible_cpus->cpus[i].cpu == NULL) {
>> +            aml_append(dev, aml_name_decl("_STA", aml_int(0)));
>> +        }
>>           aml_append(scope, dev);
>>       }
>>   }
>> @@ -470,6 +474,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
>>       const int *irqmap = vms->irqmap;
>>       AcpiMadtGenericDistributor *gicd;
>>       AcpiMadtGenericMsiFrame *gic_msi;
>> +    int possible_cpus = MACHINE(vms)->possible_cpus->len;
>>       int i;
>>   
>>       acpi_data_push(table_data, sizeof(AcpiMultipleApicTable));
>> @@ -480,7 +485,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
>>       gicd->base_address = cpu_to_le64(memmap[VIRT_GIC_DIST].base);
>>       gicd->version = vms->gic_version;
>>   
>> -    for (i = 0; i < MACHINE(vms)->smp.cpus; i++) {
>> +    for (i = 0; i < possible_cpus; i++) {
>>           AcpiMadtGenericCpuInterface *gicc = acpi_data_push(table_data,
>>                                                              sizeof(*gicc));
>>           ARMCPU *armcpu = ARM_CPU(qemu_get_cpu(i));
>> @@ -495,7 +500,9 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
>>           gicc->cpu_interface_number = cpu_to_le32(i);
>>           gicc->arm_mpidr = cpu_to_le64(armcpu->mp_affinity);
>>           gicc->uid = cpu_to_le32(i);
>> -        gicc->flags = cpu_to_le32(ACPI_MADT_GICC_ENABLED);
>> +        if (i < MACHINE(vms)->smp.cpus) {
> 
> Shouldn't this be

Yes, Stupid mistake. Maybe it was lost when I am doing the rebase.
Will fix that. Thanks for your patience in the reply and review.

Ying Fang.
> 
>          if (possible_cpus->cpus[i].cpu != NULL) {
> 
>> +            gicc->flags = cpu_to_le32(ACPI_MADT_GICC_ENABLED);
>> +        }
>>   
>>           if (arm_feature(&armcpu->env, ARM_FEATURE_PMU)) {
>>               gicc->performance_interrupt = cpu_to_le32(PPI(VIRTUAL_PMU_IRQ));
>> @@ -599,7 +606,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
>>        * the RTC ACPI device at all when using UEFI.
>>        */
>>       scope = aml_scope("\\_SB");
>> -    acpi_dsdt_add_cpus(scope, ms->smp.cpus);
>> +    acpi_dsdt_add_cpus(scope, vms);
>>       acpi_dsdt_add_uart(scope, &memmap[VIRT_UART],
>>                          (irqmap[VIRT_UART] + ARM_SPI_BASE));
>>       if (vmc->acpi_expose_flash) {
>> -- 
>> 2.23.0
>>
>>
> 
> Thanks,
> drew
> 
> .
> 


  reply	other threads:[~2020-11-02  3:14 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-20 13:14 [RFC PATCH v2 00/13] hw/arm/virt: Introduce cpu and cache topology support Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 01/13] hw/arm/virt: Spell out smp.cpus and smp.max_cpus Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 02/13] hw/arm/virt: Remove unused variable Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 03/13] hw/arm/virt: Replace smp_parse with one that prefers cores Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 04/13] device_tree: Add qemu_fdt_add_path Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 05/13] hw: add compat machines for 5.3 Ying Fang
2020-10-29 17:08   ` Andrew Jones
2020-11-03  1:47     ` Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 06/13] hw/arm/virt: DT: add cpu-map Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 07/13] hw/arm/virt-acpi-build: distinguish possible and present cpus Message Ying Fang
2020-10-29 17:20   ` Andrew Jones
2020-11-02  3:13     ` Ying Fang [this message]
2020-11-03  2:46     ` Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 08/13] hw/acpi/aml-build: add processor hierarchy node structure Ying Fang
2020-10-29 16:52   ` Andrew Jones
2020-10-29 17:24   ` Andrew Jones
2020-11-03  2:16     ` Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 09/13] hw/arm/virt-acpi-build: add PPTT table Ying Fang
2020-10-29 16:56   ` Andrew Jones
2020-11-03  2:34     ` Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 10/13] target/arm/cpu: Add CPU cache description for arm Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 11/13] hw/arm/virt: add fdt cache information Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 12/13] hw/acpi/aml-build: build ACPI CPU cache hierarchy information Ying Fang
2020-10-20 13:14 ` [RFC PATCH v2 13/13] hw/arm/virt-acpi-build: Enable CPU cache topology Ying Fang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=da7abc9a-873f-b968-e366-3bdcedbf81ef@huawei.com \
    --to=fangying1@huawei.com \
    --cc=alex.chen@huawei.com \
    --cc=alistair.francis@wdc.com \
    --cc=drjones@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=shannon.zhaosl@gmail.com \
    --cc=zhang.zhanghailiang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).