riscv: Register IPI IRQs with unique names

This allows different IPIs to be distinguished in tracing output.

Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20251016003244.3910332-1-samuel.holland@sifive.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
This commit is contained in:
Samuel Holland 2025-10-15 17:32:05 -07:00 committed by Paul Walmsley
parent e7b969cbe3
commit 223bfc4d40
1 changed files with 12 additions and 12 deletions

View File

@ -40,6 +40,17 @@ enum ipi_message_type {
IPI_MAX IPI_MAX
}; };
static const char * const ipi_names[] = {
[IPI_RESCHEDULE] = "Rescheduling interrupts",
[IPI_CALL_FUNC] = "Function call interrupts",
[IPI_CPU_STOP] = "CPU stop interrupts",
[IPI_CPU_CRASH_STOP] = "CPU stop (for crash dump) interrupts",
[IPI_IRQ_WORK] = "IRQ work interrupts",
[IPI_TIMER] = "Timer broadcast interrupts",
[IPI_CPU_BACKTRACE] = "CPU backtrace interrupts",
[IPI_KGDB_ROUNDUP] = "KGDB roundup interrupts",
};
unsigned long __cpuid_to_hartid_map[NR_CPUS] __ro_after_init = { unsigned long __cpuid_to_hartid_map[NR_CPUS] __ro_after_init = {
[0 ... NR_CPUS-1] = INVALID_HARTID [0 ... NR_CPUS-1] = INVALID_HARTID
}; };
@ -199,7 +210,7 @@ void riscv_ipi_set_virq_range(int virq, int nr)
/* Request IPIs */ /* Request IPIs */
for (i = 0; i < nr_ipi; i++) { for (i = 0; i < nr_ipi; i++) {
err = request_percpu_irq(ipi_virq_base + i, handle_IPI, err = request_percpu_irq(ipi_virq_base + i, handle_IPI,
"IPI", &ipi_dummy_dev); ipi_names[i], &ipi_dummy_dev);
WARN_ON(err); WARN_ON(err);
ipi_desc[i] = irq_to_desc(ipi_virq_base + i); ipi_desc[i] = irq_to_desc(ipi_virq_base + i);
@ -210,17 +221,6 @@ void riscv_ipi_set_virq_range(int virq, int nr)
riscv_ipi_enable(); riscv_ipi_enable();
} }
static const char * const ipi_names[] = {
[IPI_RESCHEDULE] = "Rescheduling interrupts",
[IPI_CALL_FUNC] = "Function call interrupts",
[IPI_CPU_STOP] = "CPU stop interrupts",
[IPI_CPU_CRASH_STOP] = "CPU stop (for crash dump) interrupts",
[IPI_IRQ_WORK] = "IRQ work interrupts",
[IPI_TIMER] = "Timer broadcast interrupts",
[IPI_CPU_BACKTRACE] = "CPU backtrace interrupts",
[IPI_KGDB_ROUNDUP] = "KGDB roundup interrupts",
};
void show_ipi_stats(struct seq_file *p, int prec) void show_ipi_stats(struct seq_file *p, int prec)
{ {
unsigned int cpu, i; unsigned int cpu, i;