Re: [PATCH 12/13] riscv/irq: use seq_put_decimal_ull_width() for decimal values

From: Alexandre Ghiti
Date: Tue Feb 25 2025 - 10:10:40 EST


Hi David,

On 08/11/2024 17:25, David Wang wrote:
Performance improvement for reading /proc/interrupts on arch riscv

Signed-off-by: David Wang <00107082@xxxxxxx>
---
arch/riscv/kernel/smp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/riscv/kernel/smp.c b/arch/riscv/kernel/smp.c
index c180a647a30e..f1e9c3db094c 100644
--- a/arch/riscv/kernel/smp.c
+++ b/arch/riscv/kernel/smp.c
@@ -226,7 +226,8 @@ void show_ipi_stats(struct seq_file *p, int prec)
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));
+ seq_put_decimal_ull_width(p, " ",
+ irq_desc_kstat_cpu(ipi_desc[i], cpu), 10);
seq_printf(p, " %s\n", ipi_names[i]);
}
}


Very late answer sorry!

I don't have the same output before and after your patch because seq_put_decimal_ull_width() second argument is placed *before* the number, not after as it was before.

The following diff fixes the issue:

diff --git a/arch/riscv/kernel/smp.c b/arch/riscv/kernel/smp.c index f1e9c3db094c3..4b80ee4e5b2c0 100644 --- a/arch/riscv/kernel/smp.c +++ b/arch/riscv/kernel/smp.c @@ -225,9 +225,11 @@ void show_ipi_stats(struct seq_file *p, int prec) for (i = 0; i < IPI_MAX; i++) { seq_printf(p, "%*s%u:%s", prec - 1, "IPI", i, prec >= 4 ? " " : ""); - for_each_online_cpu(cpu) - seq_put_decimal_ull_width(p, " ", + for_each_online_cpu(cpu) { + seq_put_decimal_ull_width(p, NULL, irq_desc_kstat_cpu(ipi_desc[i], cpu), 10); + seq_putc(p, ' '); + } seq_printf(p, " %s\n", ipi_names[i]); } }

Will you respin a new version?

Thanks,

Alex