Anup Patel <apatel@xxxxxxxxxxxxxxxx> writes: > The RISC-V AIA specification is ratified as-per the RISC-V international > process. The latest ratified AIA specifcation can be found at: > https://github.com/riscv/riscv-aia/releases/download/1.0/riscv-interrupts-1.0.pdf > > At a high-level, the AIA specification adds three things: > 1) AIA CSRs > - Improved local interrupt support > 2) Incoming Message Signaled Interrupt Controller (IMSIC) > - Per-HART MSI controller > - Support MSI virtualization > - Support IPI along with virtualization > 3) Advanced Platform-Level Interrupt Controller (APLIC) > - Wired interrupt controller > - In MSI-mode, converts wired interrupt into MSIs (i.e. MSI generator) > - In Direct-mode, injects external interrupts directly into HARTs > > For an overview of the AIA specification, refer the AIA virtualization > talk at KVM Forum 2022: > https://static.sched.com/hosted_files/kvmforum2022/a1/AIA_Virtualization_in_KVM_RISCV_final.pdf > https://www.youtube.com/watch?v=r071dL8Z0yo > > To test this series, use QEMU v7.2 (or higher) and OpenSBI v1.2 (or higher). > > This series depends upon per-device MSI domain patches merged by Thomas (tglx) > which are available in irq/msi branch at: > git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git > > These patches can also be found in the riscv_aia_v13 branch at: > https://github.com/avpatel/linux.git > > Changes since v12: > - Rebased on Linux-6.8-rc5 > - Dropped per-device MSI domain patches which are already merged by Thomas (tglx) > - Addressed nit comments from Thomas and Clement > - Added a new patch2 to fix lock dependency warning > - Replaced local sync IPI in the IMSIC driver with per-CPU timer > - Simplified locking in the IMSIC driver to avoid lock dependency issues > - Added a dirty bitmap in the IMSIC driver to optimize per-CPU local sync loop Thanks, Anup. I will take it for a spin, with Alex' v1 of the stop_machine()/ftrace IPI fix. The defconfig change (12/13)breaks a bunch a builds: https://patchwork.kernel.org/project/linux-riscv/list/?series=827706 Download the logs here: https://github.com/linux-riscv/linux-riscv/suites/20917102160/logs?attempt=1 and grep for '##[error]' Björn