mbox series

[00/10] interconnect: osm-l3: SC8280XP L3 and DDR scaling

Message ID 20221028034155.5580-1-quic_bjorande@quicinc.com
Headers show
Series interconnect: osm-l3: SC8280XP L3 and DDR scaling | expand

Message

Bjorn Andersson Oct. 28, 2022, 3:41 a.m. UTC
The SC8280XP currently shows depressing results in memory benchmarks.
Fix this by introducing support for the platform in the OSM (and EPSS)
L3 driver and support for the platform in the bwmon binding.

Then add the necessary nodes and values throughout the sc8280xp and
sa8540p dtsi files to make the various devices on these platforms scale
both L3, memory bus and DDR.

Bjorn Andersson (10):
  interconnect: qcom: osm-l3: Use platform-independent node ids
  interconnect: qcom: osm-l3: Squash common descriptors
  interconnect: qcom: osm-l3: Add per-core EPSS L3 support
  interconnect: qcom: osm-l3: Simplify osm_l3_set()
  dt-bindings: interconnect: Add sm8350, sc8280xp and generic OSM L3
    compatibles
  arm64: dts: qcom: Align with generic osm-l3/epss-l3
  arm64: dts: qcom: sc8280xp: Add epss_l3 node
  arm64: dts: qcom: sc8280xp: Set up L3 scaling
  dt-bindings: interconnect: qcom,msm8998-bwmon: Add sc8280xp bwmon
    instances
  arm64: dts: qcom: sc8280xp: Add bwmon instances

 .../interconnect/qcom,msm8998-bwmon.yaml      |   5 +
 .../bindings/interconnect/qcom,osm-l3.yaml    |  22 ++-
 arch/arm64/boot/dts/qcom/sa8540p.dtsi         |  39 +++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi          |   2 +-
 arch/arm64/boot/dts/qcom/sc7280.dtsi          |   2 +-
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi        | 152 ++++++++++++++++++
 arch/arm64/boot/dts/qcom/sdm845.dtsi          |   2 +-
 arch/arm64/boot/dts/qcom/sm8150.dtsi          |   2 +-
 arch/arm64/boot/dts/qcom/sm8250.dtsi          |   2 +-
 drivers/interconnect/qcom/osm-l3.c            | 126 ++++-----------
 10 files changed, 251 insertions(+), 103 deletions(-)

Comments

Steev Klimaszewski Oct. 29, 2022, 1:27 a.m. UTC | #1
On Thu, Oct 27, 2022 at 10:42 PM Bjorn Andersson
<quic_bjorande@quicinc.com> wrote:
>
> The SC8280XP currently shows depressing results in memory benchmarks.
> Fix this by introducing support for the platform in the OSM (and EPSS)
> L3 driver and support for the platform in the bwmon binding.
>
> Then add the necessary nodes and values throughout the sc8280xp and
> sa8540p dtsi files to make the various devices on these platforms scale
> both L3, memory bus and DDR.
>
> Bjorn Andersson (10):
>   interconnect: qcom: osm-l3: Use platform-independent node ids
>   interconnect: qcom: osm-l3: Squash common descriptors
>   interconnect: qcom: osm-l3: Add per-core EPSS L3 support
>   interconnect: qcom: osm-l3: Simplify osm_l3_set()
>   dt-bindings: interconnect: Add sm8350, sc8280xp and generic OSM L3
>     compatibles
>   arm64: dts: qcom: Align with generic osm-l3/epss-l3
>   arm64: dts: qcom: sc8280xp: Add epss_l3 node
>   arm64: dts: qcom: sc8280xp: Set up L3 scaling
>   dt-bindings: interconnect: qcom,msm8998-bwmon: Add sc8280xp bwmon
>     instances
>   arm64: dts: qcom: sc8280xp: Add bwmon instances
>
>  .../interconnect/qcom,msm8998-bwmon.yaml      |   5 +
>  .../bindings/interconnect/qcom,osm-l3.yaml    |  22 ++-
>  arch/arm64/boot/dts/qcom/sa8540p.dtsi         |  39 +++++
>  arch/arm64/boot/dts/qcom/sc7180.dtsi          |   2 +-
>  arch/arm64/boot/dts/qcom/sc7280.dtsi          |   2 +-
>  arch/arm64/boot/dts/qcom/sc8280xp.dtsi        | 152 ++++++++++++++++++
>  arch/arm64/boot/dts/qcom/sdm845.dtsi          |   2 +-
>  arch/arm64/boot/dts/qcom/sm8150.dtsi          |   2 +-
>  arch/arm64/boot/dts/qcom/sm8250.dtsi          |   2 +-
>  drivers/interconnect/qcom/osm-l3.c            | 126 ++++-----------
>  10 files changed, 251 insertions(+), 103 deletions(-)
>
> --
> 2.37.3
>
Prior to this series being applied:

steev@cho:~/temp/mybw$ ./mybw
    64: 21043.42MB/s
   128: 22511.90MB/s
   256: 23190.96MB/s
   512: 23532.00MB/s
  1024: 23537.36MB/s
    2K: 23730.19MB/s
    4K: 23307.45MB/s
    8K: 23603.36MB/s
   16K: 23752.39MB/s
   32K: 23819.91MB/s
   64K: 23871.28MB/s
  128K: 23890.10MB/s
  256K: 23851.90MB/s
  512K: 23759.65MB/s
 1024K: 15956.73MB/s
    2M: 8418.88MB/s
    4M: 6385.06MB/s
    8M: 5959.11MB/s
   16M: 5892.18MB/s
   32M: 6109.78MB/s


With this series applied:
steev@cho:~/temp/mybw$ ./mybw
    64: 21193.63MB/s
   128: 22513.64MB/s
   256: 23196.15MB/s
   512: 23554.33MB/s
  1024: 23555.31MB/s
    2K: 23738.53MB/s
    4K: 23310.13MB/s
    8K: 23616.14MB/s
   16K: 23768.47MB/s
   32K: 23847.16MB/s
   64K: 23881.61MB/s
  128K: 23901.33MB/s
  256K: 23910.21MB/s
  512K: 23839.70MB/s
 1024K: 23577.47MB/s
    2M: 23836.08MB/s
    4M: 23798.35MB/s
    8M: 23759.23MB/s
   16M: 22887.62MB/s
   32M: 22491.87MB/s

Additionally, if anyone is curious, geekbench 5.4 comparison, with
this patchset applied on 6.0.5:

https://browser.geekbench.com/v5/cpu/compare/18284519?baseline=18076980

This change is very welcomed :)

Tested on the Lenovo Thinkpad X13s

Tested-by: Steev Klimaszewski <steev@kali.org>