[PATCH v3 00/10] RISC-V KVM in-kernel AIA irqchip

Anup Patel anup at brainfault.org
Sun Jun 18 09:02:12 PDT 2023


On Thu, Jun 15, 2023 at 1:04 PM Anup Patel <apatel at ventanamicro.com> wrote:
>
> This series adds in-kernel AIA irqchip to KVM RISC-V which trap-n-emulate
> IMSIC and APLIC MSI-mode for Guest. The APLIC MSI-mode trap-n-emulate is
> optional so KVM user space can emulate APLIC entirely in user space.
>
> The use of IMSIC HW guest files to accelerate IMSIC virtualization will be
> done as separate series since this depends on AIA irqchip drivers to be
> upstreamed. This series has no dependency on the AIA irqchip drivers.
>
> There is also a KVM AIA irq-bypass (or device MSI virtualization) series
> under development which depends on this series and upcoming IOMMU driver
> series.
>
> These patches (or this series) can also be found in the
> riscv_kvm_aia_irqchip_v3 branch at: https://github.com/avpatel/linux.git
>
> Changes since v2:
>  - Added KVM_CAP_IRQCHIP in PATCH5
>  - Fix check for KVM_DEV_RISCV_AIA_CONFIG_IDS write in PATCH6
>  - Fix APLIC_IRQ_STATE_ENPEND usage in PATCH7
>
> Changes since v1:
>  - Rebased on Linux-6.4-rc6
>  - Addressed Atish's comment in PATCH6
>  - Added comments in arch/riscv/include/uapi/asm/kvm.h about APLIC and
>    IMSIC device attribute type
>
> Anup Patel (10):
>   RISC-V: KVM: Implement guest external interrupt line management
>   RISC-V: KVM: Add IMSIC related defines
>   RISC-V: KVM: Add APLIC related defines
>   RISC-V: KVM: Set kvm_riscv_aia_nr_hgei to zero
>   RISC-V: KVM: Skeletal in-kernel AIA irqchip support
>   RISC-V: KVM: Implement device interface for AIA irqchip
>   RISC-V: KVM: Add in-kernel emulation of AIA APLIC
>   RISC-V: KVM: Expose APLIC registers as attributes of AIA irqchip
>   RISC-V: KVM: Add in-kernel virtualization of AIA IMSIC
>   RISC-V: KVM: Expose IMSIC registers as attributes of AIA irqchip

Queued this series for 6.5

Regards,
Anup

>
>  arch/riscv/include/asm/kvm_aia.h       |  107 ++-
>  arch/riscv/include/asm/kvm_aia_aplic.h |   58 ++
>  arch/riscv/include/asm/kvm_aia_imsic.h |   38 +
>  arch/riscv/include/asm/kvm_host.h      |    4 +
>  arch/riscv/include/uapi/asm/kvm.h      |   72 ++
>  arch/riscv/kvm/Kconfig                 |    4 +
>  arch/riscv/kvm/Makefile                |    3 +
>  arch/riscv/kvm/aia.c                   |  274 +++++-
>  arch/riscv/kvm/aia_aplic.c             |  619 ++++++++++++++
>  arch/riscv/kvm/aia_device.c            |  673 +++++++++++++++
>  arch/riscv/kvm/aia_imsic.c             | 1083 ++++++++++++++++++++++++
>  arch/riscv/kvm/main.c                  |    3 +-
>  arch/riscv/kvm/vcpu.c                  |    2 +
>  arch/riscv/kvm/vm.c                    |  118 +++
>  include/uapi/linux/kvm.h               |    2 +
>  15 files changed, 3027 insertions(+), 33 deletions(-)
>  create mode 100644 arch/riscv/include/asm/kvm_aia_aplic.h
>  create mode 100644 arch/riscv/include/asm/kvm_aia_imsic.h
>  create mode 100644 arch/riscv/kvm/aia_aplic.c
>  create mode 100644 arch/riscv/kvm/aia_device.c
>  create mode 100644 arch/riscv/kvm/aia_imsic.c
>
> --
> 2.34.1
>
>
> --
> kvm-riscv mailing list
> kvm-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kvm-riscv



More information about the linux-riscv mailing list