All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/7] Support PPTT for ARM64
@ 2017-10-12 19:48 ` Jeremy Linton
  0 siblings, 0 replies; 104+ messages in thread
From: Jeremy Linton @ 2017-10-12 19:48 UTC (permalink / raw)
  To: linux-acpi
  Cc: linux-arm-kernel, sudeep.holla, hanjun.guo, lorenzo.pieralisi,
	rjw, will.deacon, catalin.marinas, gregkh, viresh.kumar,
	mark.rutland, linux-kernel, linux-pm, jhugo, wangxiongfeng2,
	Jonathan.Zhang, ahs3, Jayachandran.Nair, austinwc, Jeremy Linton

ACPI 6.2 adds the Processor Properties Topology Table (PPTT), which is
used to describe the processor and cache topology. Ideally it is
used to extend/override information provided by the hardware, but
right now ARM64 is entirely dependent on firmware provided tables.

This patch parses the table for the cache topology and CPU topology.
For the latter we also add an additional topology_cod_id() macro,
and a package_id for arm64. Initially the physical id will match
the cluster id, but we update users of the cluster to utilize
the new macro. When we enable ACPI/PPTT for arm64 we map the socket
to the physical id as the remainder of the kernel expects.

For example on juno:
[root@mammon-juno-rh topology]# lstopo-no-graphics
  Package L#0
    L2 L#0 (1024KB)
      L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0)
      L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 + PU L#1 (P#1)
      L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 + PU L#2 (P#2)
      L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 + PU L#3 (P#3)
    L2 L#1 (2048KB)
      L1d L#4 (32KB) + L1i L#4 (48KB) + Core L#4 + PU L#4 (P#4)
      L1d L#5 (32KB) + L1i L#5 (48KB) + Core L#5 + PU L#5 (P#5)
  HostBridge L#0
    PCIBridge
      PCIBridge
        PCIBridge
          PCI 1095:3132
            Block(Disk) L#0 "sda"
        PCIBridge
          PCI 1002:68f9
            GPU L#1 "renderD128"
            GPU L#2 "card0"
            GPU L#3 "controlD64"
        PCIBridge
          PCI 11ab:4380
            Net L#4 "enp8s0"

v2->v3:

Remove valid bit check on leaf nodes. Now simply being a leaf node
  is sufficient to verify the processor id against the ACPI
  processor ids (gotten from MADT). 

Use the acpi processor for the "level 0" Id. This makes the /sys
  visible core/thread ids more human readable if the firmware uses
  small consecutive values for processor ids.

Added PPTT to the list of injectable ACPI tables.

Fix bug which kept the code from using the processor node as intended
  in v2, caused by misuse of git rebase/fixup.

v1->v2:

The parser keys off the acpi_pptt_processor node to determine
  unique cache's rather than the acpi_pptt_cache referenced by the
  processor node. This allows PPTT tables which "share" cache nodes
  across cpu nodes despite not being a shared cache.

Normalize the socket, cluster and thread mapping so that they match
  linux's traditional mapping for the physical id, and thread id.
  Adding explicit scheduler knowledge of clusters (rather than just
  their cache sharing attributes) is a subject for a future patch.

Jeremy Linton (7):
  ACPI/PPTT: Add Processor Properties Topology Table parsing
  ACPI: Enable PPTT support on ARM64
  drivers: base: cacheinfo: arm64: Add support for ACPI based firmware
    tables
  Topology: Add cluster on die macros and arm64 decoding
  arm64: Fixup users of topology_physical_package_id
  arm64: topology: Enable ACPI/PPTT based CPU topology.
  ACPI: Add PPTT to injectable table list

 arch/arm64/Kconfig                |   1 +
 arch/arm64/include/asm/topology.h |   4 +-
 arch/arm64/kernel/cacheinfo.c     |  23 +-
 arch/arm64/kernel/topology.c      |  62 ++++-
 drivers/acpi/Makefile             |   1 +
 drivers/acpi/arm64/Kconfig        |   3 +
 drivers/acpi/pptt.c               | 486 ++++++++++++++++++++++++++++++++++++++
 drivers/acpi/tables.c             |   3 +-
 drivers/base/cacheinfo.c          |  17 +-
 drivers/cpufreq/arm_big_little.c  |   2 +-
 drivers/firmware/psci_checker.c   |   2 +-
 include/linux/cacheinfo.h         |  11 +-
 include/linux/topology.h          |   4 +
 13 files changed, 599 insertions(+), 20 deletions(-)
 create mode 100644 drivers/acpi/pptt.c

-- 
2.13.5


^ permalink raw reply	[flat|nested] 104+ messages in thread

end of thread, other threads:[~2017-11-02 10:48 UTC | newest]

Thread overview: 104+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-12 19:48 [PATCH v3 0/7] Support PPTT for ARM64 Jeremy Linton
2017-10-12 19:48 ` Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 1/7] ACPI/PPTT: Add Processor Properties Topology Table parsing Jeremy Linton
2017-10-12 19:48   ` Jeremy Linton
2017-10-13  9:56   ` Julien Thierry
2017-10-13  9:56     ` Julien Thierry
2017-10-13 22:41     ` Jeremy Linton
2017-10-13 22:41       ` Jeremy Linton
2017-10-13 14:23   ` tn
2017-10-13 14:23     ` tn
2017-10-13 19:58     ` Jeremy Linton
2017-10-13 19:58       ` Jeremy Linton
2017-10-16 14:24   ` John Garry
2017-10-16 14:24     ` John Garry
2017-10-16 14:24     ` John Garry
2017-10-17 13:25   ` Tomasz Nowicki
2017-10-17 13:25     ` Tomasz Nowicki
2017-10-17 15:22     ` Jeremy Linton
2017-10-17 15:22       ` Jeremy Linton
2017-10-18  1:10       ` Xiongfeng Wang
2017-10-18  1:10         ` Xiongfeng Wang
2017-10-18  1:10         ` Xiongfeng Wang
2017-10-18  5:39       ` Tomasz Nowicki
2017-10-18  5:39         ` Tomasz Nowicki
2017-10-18 10:24         ` Tomasz Nowicki
2017-10-18 10:24           ` Tomasz Nowicki
2017-10-18 17:30           ` Jeremy Linton
2017-10-18 17:30             ` Jeremy Linton
2017-10-19  5:18             ` Tomasz Nowicki
2017-10-19  5:18               ` Tomasz Nowicki
2017-10-19 10:25               ` John Garry
2017-10-19 10:25                 ` John Garry
2017-10-19 10:25                 ` John Garry
2017-10-27  5:21                 ` Tomasz Nowicki
2017-10-27  5:21                   ` Tomasz Nowicki
2017-10-19 14:24               ` Jeremy Linton
2017-10-19 14:24                 ` Jeremy Linton
2017-10-19 10:22   ` Lorenzo Pieralisi
2017-10-19 10:22     ` Lorenzo Pieralisi
2017-10-19 15:43     ` Jeremy Linton
2017-10-19 15:43       ` Jeremy Linton
2017-10-20 10:15       ` Lorenzo Pieralisi
2017-10-20 10:15         ` Lorenzo Pieralisi
2017-10-20 19:53   ` Christ, Austin
2017-10-20 19:53     ` Christ, Austin
2017-10-23 21:14     ` Jeremy Linton
2017-10-23 21:14       ` Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 2/7] ACPI: Enable PPTT support on ARM64 Jeremy Linton
2017-10-12 19:48   ` Jeremy Linton
2017-10-12 19:48   ` Jeremy Linton
2017-10-13  9:53   ` Hanjun Guo
2017-10-13  9:53     ` Hanjun Guo
2017-10-13  9:53     ` Hanjun Guo
2017-10-13 17:51     ` Jeremy Linton
2017-10-13 17:51       ` Jeremy Linton
2017-10-18 16:47   ` Lorenzo Pieralisi
2017-10-18 16:47     ` Lorenzo Pieralisi
2017-10-18 17:38     ` Jeremy Linton
2017-10-18 17:38       ` Jeremy Linton
2017-10-19  9:12       ` Lorenzo Pieralisi
2017-10-19  9:12         ` Lorenzo Pieralisi
2017-10-12 19:48 ` [PATCH v3 3/7] drivers: base: cacheinfo: arm64: Add support for ACPI based firmware tables Jeremy Linton
2017-10-12 19:48   ` Jeremy Linton
2017-10-19 15:20   ` Lorenzo Pieralisi
2017-10-19 15:20     ` Lorenzo Pieralisi
2017-10-19 15:52     ` Jeremy Linton
2017-10-19 15:52       ` Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 4/7] Topology: Add cluster on die macros and arm64 decoding Jeremy Linton
2017-10-12 19:48   ` Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 5/7] arm64: Fixup users of topology_physical_package_id Jeremy Linton
2017-10-12 19:48   ` Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 6/7] arm64: topology: Enable ACPI/PPTT based CPU topology Jeremy Linton
2017-10-12 19:48   ` Jeremy Linton
2017-10-19 15:56   ` Lorenzo Pieralisi
2017-10-19 15:56     ` Lorenzo Pieralisi
2017-10-19 16:13     ` Jeremy Linton
2017-10-19 16:13       ` Jeremy Linton
2017-10-20  9:14       ` Lorenzo Pieralisi
2017-10-20  9:14         ` Lorenzo Pieralisi
2017-10-20 16:14         ` Jeremy Linton
2017-10-20 16:14           ` Jeremy Linton
2017-10-20 16:42           ` Sudeep Holla
2017-10-20 16:42             ` Sudeep Holla
2017-10-20 19:55           ` Jeffrey Hugo
2017-10-20 19:55             ` Jeffrey Hugo
2017-10-23 21:26             ` Jeremy Linton
2017-10-23 21:26               ` Jeremy Linton
2017-10-19 16:54     ` Jeremy Linton
2017-10-19 16:54       ` Jeremy Linton
2017-10-20  9:22       ` Lorenzo Pieralisi
2017-10-20  9:22         ` Lorenzo Pieralisi
2017-11-01 20:29         ` Al Stone
2017-11-01 20:29           ` Al Stone
2017-11-02 10:48           ` Lorenzo Pieralisi
2017-11-02 10:48             ` Lorenzo Pieralisi
2017-10-12 19:48 ` [PATCH v3 7/7] ACPI: Add PPTT to injectable table list Jeremy Linton
2017-10-12 19:48   ` Jeremy Linton
2017-10-13 11:08 ` [PATCH v3 0/7] Support PPTT for ARM64 John Garry
2017-10-13 11:08   ` John Garry
2017-10-13 11:08   ` John Garry
2017-10-13 19:34   ` Jeremy Linton
2017-10-13 19:34     ` Jeremy Linton
2017-10-31 12:46 ` Jon Masters
2017-10-31 12:46   ` Jon Masters

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.