Hi, On 4/2/20 7:22 AM, John Garry wrote:
If the the Processor ID valid is not set for a Physical Processor Package node, then the node table offset is used as a substitute. As such, we may get info like this from sysfs: root@(none)$ pwd /sys/devices/system/cpu/cpu0/topology root@(none)$ more physical_package_id 56 Inform the user of this in the bootlog, as it is much less than ideal, and they can remedy this in their FW. This topic was originally discussed in: https://lore.kernel.org/linux-acpi/c325cfe2-7dbf-e341-7f0f-081b6545e890@xxxxxxxxxx/T/#m0ec18637d8586f832084a8a6af22580e6174669a Signed-off-by: John Garry <john.garry@xxxxxxxxxx> diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c index 4ae93350b70d..b4ed3c818e00 100644 --- a/drivers/acpi/pptt.c +++ b/drivers/acpi/pptt.c @@ -515,6 +515,8 @@ static int topology_get_acpi_cpu_tag(struct acpi_table_header *table, if (level == 0 || cpu_node->flags & ACPI_PPTT_ACPI_PROCESSOR_ID_VALID) return cpu_node->acpi_processor_id; + if (level == PPTT_ABORT_PACKAGE) + pr_notice_once("Physical package node Processor ID valid not set, will use table offset as substitute\n");
What happens in the find_acpi_cpu_topology_hetro_id() case, if the last IDENTICAL node isn't a socket/etc. Are we expecting to warn of a missing processor container there as well?
return ACPI_PTR_DIFF(cpu_node, table); } pr_warn_once("PPTT table found, but unable to locate core %d (%d)\n",