mbox series

[RFC,0/3] ACPI, arm64: Backport for ACPI PPTT 6.3 thread flag for stable 4.19.x

Message ID 1570714192-236724-1-git-send-email-john.garry@huawei.com (mailing list archive)
Headers show
Series ACPI, arm64: Backport for ACPI PPTT 6.3 thread flag for stable 4.19.x | expand

Message

John Garry Oct. 10, 2019, 1:29 p.m. UTC
This series is a backport of the ACPI PPTT 6.3 thread flag feature for
supporting arm64 systems.

The background is that some arm64 implementations are broken, in that they
incorrectly advertise that a CPU is mutli-threaded, when it is not - the
HiSilicon Taishanv110 rev 2, aka tsv110, being an example.

This leads to the system topology being incorrect. The reason being that
arm64 topology code uses a combination of ACPI PPTT (Processor Properties
Topology Table) and the system MPIDR (Multiprocessor Affinity Register) MT
bit to determine the topology.

Until ACPI 6.3, the PPTT did not have any method to determine whether
a CPU was multi-threaded, so only the MT bit is used - hence the
broken topology for some systems.

In ACPI 6.3, a PPTT thread flag was introduced, which - when supported -
would be used by the kernel to determine really if a CPU is multi-threaded
or not, so that we don't get incorrect topology.

Note: I'm sending this as an RFC before sending to stable proper. I also
have a 5.2 and 5.3 backport which are almost the same, and only
significant change being that the ACPICA patch is not required.

Erik Schmauss (1):
  ACPICA: ACPI 6.3: PPTT add additional fields in Processor Structure
    Flags

Jeremy Linton (2):
  ACPI/PPTT: Add support for ACPI 6.3 thread flag
  arm64: topology: Use PPTT to determine if PE is a thread

 arch/arm64/kernel/topology.c | 19 ++++++++++---
 drivers/acpi/pptt.c          | 52 ++++++++++++++++++++++++++++++++++++
 include/acpi/actbl2.h        |  7 +++--
 include/linux/acpi.h         |  5 ++++
 4 files changed, 77 insertions(+), 6 deletions(-)

Comments

Hanjun Guo Oct. 11, 2019, 12:53 a.m. UTC | #1
Hi John,

On 2019/10/10 21:29, John Garry wrote:
> This series is a backport of the ACPI PPTT 6.3 thread flag feature for
> supporting arm64 systems.
> 
> The background is that some arm64 implementations are broken, in that they
> incorrectly advertise that a CPU is mutli-threaded, when it is not - the
> HiSilicon Taishanv110 rev 2, aka tsv110, being an example.
> 
> This leads to the system topology being incorrect. The reason being that
> arm64 topology code uses a combination of ACPI PPTT (Processor Properties
> Topology Table) and the system MPIDR (Multiprocessor Affinity Register) MT
> bit to determine the topology.
> 
> Until ACPI 6.3, the PPTT did not have any method to determine whether
> a CPU was multi-threaded, so only the MT bit is used - hence the
> broken topology for some systems.
> 
> In ACPI 6.3, a PPTT thread flag was introduced, which - when supported -
> would be used by the kernel to determine really if a CPU is multi-threaded
> or not, so that we don't get incorrect topology.

Thanks for doing this, and this patch set fix my CPU topology issue
in 4.19 kernel with updated firmware.

> 
> Note: I'm sending this as an RFC before sending to stable proper. I also
> have a 5.2 and 5.3 backport which are almost the same, and only
> significant change being that the ACPICA patch is not required.

5.2 stable was end of life, so only 4.19 and 5.3 are needed I think.

Thanks
Hanjun