perf/arm-cmn: Reduce stack usage during discovery
authorRobin Murphy <robin.murphy@arm.com>
Fri, 27 Jun 2025 17:42:39 +0000 (18:42 +0100)
committerWill Deacon <will@kernel.org>
Fri, 4 Jul 2025 17:06:55 +0000 (18:06 +0100)
commita7bfae21457c3e46d16868c0bc923e509b4a83e2
tree501c1aeea5cb39cabad5c1705ef08a373adee17f
parentb6e37b27bf6802fd4ec1446e05058da4e1ddce64
perf/arm-cmn: Reduce stack usage during discovery

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: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Reviewed-and-tested-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Link: https://lore.kernel.org/r/e7dd41bf0f1b098e2e4b01ef91318a4b272abff8.1751046159.git.robin.murphy@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/arm-cmn.c