[PATCH] ARM: smp: Fix IPI alignment in /proc/interrupts

Geert Uytterhoeven posted 1 patch 1 week, 6 days ago
arch/arm/kernel/smp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] ARM: smp: Fix IPI alignment in /proc/interrupts
Posted by Geert Uytterhoeven 1 week, 6 days ago
On a system with less than 1000 interrupts, prec = 3, causing a
misalignment for the IPI interrupts.  E.g. on Koelsch (R-Car M2-W):

    200:          0          0  gpio-rcar   6 Edge      SW36
    IPI0:          0          0  CPU wakeup interrupts
    IPI1:          0          0  Timer broadcast interrupts
    IPI2:       1701       2844  Rescheduling interrupts
    IPI3:      10338      21181  Function call interrupts
    IPI4:          0          0  CPU stop interrupts
    IPI5:        651        825  IRQ work interrupts
    IPI6:          0          0  completion interrupts
    Err:          0

Fix this by adopting the same solution as used on arm64.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 arch/arm/kernel/smp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 3431c0553f45cdf5..50999886a8b5cbab 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -551,7 +551,8 @@ void show_ipi_list(struct seq_file *p, int prec)
 		if (!ipi_desc[i])
 			continue;
 
-		seq_printf(p, "%*s%u: ", prec - 1, "IPI", i);
+		seq_printf(p, "%*s%u:%s", prec - 1, "IPI", i,
+			   prec >= 4 ? " " : "");
 
 		for_each_online_cpu(cpu)
 			seq_printf(p, "%10u ", irq_desc_kstat_cpu(ipi_desc[i], cpu));
-- 
2.34.1
Re: [PATCH] ARM: smp: Fix IPI alignment in /proc/interrupts
Posted by Anshuman Khandual 1 week, 5 days ago

On 11/20/24 15:24, Geert Uytterhoeven wrote:
> On a system with less than 1000 interrupts, prec = 3, causing a
> misalignment for the IPI interrupts.  E.g. on Koelsch (R-Car M2-W):
> 
>     200:          0          0  gpio-rcar   6 Edge      SW36
>     IPI0:          0          0  CPU wakeup interrupts
>     IPI1:          0          0  Timer broadcast interrupts
>     IPI2:       1701       2844  Rescheduling interrupts
>     IPI3:      10338      21181  Function call interrupts
>     IPI4:          0          0  CPU stop interrupts
>     IPI5:        651        825  IRQ work interrupts
>     IPI6:          0          0  completion interrupts
>     Err:          0
> 
> Fix this by adopting the same solution as used on arm64.
> 
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
>  arch/arm/kernel/smp.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
> index 3431c0553f45cdf5..50999886a8b5cbab 100644
> --- a/arch/arm/kernel/smp.c
> +++ b/arch/arm/kernel/smp.c
> @@ -551,7 +551,8 @@ void show_ipi_list(struct seq_file *p, int prec)
>  		if (!ipi_desc[i])
>  			continue;
>  
> -		seq_printf(p, "%*s%u: ", prec - 1, "IPI", i);
> +		seq_printf(p, "%*s%u:%s", prec - 1, "IPI", i,
> +			   prec >= 4 ? " " : "");
>  
>  		for_each_online_cpu(cpu)
>  			seq_printf(p, "%10u ", irq_desc_kstat_cpu(ipi_desc[i], cpu));

LGTM

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>