On 10/11/23 18:52, Srivatsa Vaddagiri wrote:
> Gunyah is an open-source Type-1 hypervisor, that is currently supported on ARM64
> architecture. Source code for it can be obtained from:
>
> https://github.com/quic/gunyah-hypervisor.
>
> This patch series adds support for Gunyah hypervisor via a new
> accelerator option, 'gunyah'. This patch series is based on the Linux kernel's
> Gunyah driver, which is being actively developed and not yet merged upstream
> [1].
>
> This patch series is thus *NOT YET READY* for merge. Early version of this patch
> is being published to solicit comments from Qemu community.
>
> This patch has been tested with the open-source version of Gunyah hypervisor.
> Instructions to build hypervisor and test this patch are provided in this
> patch series.
>
> Limitations:
>
> 1) SMP is not yet supported. This restriction will be removed in the next version
> of this patch series.
>
> 2) virtio-pci is not yet supported. hw/virtio/virtio-pci.c seems to support only
> KVM and would need changes to support other hypervisors. If there is any ongoing
> work in this regard, would like to build upon it and add support for Gunyah
> hypervisor.
virtio-pci does support other hypervisors; what is not yet supported is
cross-hypervisor support for IRQFD[1]. This is more of a QEMU issue
than something specific to virtio-pci. The way to fix it is to add
wrappers for kvm_irqchip_add_irqfd_notifier_gsi and
kvm_irqchip_remove_irqfd_notifier_gsi to AccelOpsClass, and move the
stub implementations in accel/stubs/kvm-stub.c to the abstract
superclass. Then you can switch the users of these KVM functions to the
AccelOpsClass wrapper.
By the way I've just posted a series to remove support for really really
old kernels, and this should remove more KVM-specific code from device
models.
Paolo
[1] a Linux eventfd (or QEMU EventNotifier) that triggers a guest
interrupt when it becomes readable. QEMU writes to the eventfd and the
kernel responds by injecting the interrupt