mbox series

[v7,0/5] Add RISC-V KVM AIA Support

Message ID 20230727102439.22554-1-yongxuan.wang@sifive.com (mailing list archive)
Headers show
Series Add RISC-V KVM AIA Support | expand

Message

Yong-Xuan Wang July 27, 2023, 10:24 a.m. UTC
This series adds support for KVM AIA in RISC-V architecture.

In order to test these patches, we require Linux with KVM AIA support which can
be found in the riscv_kvm_aia_hwaccel_v1 branch at
https://github.com/avpatel/linux.git

---
v7:
- fix compiler warning in PATCH3
- rename the "kvm-aia" property to "riscv-aia" and add it as a RISC-V KVM
accelerator property. also move this setting from PATCH5 to PATCH3 in the code.

v6:
- fix alignment
- add hart index to the error message of ISMIC address setting in PATCH3

v5:
- remove the linux-header update patch since the riscv-to-apply.next QEMU has
synced up to Linux 6.5-rc1 headers.
- create the APLIC and IMSIC FDT helper functions in PATCH1
- add the irqfd support in PATCH3
- fix the comments and refine the code

v4:
- update the linux header by the scripts/update-linux-headers.sh in PATCH1
- remove the checking for "aplic_m" before creating S-mode APLIC device in PATCH2
- add more setting when we initialize the KVM AIA chip in PATCH4
- fix msi message delivery and the APLIC devices emulation in PATCH5
- fix the AIA devices mapping with NUMA enabled in PATCH6
- add "kvm-aia" parameter to sepecify the KVM AIA mode in PATCH6

v3:
- fix typo
- tag the linux-header patch as placeholder

v2:
- rebase to riscv-to-apply.next
- update the linux header by the scripts/update-linux-headers.sh

Yong-Xuan Wang (5):
  target/riscv: support the AIA device emulation with KVM enabled
  target/riscv: check the in-kernel irqchip support
  target/riscv: Create an KVM AIA irqchip
  target/riscv: update APLIC and IMSIC to support KVM AIA
  target/riscv: select KVM AIA in riscv virt machine

 hw/intc/riscv_aplic.c    |  56 ++++--
 hw/intc/riscv_imsic.c    |  25 ++-
 hw/riscv/virt.c          | 372 ++++++++++++++++++++-------------------
 target/riscv/kvm.c       | 196 ++++++++++++++++++++-
 target/riscv/kvm_riscv.h |   4 +
 5 files changed, 454 insertions(+), 199 deletions(-)

Comments

Alistair Francis Aug. 11, 2023, 2:41 p.m. UTC | #1
On Thu, Jul 27, 2023 at 7:49 AM Yong-Xuan Wang <yongxuan.wang@sifive.com> wrote:
>
> This series adds support for KVM AIA in RISC-V architecture.
>
> In order to test these patches, we require Linux with KVM AIA support which can
> be found in the riscv_kvm_aia_hwaccel_v1 branch at
> https://github.com/avpatel/linux.git

Thanks!

Applied to riscv-to-apply.next

Alistair

>
> ---
> v7:
> - fix compiler warning in PATCH3
> - rename the "kvm-aia" property to "riscv-aia" and add it as a RISC-V KVM
> accelerator property. also move this setting from PATCH5 to PATCH3 in the code.
>
> v6:
> - fix alignment
> - add hart index to the error message of ISMIC address setting in PATCH3
>
> v5:
> - remove the linux-header update patch since the riscv-to-apply.next QEMU has
> synced up to Linux 6.5-rc1 headers.
> - create the APLIC and IMSIC FDT helper functions in PATCH1
> - add the irqfd support in PATCH3
> - fix the comments and refine the code
>
> v4:
> - update the linux header by the scripts/update-linux-headers.sh in PATCH1
> - remove the checking for "aplic_m" before creating S-mode APLIC device in PATCH2
> - add more setting when we initialize the KVM AIA chip in PATCH4
> - fix msi message delivery and the APLIC devices emulation in PATCH5
> - fix the AIA devices mapping with NUMA enabled in PATCH6
> - add "kvm-aia" parameter to sepecify the KVM AIA mode in PATCH6
>
> v3:
> - fix typo
> - tag the linux-header patch as placeholder
>
> v2:
> - rebase to riscv-to-apply.next
> - update the linux header by the scripts/update-linux-headers.sh
>
> Yong-Xuan Wang (5):
>   target/riscv: support the AIA device emulation with KVM enabled
>   target/riscv: check the in-kernel irqchip support
>   target/riscv: Create an KVM AIA irqchip
>   target/riscv: update APLIC and IMSIC to support KVM AIA
>   target/riscv: select KVM AIA in riscv virt machine
>
>  hw/intc/riscv_aplic.c    |  56 ++++--
>  hw/intc/riscv_imsic.c    |  25 ++-
>  hw/riscv/virt.c          | 372 ++++++++++++++++++++-------------------
>  target/riscv/kvm.c       | 196 ++++++++++++++++++++-
>  target/riscv/kvm_riscv.h |   4 +
>  5 files changed, 454 insertions(+), 199 deletions(-)
>
> --
> 2.17.1
>
>