|
|
Subscribe / Log in / New account

Unify CPU topology across ARM & RISC-V

From:  Atish Patra <atish.patra-AT-wdc.com>
To:  linux-kernel-AT-vger.kernel.org
Subject:  [RFT/RFC PATCH v2 0/4] Unify CPU topology across ARM & RISC-V
Date:  Tue, 19 Mar 2019 18:22:47 -0700
Message-ID:  <20190320012251.2728-1-atish.patra@wdc.com>
Cc:  Atish Patra <atish.patra-AT-wdc.com>, Albert Ou <aou-AT-eecs.berkeley.edu>, Anup Patel <anup-AT-brainfault.org>, Ard Biesheuvel <ard.biesheuvel-AT-linaro.org>, Catalin Marinas <catalin.marinas-AT-arm.com>, devicetree-AT-vger.kernel.org, Dmitriy Cherkasov <dmitriy-AT-oss-tech.org>, Greg Kroah-Hartman <gregkh-AT-linuxfoundation.org>, Ingo Molnar <mingo-AT-kernel.org>, Jeremy Linton <jeremy.linton-AT-arm.com>, linux-riscv-AT-lists.infradead.org, Mark Rutland <mark.rutland-AT-arm.com>, Morten Rasmussen <morten.rasmussen-AT-arm.com>, Otto Sabart <ottosabart-AT-seberm.com>, Palmer Dabbelt <palmer-AT-sifive.com>, Paul Walmsley <paul.walmsley-AT-sifive.com>, "Peter Zijlstra (Intel)" <peterz-AT-infradead.org>, "Rafael J. Wysocki" <rafael-AT-kernel.org>, Rob Herring <robh+dt-AT-kernel.org>, Sudeep Holla <sudeep.holla-AT-arm.com>, Thomas Gleixner <tglx-AT-linutronix.de>, Will Deacon <will.deacon-AT-arm.com>
Archive-link:  Article

The cpu-map DT entry in ARM can describe the CPU topology in much better
way compared to other existing approaches. RISC-V can easily adopt this
binding to represent its own CPU topology. Thus, both cpu-map DT
binding and topology parsing code can be moved to a common location so
that RISC-V or any other architecture can leverage that.

The relevant discussion regarding unifying cpu topology can be found in
[1].

arch_topology seems to be a perfect place to move the common code. I
have not introduced any significant functional changes in the moved code.
The only downside in this approach is that the capacity code will be
executed for RISC-V as well. But, it will exit immediately after not
able to find the appropriate DT node. If the overhead is considered too
much, we can always compile out capacity related functions under a
different config for the architectures that do not support them.

There was an opportunity to unify topology data structure for ARM32 done
by patch 3/4. But, I refrained from making any other changes as I am not
very well versed with original intention for some of the functions that
are present in arch_topology.c. I hope this patch series can be served
as a baseline for such changes in the future.

The patches have been tested for RISC-V and compile tested for ARM64,
ARM32 & x86.

The socket change[2] is also now part of this series.

[1] https://lkml.org/lkml/2018/11/6/19
[2] https://lkml.org/lkml/2018/11/7/918

QEMU changes for RISC-V topology are available at

https://github.com/atishp04/qemu/tree/riscv_topology_dt

Changes from v1->v2
1. ARM32 can now use the common code as well.

Atish Patra (4):
dt-binding: cpu-topology: Move cpu-map to a common binding.
cpu-topology: Move cpu topology code to common code.
arm: Use common cpu_topology
RISC-V: Parse cpu topology during boot.

.../topology.txt => cpu/cpu-topology.txt}     |  82 ++++-
arch/arm/include/asm/topology.h               |  22 +-
arch/arm/kernel/topology.c                    |  10 +-
arch/arm64/include/asm/topology.h             |  23 --
arch/arm64/kernel/topology.c                  | 303 +-----------------
arch/riscv/Kconfig                            |   1 +
arch/riscv/kernel/smpboot.c                   |   3 +
drivers/base/arch_topology.c                  | 298 ++++++++++++++++-
drivers/base/topology.c                       |   1 +
include/linux/arch_topology.h                 |  36 +++
10 files changed, 414 insertions(+), 365 deletions(-)
rename Documentation/devicetree/bindings/{arm/topology.txt => cpu/cpu-topology.txt} (86%)

--
2.21.0



Copyright © 2019, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds