Re: [PATCH v2] arm64: defconfig: Enable TISCI Interrupt Router and Aggregator

From: Vaishnav Achath
Date: Wed Feb 05 2025 - 01:37:46 EST


Hi Geert, Nishanth,

On 05/02/25 09:21, Nishanth Menon wrote:
On 08:42-20250204, Geert Uytterhoeven wrote:
Hi Vaishnav,

Thanks for your patch!

On Mon, 3 Feb 2025 at 16:08, Vaishnav Achath <vaishnav.a@xxxxxx> wrote:
Enable TISCI Interrupt Router and Interrupt Aggregator drivers.
These IPs are found in all TI K3 SoCs like J721E, AM62X and is required
for core functionality like DMA, GPIO Interrupts which is necessary
during boot, thus make them built-in.

bloat-o-meter summary on vmlinux:
add/remove: 460/1 grow/shrink: 4/0 up/down: 162483/-8 (162475)
...
Total: Before=31615984, After=31778459, chg +0.51%

My first thought was: that's a hefty size increase for two rather
small drivers! So I enabled these two options in one of my own kernel
configs, and saw a size increase of only 7872 bytes...

Fixes: 2d95ffaecbc2 ("irqchip/ti-sci-intr: Add module build support")
Fixes: b8b26ae398c4 ("irqchip/ti-sci-inta : Add module build support")

Signed-off-by: Vaishnav Achath <vaishnav.a@xxxxxx>
---

V1 : https://lore.kernel.org/all/20250119182121.3956546-1-vaishnav.a@xxxxxx/

V1->V2:
* Add Fixes tag.
* Add bloat-o-meter summary to commit message.

Previously both of these configs were selected for ARCH_K3 in respective
Kconfigs, but commit b8b26ae398c4 ("irqchip/ti-sci-inta : Add module build support")
and commit 2d95ffaecbc2 ("irqchip/ti-sci-intr: Add module build support")
in dropped this recently without adding those back in arm64
defconfig, this causes boot failure in all TI K3 platforms.

Passing bootlog with configs enabled:
https://gist.github.com/vaishnavachath/03d8d3ce0f22219643c2f4d1dd243fd1

arch/arm64/configs/defconfig | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index cb7da4415599..1f25423de383 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1551,6 +1551,8 @@ CONFIG_PWM_VISCONTI=m
CONFIG_SL28CPLD_INTC=y
CONFIG_QCOM_PDC=y
CONFIG_QCOM_MPM=y
+CONFIG_TI_SCI_INTR_IRQCHIP=y
+CONFIG_TI_SCI_INTA_IRQCHIP=y
CONFIG_RESET_GPIO=m
CONFIG_RESET_IMX7=y
CONFIG_RESET_QCOM_AOSS=y

However, on arm64 defconfig, this has indeed a much bigger impact,
as it also (re)enables several other drivers that depend on the
irqchip symbols.

You probably want to mention that in the commit message...

Thanks Geert and I agree. This however just restores the status quo as
it was in 6.13 tag kernel (and ofcourse the default boot status).

Will be good to mention that as well - in effect, we are just restoring
the behavior, not introducing new features.


Thank you for the feedback, I have sent a v3 with updated commit message mentioning the reason for size increase and that we are reinstating previous behavior, all the dependencies getting re-enabled were already part of the arm64 defconfig.

V3 - https://lore.kernel.org/all/20250205062229.3869081-1-vaishnav.a@xxxxxx/

Thanks and Regards,
Vaishnav

Side note: We are still working towards fixing up other driver modules
and some time in near future, hope to transition to initramfs boot as
default in a single patch.. but till then let us maintain the status
quo.