On Sat, Oct 29, 2022 at 04:27:45PM +0800, Cindy Lu wrote:
> These patches introduced the support for configure interrupt
>
> These codes are tested on x86_64 and aarch64 platforms.
> the test scenario is based on vp-vdpa/vdpa_sim /virtio net device, with
> the irqfd and without irqfd.
Given this caused failures in vhost-user, I'd like to see vhost and
vhost-user tested too.
> Tested in virtio-pci bus and virtio-mmio bus
>
>
> Change in v2:
> Add support for virtio-mmio bus
> active the notifier while the backend support configure interrupt
> misc fixes from v1
>
> Change in v3
> fix the coding style problems
>
> Change in v4
> misc fixes from v3
> merge the set_config_notifier to set_guest_notifier
> when vdpa start, check the feature by VIRTIO_NET_F_STATUS
>
> Change in v5
> misc fixes from v4
> split the code to introduce configure interrupt type and the callback function
> will init the configure interrupt in all virtio-pci and virtio-mmio bus, but will
> only active while using vhost-vdpa driver
>
> Change in v6
> misc fixes from v5
> decouple vq from interrupt setting and misc process
> fix the bug in virtio_net_handle_rx
>
> Change in v7
> misc fixes from v6
> decouple vq from interrupt setting and misc process
> decouple vq from vector use/release process
> decouple vq from set notifier fd handler process
> move config_notifier and masked_config_notifier to VirtIODevice
> fix the bug in virtio_net_handle_rx, add more information
> add VIRTIO_CONFIG_IRQ_IDX as the queue number for configure interrupt
>
> Change in v8
> misc fixes from v7
> decouple vq from interrupt setting and misc process
> decouple vq from vector use/release process
> decouple vq from set notifier fd handler process
> move the vhost configure interrupt to vhost_net
>
> Change in v9
> misc fixes from v8
> address the comments from v8
>
> Change in v10
> fix the hang issue in qtest
> address the comments from v9
>
> Change in v11
> fix the crash in aarch64 plateform.
> fix the crash upstream reported
>
> Change in v12
> fix the typo and the comments
>
> changes in v13
> re-send the patches by git-publish
>
> changes in v14
> rebased the code based on upstream
>
> changes in v15
> rebased the code based on upstream
>
> changes in v16
> resend the patch, seems there not send successfully
>
> changes in v18
> fix the crash in qtest
> Because hw/virtio/vhost-user-gpio.c is a new device,So I missed
> to add the VIRTIO_CONFIG_IRQ_IDX check in notifier_mask
>
> Cindy Lu (10):
> virtio: introduce macro VIRTIO_CONFIG_IRQ_IDX
> virtio-pci: decouple notifier from interrupt process
> virtio-pci: decouple the single vector from the interrupt process
> vhost: introduce new VhostOps vhost_set_config_call
> vhost-vdpa: add support for config interrupt
> virtio: add support for configure interrupt
> vhost: add support for configure interrupt
> virtio-net: add support for configure interrupt
> virtio-mmio: add support for configure interrupt
> virtio-pci: add support for configure interrupt
>
> hw/display/vhost-user-gpu.c | 18 ++
> hw/net/vhost_net.c | 9 +
> hw/net/virtio-net.c | 22 ++-
> hw/virtio/trace-events | 1 +
> hw/virtio/vhost-user-fs.c | 18 ++
> hw/virtio/vhost-user-gpio.c | 10 ++
> hw/virtio/vhost-vdpa.c | 8 +
> hw/virtio/vhost-vsock-common.c | 18 ++
> hw/virtio/vhost.c | 78 +++++++-
> hw/virtio/virtio-crypto.c | 18 ++
> hw/virtio/virtio-mmio.c | 27 +++
> hw/virtio/virtio-pci.c | 283 +++++++++++++++++++++---------
> hw/virtio/virtio.c | 29 +++
> include/hw/virtio/vhost-backend.h | 3 +
> include/hw/virtio/vhost.h | 4 +
> include/hw/virtio/virtio-pci.h | 4 +-
> include/hw/virtio/virtio.h | 7 +
> include/net/vhost_net.h | 2 +
> 18 files changed, 472 insertions(+), 87 deletions(-)
>
> --
> 2.34.3