Re: [PATCH v13 00/13] Linux RISC-V AIA Support

From: Anup Patel
Date: Tue Feb 20 2024 - 08:09:58 EST


On Tue, Feb 20, 2024 at 5:22 PM Björn Töpel <bjorn@kernelorg> wrote:
>
> 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]'

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