From: Marcel Apfelbaum <marcel@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH 3/4] acpi: provide _PXM method for CPU devices if QEMU is started numa enabled
Date: Thu, 30 Jun 2016 16:11:44 +0300 [thread overview]
Message-ID: <57751A90.9050902@redhat.com> (raw)
In-Reply-To: <20160630150102.02954c68@nial.brq.redhat.com>
On 06/30/2016 04:01 PM, Igor Mammedov wrote:
> On Thu, 30 Jun 2016 15:48:54 +0300
> Marcel Apfelbaum <marcel@redhat.com> wrote:
>
>> On 06/30/2016 03:23 PM, Igor Mammedov wrote:
>>> fixes long standing issue where Linux kernel would assing
>>> hotplugged CPU to 1st numa node as it discards proximity
>>> for hotplugged CPUs after SRAT is parsed.
>>>
>>> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
>>> ---
>>> hw/acpi/cpu.c | 9 +++++++++
>>> 1 file changed, 9 insertions(+)
>>>
>>> diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
>>> index c13b65c..d9cf3ee 100644
>>> --- a/hw/acpi/cpu.c
>>> +++ b/hw/acpi/cpu.c
>>> @@ -4,6 +4,7 @@
>>> #include "qapi/error.h"
>>> #include "qapi-event.h"
>>> #include "trace.h"
>>> +#include "sysemu/numa.h"
>>>
>>> #define ACPI_CPU_HOTPLUG_REG_LEN 12
>>> #define ACPI_CPU_SELECTOR_OFFSET_WR 0
>>> @@ -503,6 +504,7 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
>>>
>>> /* build Processor object for each processor */
>>> for (i = 0; i < arch_ids->len; i++) {
>>> + int j;
>>> Aml *dev;
>>> Aml *uid = aml_int(i);
>>> GArray *madt_buf = g_array_new(0, 1, 1);
>>> @@ -546,6 +548,13 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
>>> aml_arg(1), aml_arg(2))
>>> );
>>> aml_append(dev, method);
>>> +
>>> + for (j = 0; j < nb_numa_nodes; j++) {
>>> + if (test_bit(i, numa_info[j].node_cpu)) {
>>> + aml_append(dev, aml_name_decl("_PXM", aml_int(j)));
>>> + }
>>> + }
>>> +
>>> aml_append(cpus_dev, dev);
>>> }
>>> }
>>>
>>
>> I would add, at least in the commit message, a pointer to the ACPI spec:
>>
>> ACPI 5.0 (6.2.13)
>> -----------------
>> If the Local APIC ID / Local SAPIC ID / Local x2APIC ID of a dynamically added processor is not
>> present in the System Resource Affinity Table (SRAT), a _PXM object must exist for the
>> processor’s device or one of its ancestors in the ACPI Namespace.
>>
>>
>> I suppose we don't have the APIC id in SRAT for all possible CPUs, so it OK.
> we have entries for possible CPUs in SRAT and commit says that Linux discards it,
> hence we need to add _PXM to CPU objects. So broken linux handling would put
> hotplugged CPUs into corrected nodes.
>
OK, so the commit message was misleading: "Fixes" :)
Just flip "Fix" with "Workaround for... "
> To fix it on linux side, ACPI part probably would need to be refactored to store
> parsed tables info somewhere else, so it would be available past boot time
> (not a small undertaking) I'd say.
Maybe we should at least report it to the right mailing list.
> While fixing it on QEMU side is easy and works well even for currently released
> kernels.
>
I have nothing against this approach.
Thanks,
Marcel
>
>>
>>
>> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
> Thanks!
>
>>
>> Thanks,
>> Marcel
>
next prev parent reply other threads:[~2016-06-30 13:11 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-30 12:23 [Qemu-devel] [PATCH 0/4] fix numa node mapping for hotplugged CPUs Igor Mammedov
2016-06-30 12:23 ` [Qemu-devel] [PATCH 1/4] tests: acpi: add CPU hotplug testcase Igor Mammedov
2016-06-30 12:42 ` Marcel Apfelbaum
2016-06-30 12:23 ` [Qemu-devel] [PATCH 2/4] tests: DO NOT APPLY: add APIC.cphp and DSDT.cphp blobs Igor Mammedov
2016-06-30 12:23 ` [Qemu-devel] [PATCH 3/4] acpi: provide _PXM method for CPU devices if QEMU is started numa enabled Igor Mammedov
2016-06-30 12:48 ` Marcel Apfelbaum
2016-06-30 13:01 ` Igor Mammedov
2016-06-30 13:11 ` Marcel Apfelbaum [this message]
2016-06-30 17:48 ` Michael S. Tsirkin
2016-06-30 13:29 ` [Qemu-devel] [PATCH v2 " Igor Mammedov
2016-06-30 17:47 ` [Qemu-devel] [PATCH " Michael S. Tsirkin
2016-07-01 8:12 ` Igor Mammedov
2016-06-30 12:23 ` [Qemu-devel] [PATCH 4/4] tests: acpi: extend cphp testcase with numa check Igor Mammedov
2016-06-30 12:52 ` Marcel Apfelbaum
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=57751A90.9050902@redhat.com \
--to=marcel@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.