[PATCH 0/4] irqchip/riscv-imsic: IRQ handling optimizations

Samuel Holland samuel.holland at sifive.com
Wed Oct 15 12:55:11 PDT 2025


This series includes a small cleanup to imsic_irq_set_affinity() and a
series of optimizations to the IMSIC IRQ handling hot path.

Benchmarks on a SiFive P470-based board (95% confidence interval):
  perf bench sched messaging: 5.20% to  7.08% improvement
  perf bench sched pipe     : 8.47% to 13.85% improvement


Samuel Holland (4):
  irqchip/riscv-imsic: Remove redundant irq_data lookups
  irqchip/riscv-imsic: Embed the vector array in lpriv
  irqchip/riscv-imsic: Inline imsic_vector_from_local_id()
  irqchip/riscv-imsic: Remove irq_desc lookup from hot path

 drivers/irqchip/irq-riscv-imsic-early.c    | 11 +++-----
 drivers/irqchip/irq-riscv-imsic-platform.c | 11 ++++----
 drivers/irqchip/irq-riscv-imsic-state.c    | 30 +++++-----------------
 drivers/irqchip/irq-riscv-imsic-state.h    |  8 +++---
 4 files changed, 19 insertions(+), 41 deletions(-)

-- 
2.47.2

base-commit: 9b332cece987ee1790b2ed4c989e28162fa47860
branch: up/imsic-opt



More information about the linux-riscv mailing list