Skip to content
Snippets Groups Projects
  1. Aug 04, 2025
    • Robin Murphy's avatar
      WIP: perf/arm-cmn: Manual override for CMN S3 r0 isolation · 03b4922e
      Robin Murphy authored
      
      Prototype for allowing a user-provided list of isolated nodes to get
      around the issue with r0/r1. Ugly and quite possibly fragile since I
      don't really know what I'm doing with the module parameter parsing...
      
      Not intended for general use.
      
      Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
      03b4922e
    • Robin Murphy's avatar
      perf/arm-cmn: DTC domain hacks · 2f2868c4
      Robin Murphy authored
      
      Try to discover the DTC domain assignment with a "see where the
      rollover goes" contrivance. It sort of works...
      
      Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
      2f2868c4
    • Robin Murphy's avatar
      perf/arm-cmn: Allow counting non-idle cycles · ca55e5a9
      Robin Murphy authored
      
      Although since commit c5b15ddf ("perf/arm-cmn: Make cycle counts
      less surprising") the dtc_cycles event now has the generally more useful
      behaviour expected for bandwidth and frequency calculations, there are
      still some potential niche uses for observing CMN's notion of "idle" via
      DTC clock gating, at least on configurations with only one DTC domain.
      Luckily things are now the right way round for the standard exclude_idle
      attribute to seem a good enough fit, so we can wire that up.
      
      This then allows fun tricks like getting a rough view of the level of
      interconnect activity:
      
      $ perf stat -r10 -a -earm_cmn_0/dtc_cycles/{,I} sleep 1
      
       Performance counter stats for 'system wide' (10 runs):
      
              1607593396      arm_cmn_0/dtc_cycles/        ( +-  0.01% )  (50.15%)
                 9030986      arm_cmn_0/dtc_cycles/I       ( +- 15.08% )  (49.85%)
      
                1.005074 +- 0.000135 seconds time elapsed  ( +-  0.01% )
      
      ...seems like there's not much background traffic on this otherwise-idle
      machine, and CMN-600's clock gating is doing a pretty good job!
      
      Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
      ca55e5a9
    • Robin Murphy's avatar
      perf/arm-cmn: Support CMN S3 r2 isolation feature · b9e2cae6
      Robin Murphy authored
      
      The r2p0 release of CMN S3 finally adds a visible indication of child
      node isolation status, so we can support configurations with the feature
      enabled. It also brings some functional PMU changes such that certain
      events won't quite work properly as-is, but that's a job for another day.
      
      Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
      b9e2cae6
    • Robin Murphy's avatar
      perf/arm-cmn: Fix CMN S3 DTM offset · f1248eed
      Robin Murphy authored
      
      CMN S3's DTM offset is different between r0px and r1p0, and it
      turns out this was not a error in the earlier documentation, but
      does actually exist in the design. Lovely.
      
      Cc: stable@vger.kernel.org
      Fixes: 0dc2f496 ("perf/arm-cmn: Support CMN S3")
      Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
      f1248eed
  2. Jul 02, 2025
  3. Jun 27, 2025
    • Robin Murphy's avatar
      perf/arm-cmn: Reduce stack usage during discovery · e7dd41bf
      Robin Murphy authored
      
      Arnd reports that Clang's aggressive inlining of arm_cmn_discover() can
      lead to stack frame size warnings, and while we could simply prevent
      such inlining to hide the issue, it seems more productive to actually
      heed the warning and do something about the overall stack footprint.
      The xp_region array is already rather large, and CMN_MAX_XPS might only
      grow larger in future, however it only serves as a convenience to save
      repeating the first level's worth of register reads in the second pass
      of discovery. There's no performance concern here, and it only takes a
      small tweak to the flow to re-extract the offsets instead of stashing
      them, so let's just do that and save several hundred bytes of stack.
      
      Reported-by: default avatarArnd Bergmann <arnd@kernel.org>
      Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
      e7dd41bf
    • Robin Murphy's avatar
      arm64: dts: morello: Add CMN PMU · 1911159d
      Robin Murphy authored
      
      Although CMN-Skeena is mildly modified for the Morello hardware
      architecture, it still identifies itself as CMN-600 r3p1. Since
      there are also no documented changes to its PMU functionality,
      we can make the PMU accessible via the standard CMN-600 binding.
      In general, PMU registers are non-functional on CMN Fast Models,
      so this is only meaningful for the real SDP hardware.
      
      Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
      1911159d
    • Deepak Pandey's avatar
      pcie: Add quirk for the Arm Neoverse N1SDP platform · 25653cb9
      Deepak Pandey authored and Robin Murphy's avatar Robin Murphy committed
      
      The Arm N1SDP SoC suffers from some PCIe integration issues, most
      prominently config space accesses to not existing BDFs being answered
      with a bus abort, resulting in an SError.
      To mitigate this, the firmware scans the bus before boot (catching the
      SErrors) and creates a table with valid BDFs, which acts as a filter for
      Linux' config space accesses.
      
      Add code consulting the table as an ACPI PCIe quirk, also register the
      corresponding device tree based description of the host controller.
      Also fix the other two minor issues on the way, namely not being fully
      ECAM compliant and config space accesses being restricted to 32-bit
      accesses only.
      
      This allows the Arm Neoverse N1SDP board to boot Linux without crashing
      and to access *any* devices (there are no platform devices except UART).
      
      Signed-off-by: default avatarDeepak Pandey <Deepak.Pandey@arm.com>
      [Sudipto: extend to cover the CCIX root port as well]
      Signed-off-by: default avatarSudipto Paul <sudipto.paul@arm.com>
      [Andre: fix coding style issues, rewrite some parts, add DT support]
      Signed-off-by: Andre Przywara's avatarAndre Przywara <andre.przywara@arm.com>
      Change-Id: I1d3a4b9bf6b3b883d262e3c4ff1f88a0eb81c1fe
      [rm: hack out problematic SR-IOV check]
      Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
      25653cb9
  4. Jun 08, 2025
  5. Jun 07, 2025
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 8630c59e
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Add support for the EXPORT_SYMBOL_GPL_FOR_MODULES() macro, which
         exports a symbol only to specified modules
      
       - Improve ABI handling in gendwarfksyms
      
       - Forcibly link lib-y objects to vmlinux even if CONFIG_MODULES=n
      
       - Add checkers for redundant or missing <linux/export.h> inclusion
      
       - Deprecate the extra-y syntax
      
       - Fix a genksyms bug when including enum constants from *.symref files
      
      * tag 'kbuild-v6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (28 commits)
        genksyms: Fix enum consts from a reference affecting new values
        arch: use always-$(KBUILD_BUILTIN) for vmlinux.lds
        kbuild: set y instead of 1 to KBUILD_{BUILTIN,MODULES}
        efi/libstub: use 'targets' instead of extra-y in Makefile
        module: make __mod_device_table__* symbols static
        scripts/misc-check: check unnecessary #include <linux/export.h> when W=1
        scripts/misc-check: check missing #include <linux/export.h> when W=1
        scripts/misc-check: add double-quotes to satisfy shellcheck
        kbuild: move W=1 check for scripts/misc-check to top-level Makefile
        scripts/tags.sh: allow to use alternative ctags implementation
        kconfig: introduce menu type enum
        docs: symbol-namespaces: fix reST warning with literal block
        kbuild: link lib-y objects to vmlinux forcibly even when CONFIG_MODULES=n
        tinyconfig: enable CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
        docs/core-api/symbol-namespaces: drop table of contents and section numbering
        modpost: check forbidden MODULE_IMPORT_NS("module:") at compile time
        kbuild: move kbuild syntax processing to scripts/Makefile.build
        Makefile: remove dependency on archscripts for header installation
        Documentation/kbuild: Add new gendwarfksyms kABI rules
        Documentation/kbuild: Drop section numbers
        ...
      8630c59e
    • Linus Torvalds's avatar
      Merge tag 'sh-for-v6.16-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux · b3154a6f
      Linus Torvalds authored
      Pull sh updates from John Paul Adrian Glaubitz:
      
       - replace the __ASSEMBLY__ with __ASSEMBLER__ macro in all headers
         since the latter is now defined automatically by both GCC and Clang
         when compiling assembly code (Thomas Huth)
      
       - set the default SPI mode for the ecovec24 board which became
         necessary after a new mode member as added to the sh_msiof_spi_info
         struct in cf9e4784 ("spi: sh-msiof: Add slave mode support")
         (Geert Uytterhoeven)
      
       - remove unused variables in the kprobes code in
         kprobe_exceptions_notify() (Mike Rapoport)
      
      * tag 'sh-for-v6.16-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux:
        sh: kprobes: Remove unused variables in kprobe_exceptions_notify()
        sh: ecovec24: Make SPI mode explicit
        sh: Replace __ASSEMBLY__ with __ASSEMBLER__ in all headers
      b3154a6f
Loading