Message ID | 20240220060718.823229-1-apatel@ventanamicro.com (mailing list archive) |
---|---|
Headers | show |
Series | Linux RISC-V AIA Support | expand |
Anup Patel <apatel@ventanamicro.com> 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
On Tue, Feb 20, 2024 at 5:22 PM Björn Töpel <bjorn@kernel.org> wrote: > > Anup Patel <apatel@ventanamicro.com> 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]' You need to pull-in 14 dependent patches which Thomas has merged in his irq/msi branch at git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git. Regards, Anup