[PATCH] arm64: smp: Fix missing IPI statistics

Doug Anderson dianders at chromium.org
Thu Jun 20 15:26:43 PDT 2024


Hi,

On Wed, Jun 19, 2024 at 11:31 PM Jinjie Ruan <ruanjinjie at huawei.com> wrote:
>
> commit 83cfac95c018 ("genirq: Allow interrupts to be excluded from
> /proc/interrupts") is to avoid IPIs appear twice in /proc/interrupts.
> But the commit 331a1b3a836c ("arm64: smp: Add arch support for backtrace
> using pseudo-NMI") and commit 2f5cd0c7ffde("arm64: kgdb: Implement
> kgdb_roundup_cpus() to enable pseudo-NMI roundup") set CPU_BACKTRACE and
> KGDB_ROUNDUP IPIs "IRQ_HIDDEN" flag but not show them in
> arch_show_interrupts(), which cause the interrupt kstat_irqs accounting
> is missing in display.
>
> Before this patch, CPU_BACKTRACE and KGDB_ROUNDUP IPIs are missing:
>         / # cat /proc/interrupts
>                    CPU0       CPU1       CPU2       CPU3
>          11:        466        600        309        332     GICv3  27 Level     arch_timer
>          13:         24          0          0          0     GICv3  33 Level     uart-pl011
>          15:         64          0          0          0     GICv3  78 Edge      virtio0
>          16:          0          0          0          0     GICv3  79 Edge      virtio1
>          17:          0          0          0          0     GICv3  34 Level     rtc-pl031
>          18:          3          3          3          3     GICv3  23 Level     arm-pmu
>          19:          0          0          0          0 9030000.pl061   3 Edge      GPIO Key Poweroff
>         IPI0:         7         14          9         26       Rescheduling interrupts
>         IPI1:       354         93        233        255       Function call interrupts
>         IPI2:         0          0          0          0       CPU stop interrupts
>         IPI3:         0          0          0          0       CPU stop (for crash dump) interrupts
>         IPI4:         0          0          0          0       Timer broadcast interrupts
>         IPI5:         1          0          0          0       IRQ work interrupts
>         Err:          0
>
> After this pacth, CPU_BACKTRACE and KGDB_ROUNDUP IPIs are displayed:
>         / # cat /proc/interrupts
>                    CPU0       CPU1       CPU2       CPU3
>          11:        393        281        532        449     GICv3  27 Level     arch_timer
>          13:         15          0          0          0     GICv3  33 Level     uart-pl011
>          15:         64          0          0          0     GICv3  78 Edge      virtio0
>          16:          0          0          0          0     GICv3  79 Edge      virtio1
>          17:          0          0          0          0     GICv3  34 Level     rtc-pl031
>          18:          2          2          2          2     GICv3  23 Level     arm-pmu
>          19:          0          0          0          0 9030000.pl061   3 Edge      GPIO Key Poweroff
>         IPI0:        11         19          4         23       Rescheduling interrupts
>         IPI1:       279        347        222         72       Function call interrupts
>         IPI2:         0          0          0          0       CPU stop interrupts
>         IPI3:         0          0          0          0       CPU stop (for crash dump) interrupts
>         IPI4:         0          0          0          0       Timer broadcast interrupts
>         IPI5:         1          0          0          1       IRQ work interrupts
>         IPI6:         0          0          0          0       CPU backtrace interrupts
>         IPI7:         0          0          0          0       KGDB roundup interrupts
>         Err:          0
>
> Fixes: 331a1b3a836c ("arm64: smp: Add arch support for backtrace using pseudo-NMI")
> Signed-off-by: Jinjie Ruan <ruanjinjie at huawei.com>
> Suggested-by: Doug Anderson <dianders at chromium.org>
> ---
> v2:
> - Report them in arch_show_interrupts().
> - Add suggested-by.
> - Update the commit message.
> ---
>  arch/arm64/kernel/smp.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)

Personally I don't find a ton of value in having the "CPU backtrace
interrupts" and "KGDB roundup interrupts" reported, but I agree that
if someone does find value in having them reported that this is the
best way. I guess that means a light:

Reviewed-by: Douglas Anderson <dianders at chromium.org>



More information about the linux-arm-kernel mailing list