From: Jason Wang <jasowang@redhat.com> To: "Eugenio Pérez" <eperezma@redhat.com> Cc: Laurent Vivier <lvivier@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, qemu-devel <qemu-devel@nongnu.org>, Markus Armbruster <armbru@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Xiao W Wang <xiao.w.wang@intel.com>, Harpreet Singh Anand <hanand@xilinx.com>, Eli Cohen <eli@mellanox.com>, Paolo Bonzini <pbonzini@redhat.com>, Eric Blake <eblake@redhat.com>, virtualization <virtualization@lists.linux-foundation.org>, Parav Pandit <parav@mellanox.com> Subject: Re: [RFC PATCH v5 03/26] virtio: Add VIRTIO_F_QUEUE_STATE Date: Tue, 2 Nov 2021 12:57:28 +0800 [thread overview] Message-ID: <CACGkMEsa=iWwN3CkO5JmiB-2BU5T2HvBi=h48qApdktoFCe4Vw@mail.gmail.com> (raw) In-Reply-To: <20211029183525.1776416-4-eperezma@redhat.com> On Sat, Oct 30, 2021 at 2:36 AM Eugenio Pérez <eperezma@redhat.com> wrote: > > Implementation of RFC of device state capability: > https://lists.oasis-open.org/archives/virtio-comment/202012/msg00005.html Considering this still requires time to be done, we need to think of a way to go without this. Thanks > > With this capability, vdpa device can reset it's index so it can start > consuming from guest after disabling shadow virtqueue (SVQ), with state > not 0. > > The use case is to test SVQ with virtio-pci vdpa (vp_vdpa) with nested > virtualization. Spawning a L0 qemu with a virtio-net device, use > vp_vdpa driver to handle it in the guest, and then spawn a L1 qemu using > that vdpa device. When L1 qemu calls device to set a new state though > vdpa ioctl, vp_vdpa should set each queue state though virtio > VIRTIO_PCI_COMMON_Q_AVAIL_STATE. > > Since this is only for testing vhost-vdpa, it's added here before of > proposing to kernel code. No effort is done for checking that device > can actually change its state, its layout, or if the device even > supports to change state at all. These will be added in the future. > > Also, a modified version of vp_vdpa that allows to set these in PCI > config is needed. > > TODO: Check for feature enabled and split in virtio pci config > > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > --- > hw/virtio/virtio-pci.h | 1 + > include/hw/virtio/virtio.h | 4 +++- > include/standard-headers/linux/virtio_config.h | 3 +++ > include/standard-headers/linux/virtio_pci.h | 2 ++ > hw/virtio/virtio-pci.c | 9 +++++++++ > 5 files changed, 18 insertions(+), 1 deletion(-) > > diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h > index 2446dcd9ae..019badbd7c 100644 > --- a/hw/virtio/virtio-pci.h > +++ b/hw/virtio/virtio-pci.h > @@ -120,6 +120,7 @@ typedef struct VirtIOPCIQueue { > uint32_t desc[2]; > uint32_t avail[2]; > uint32_t used[2]; > + uint16_t state; > } VirtIOPCIQueue; > > struct VirtIOPCIProxy { > diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h > index 8bab9cfb75..5fe575b8f0 100644 > --- a/include/hw/virtio/virtio.h > +++ b/include/hw/virtio/virtio.h > @@ -289,7 +289,9 @@ typedef struct VirtIORNGConf VirtIORNGConf; > DEFINE_PROP_BIT64("iommu_platform", _state, _field, \ > VIRTIO_F_IOMMU_PLATFORM, false), \ > DEFINE_PROP_BIT64("packed", _state, _field, \ > - VIRTIO_F_RING_PACKED, false) > + VIRTIO_F_RING_PACKED, false), \ > + DEFINE_PROP_BIT64("save_restore_q_state", _state, _field, \ > + VIRTIO_F_QUEUE_STATE, true) > > hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n); > bool virtio_queue_enabled_legacy(VirtIODevice *vdev, int n); > diff --git a/include/standard-headers/linux/virtio_config.h b/include/standard-headers/linux/virtio_config.h > index 22e3a85f67..59fad3eb45 100644 > --- a/include/standard-headers/linux/virtio_config.h > +++ b/include/standard-headers/linux/virtio_config.h > @@ -90,4 +90,7 @@ > * Does the device support Single Root I/O Virtualization? > */ > #define VIRTIO_F_SR_IOV 37 > + > +/* Device support save and restore virtqueue state */ > +#define VIRTIO_F_QUEUE_STATE 40 > #endif /* _LINUX_VIRTIO_CONFIG_H */ > diff --git a/include/standard-headers/linux/virtio_pci.h b/include/standard-headers/linux/virtio_pci.h > index db7a8e2fcb..c8d9802a87 100644 > --- a/include/standard-headers/linux/virtio_pci.h > +++ b/include/standard-headers/linux/virtio_pci.h > @@ -164,6 +164,7 @@ struct virtio_pci_common_cfg { > uint32_t queue_avail_hi; /* read-write */ > uint32_t queue_used_lo; /* read-write */ > uint32_t queue_used_hi; /* read-write */ > + uint16_t queue_avail_state; /* read-write */ > }; > > /* Fields in VIRTIO_PCI_CAP_PCI_CFG: */ > @@ -202,6 +203,7 @@ struct virtio_pci_cfg_cap { > #define VIRTIO_PCI_COMMON_Q_AVAILHI 44 > #define VIRTIO_PCI_COMMON_Q_USEDLO 48 > #define VIRTIO_PCI_COMMON_Q_USEDHI 52 > +#define VIRTIO_PCI_COMMON_Q_AVAIL_STATE 56 > > #endif /* VIRTIO_PCI_NO_MODERN */ > > diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c > index 750aa47ec1..d7bb549033 100644 > --- a/hw/virtio/virtio-pci.c > +++ b/hw/virtio/virtio-pci.c > @@ -1244,6 +1244,9 @@ static uint64_t virtio_pci_common_read(void *opaque, hwaddr addr, > case VIRTIO_PCI_COMMON_Q_USEDHI: > val = proxy->vqs[vdev->queue_sel].used[1]; > break; > + case VIRTIO_PCI_COMMON_Q_AVAIL_STATE: > + val = virtio_queue_get_last_avail_idx(vdev, vdev->queue_sel); > + break; > default: > val = 0; > } > @@ -1330,6 +1333,8 @@ static void virtio_pci_common_write(void *opaque, hwaddr addr, > proxy->vqs[vdev->queue_sel].avail[0], > ((uint64_t)proxy->vqs[vdev->queue_sel].used[1]) << 32 | > proxy->vqs[vdev->queue_sel].used[0]); > + virtio_queue_set_last_avail_idx(vdev, vdev->queue_sel, > + proxy->vqs[vdev->queue_sel].state); > proxy->vqs[vdev->queue_sel].enabled = 1; > } else { > virtio_error(vdev, "wrong value for queue_enable %"PRIx64, val); > @@ -1353,6 +1358,9 @@ static void virtio_pci_common_write(void *opaque, hwaddr addr, > case VIRTIO_PCI_COMMON_Q_USEDHI: > proxy->vqs[vdev->queue_sel].used[1] = val; > break; > + case VIRTIO_PCI_COMMON_Q_AVAIL_STATE: > + proxy->vqs[vdev->queue_sel].state = val; > + break; > default: > break; > } > @@ -1951,6 +1959,7 @@ static void virtio_pci_reset(DeviceState *qdev) > proxy->vqs[i].desc[0] = proxy->vqs[i].desc[1] = 0; > proxy->vqs[i].avail[0] = proxy->vqs[i].avail[1] = 0; > proxy->vqs[i].used[0] = proxy->vqs[i].used[1] = 0; > + proxy->vqs[i].state = 0; > } > > if (pci_is_express(dev)) { > -- > 2.27.0 > _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
WARNING: multiple messages have this Message-ID (diff)
From: Jason Wang <jasowang@redhat.com> To: "Eugenio Pérez" <eperezma@redhat.com> Cc: Laurent Vivier <lvivier@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Juan Quintela <quintela@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, qemu-devel <qemu-devel@nongnu.org>, Peter Xu <peterx@redhat.com>, Markus Armbruster <armbru@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Xiao W Wang <xiao.w.wang@intel.com>, Harpreet Singh Anand <hanand@xilinx.com>, Eli Cohen <eli@mellanox.com>, Paolo Bonzini <pbonzini@redhat.com>, Stefano Garzarella <sgarzare@redhat.com>, Eric Blake <eblake@redhat.com>, virtualization <virtualization@lists.linux-foundation.org>, Parav Pandit <parav@mellanox.com> Subject: Re: [RFC PATCH v5 03/26] virtio: Add VIRTIO_F_QUEUE_STATE Date: Tue, 2 Nov 2021 12:57:28 +0800 [thread overview] Message-ID: <CACGkMEsa=iWwN3CkO5JmiB-2BU5T2HvBi=h48qApdktoFCe4Vw@mail.gmail.com> (raw) In-Reply-To: <20211029183525.1776416-4-eperezma@redhat.com> On Sat, Oct 30, 2021 at 2:36 AM Eugenio Pérez <eperezma@redhat.com> wrote: > > Implementation of RFC of device state capability: > https://lists.oasis-open.org/archives/virtio-comment/202012/msg00005.html Considering this still requires time to be done, we need to think of a way to go without this. Thanks > > With this capability, vdpa device can reset it's index so it can start > consuming from guest after disabling shadow virtqueue (SVQ), with state > not 0. > > The use case is to test SVQ with virtio-pci vdpa (vp_vdpa) with nested > virtualization. Spawning a L0 qemu with a virtio-net device, use > vp_vdpa driver to handle it in the guest, and then spawn a L1 qemu using > that vdpa device. When L1 qemu calls device to set a new state though > vdpa ioctl, vp_vdpa should set each queue state though virtio > VIRTIO_PCI_COMMON_Q_AVAIL_STATE. > > Since this is only for testing vhost-vdpa, it's added here before of > proposing to kernel code. No effort is done for checking that device > can actually change its state, its layout, or if the device even > supports to change state at all. These will be added in the future. > > Also, a modified version of vp_vdpa that allows to set these in PCI > config is needed. > > TODO: Check for feature enabled and split in virtio pci config > > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > --- > hw/virtio/virtio-pci.h | 1 + > include/hw/virtio/virtio.h | 4 +++- > include/standard-headers/linux/virtio_config.h | 3 +++ > include/standard-headers/linux/virtio_pci.h | 2 ++ > hw/virtio/virtio-pci.c | 9 +++++++++ > 5 files changed, 18 insertions(+), 1 deletion(-) > > diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h > index 2446dcd9ae..019badbd7c 100644 > --- a/hw/virtio/virtio-pci.h > +++ b/hw/virtio/virtio-pci.h > @@ -120,6 +120,7 @@ typedef struct VirtIOPCIQueue { > uint32_t desc[2]; > uint32_t avail[2]; > uint32_t used[2]; > + uint16_t state; > } VirtIOPCIQueue; > > struct VirtIOPCIProxy { > diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h > index 8bab9cfb75..5fe575b8f0 100644 > --- a/include/hw/virtio/virtio.h > +++ b/include/hw/virtio/virtio.h > @@ -289,7 +289,9 @@ typedef struct VirtIORNGConf VirtIORNGConf; > DEFINE_PROP_BIT64("iommu_platform", _state, _field, \ > VIRTIO_F_IOMMU_PLATFORM, false), \ > DEFINE_PROP_BIT64("packed", _state, _field, \ > - VIRTIO_F_RING_PACKED, false) > + VIRTIO_F_RING_PACKED, false), \ > + DEFINE_PROP_BIT64("save_restore_q_state", _state, _field, \ > + VIRTIO_F_QUEUE_STATE, true) > > hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n); > bool virtio_queue_enabled_legacy(VirtIODevice *vdev, int n); > diff --git a/include/standard-headers/linux/virtio_config.h b/include/standard-headers/linux/virtio_config.h > index 22e3a85f67..59fad3eb45 100644 > --- a/include/standard-headers/linux/virtio_config.h > +++ b/include/standard-headers/linux/virtio_config.h > @@ -90,4 +90,7 @@ > * Does the device support Single Root I/O Virtualization? > */ > #define VIRTIO_F_SR_IOV 37 > + > +/* Device support save and restore virtqueue state */ > +#define VIRTIO_F_QUEUE_STATE 40 > #endif /* _LINUX_VIRTIO_CONFIG_H */ > diff --git a/include/standard-headers/linux/virtio_pci.h b/include/standard-headers/linux/virtio_pci.h > index db7a8e2fcb..c8d9802a87 100644 > --- a/include/standard-headers/linux/virtio_pci.h > +++ b/include/standard-headers/linux/virtio_pci.h > @@ -164,6 +164,7 @@ struct virtio_pci_common_cfg { > uint32_t queue_avail_hi; /* read-write */ > uint32_t queue_used_lo; /* read-write */ > uint32_t queue_used_hi; /* read-write */ > + uint16_t queue_avail_state; /* read-write */ > }; > > /* Fields in VIRTIO_PCI_CAP_PCI_CFG: */ > @@ -202,6 +203,7 @@ struct virtio_pci_cfg_cap { > #define VIRTIO_PCI_COMMON_Q_AVAILHI 44 > #define VIRTIO_PCI_COMMON_Q_USEDLO 48 > #define VIRTIO_PCI_COMMON_Q_USEDHI 52 > +#define VIRTIO_PCI_COMMON_Q_AVAIL_STATE 56 > > #endif /* VIRTIO_PCI_NO_MODERN */ > > diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c > index 750aa47ec1..d7bb549033 100644 > --- a/hw/virtio/virtio-pci.c > +++ b/hw/virtio/virtio-pci.c > @@ -1244,6 +1244,9 @@ static uint64_t virtio_pci_common_read(void *opaque, hwaddr addr, > case VIRTIO_PCI_COMMON_Q_USEDHI: > val = proxy->vqs[vdev->queue_sel].used[1]; > break; > + case VIRTIO_PCI_COMMON_Q_AVAIL_STATE: > + val = virtio_queue_get_last_avail_idx(vdev, vdev->queue_sel); > + break; > default: > val = 0; > } > @@ -1330,6 +1333,8 @@ static void virtio_pci_common_write(void *opaque, hwaddr addr, > proxy->vqs[vdev->queue_sel].avail[0], > ((uint64_t)proxy->vqs[vdev->queue_sel].used[1]) << 32 | > proxy->vqs[vdev->queue_sel].used[0]); > + virtio_queue_set_last_avail_idx(vdev, vdev->queue_sel, > + proxy->vqs[vdev->queue_sel].state); > proxy->vqs[vdev->queue_sel].enabled = 1; > } else { > virtio_error(vdev, "wrong value for queue_enable %"PRIx64, val); > @@ -1353,6 +1358,9 @@ static void virtio_pci_common_write(void *opaque, hwaddr addr, > case VIRTIO_PCI_COMMON_Q_USEDHI: > proxy->vqs[vdev->queue_sel].used[1] = val; > break; > + case VIRTIO_PCI_COMMON_Q_AVAIL_STATE: > + proxy->vqs[vdev->queue_sel].state = val; > + break; > default: > break; > } > @@ -1951,6 +1959,7 @@ static void virtio_pci_reset(DeviceState *qdev) > proxy->vqs[i].desc[0] = proxy->vqs[i].desc[1] = 0; > proxy->vqs[i].avail[0] = proxy->vqs[i].avail[1] = 0; > proxy->vqs[i].used[0] = proxy->vqs[i].used[1] = 0; > + proxy->vqs[i].state = 0; > } > > if (pci_is_express(dev)) { > -- > 2.27.0 >
next prev parent reply other threads:[~2021-11-02 4:57 UTC|newest] Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-10-29 18:34 [RFC PATCH v5 00/26] vDPA shadow virtqueue Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 01/26] util: Make some iova_tree parameters const Eugenio Pérez 2021-10-31 18:59 ` Juan Quintela 2021-10-31 18:59 ` Juan Quintela 2021-11-01 8:20 ` Eugenio Perez Martin 2021-10-29 18:35 ` [RFC PATCH v5 02/26] vhost: Fix last queue index of devices with no cvq Eugenio Pérez 2021-11-02 7:25 ` Juan Quintela 2021-11-02 7:25 ` Juan Quintela 2021-11-02 7:32 ` Michael S. Tsirkin 2021-11-02 7:32 ` Michael S. Tsirkin 2021-11-02 7:39 ` Juan Quintela 2021-11-02 7:39 ` Juan Quintela 2021-11-02 8:34 ` Eugenio Perez Martin 2021-11-02 7:40 ` Juan Quintela 2021-11-02 7:40 ` Juan Quintela 2021-10-29 18:35 ` [RFC PATCH v5 03/26] virtio: Add VIRTIO_F_QUEUE_STATE Eugenio Pérez 2021-11-02 4:57 ` Jason Wang [this message] 2021-11-02 4:57 ` Jason Wang 2021-10-29 18:35 ` [RFC PATCH v5 04/26] virtio-net: Honor VIRTIO_CONFIG_S_DEVICE_STOPPED Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 05/26] vhost: Add x-vhost-set-shadow-vq qmp Eugenio Pérez 2021-11-02 7:36 ` Juan Quintela 2021-11-02 7:36 ` Juan Quintela 2021-11-02 8:29 ` Eugenio Perez Martin 2021-10-29 18:35 ` [RFC PATCH v5 06/26] vhost: Add VhostShadowVirtqueue Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 07/26] vdpa: Save kick_fd in vhost-vdpa Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 08/26] vdpa: Add vhost_svq_get_dev_kick_notifier Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 09/26] vdpa: Add vhost_svq_set_svq_kick_fd Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 10/26] vhost: Add Shadow VirtQueue kick forwarding capabilities Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 11/26] vhost: Handle host notifiers in SVQ Eugenio Pérez 2021-11-02 7:54 ` Jason Wang 2021-11-02 7:54 ` Jason Wang 2021-11-02 8:46 ` Eugenio Perez Martin [not found] ` <CACGkMEvOxUMo1WA4tUfDhw+FOJVW87JJGPw=U3JvUSQTU_ogWQ@mail.gmail.com> [not found] ` <CAJaqyWd4DQwRSL5StCft+3-uq12TW5x1o4DN_YW97D0JzOr2XQ@mail.gmail.com> 2021-11-04 2:31 ` Jason Wang 2021-11-04 2:31 ` Jason Wang 2021-10-29 18:35 ` [RFC PATCH v5 12/26] vhost: Route guest->host notification through shadow virtqueue Eugenio Pérez 2021-11-02 5:36 ` Jason Wang 2021-11-02 5:36 ` Jason Wang 2021-11-02 7:35 ` Eugenio Perez Martin 2021-10-29 18:35 ` [RFC PATCH v5 13/26] Add vhost_svq_get_svq_call_notifier Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 14/26] Add vhost_svq_set_guest_call_notifier Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 15/26] vdpa: Save call_fd in vhost-vdpa Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 16/26] vhost-vdpa: Take into account SVQ in vhost_vdpa_set_vring_call Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 17/26] vhost: Route host->guest notification through shadow virtqueue Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 18/26] virtio: Add vhost_shadow_vq_get_vring_addr Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 19/26] vdpa: ack VIRTIO_F_QUEUE_STATE if device supports it Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 20/26] vhost: Add vhost_svq_valid_device_features to shadow vq Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 21/26] vhost: Add vhost_svq_valid_guest_features " Eugenio Pérez 2021-11-02 5:25 ` Jason Wang 2021-11-02 5:25 ` Jason Wang 2021-11-02 8:09 ` Eugenio Perez Martin 2021-11-03 3:18 ` Jason Wang 2021-11-03 3:18 ` Jason Wang 2021-11-03 7:43 ` Eugenio Perez Martin 2021-11-04 2:34 ` Jason Wang 2021-11-04 2:34 ` Jason Wang 2021-10-29 18:35 ` [RFC PATCH v5 22/26] vhost: Shadow virtqueue buffers forwarding Eugenio Pérez 2021-11-02 7:59 ` Jason Wang 2021-11-02 7:59 ` Jason Wang 2021-11-02 10:22 ` Eugenio Perez Martin 2021-10-29 18:35 ` [RFC PATCH v5 23/26] util: Add iova_tree_alloc Eugenio Pérez 2021-11-02 6:35 ` Jason Wang 2021-11-02 6:35 ` Jason Wang 2021-11-02 8:28 ` Eugenio Perez Martin 2021-11-03 3:10 ` Jason Wang 2021-11-03 3:10 ` Jason Wang 2021-11-03 7:41 ` Eugenio Perez Martin 2021-11-23 6:56 ` Peter Xu 2021-11-23 6:56 ` Peter Xu 2021-11-23 7:08 ` Eugenio Perez Martin 2022-01-27 8:57 ` Peter Xu 2022-01-27 8:57 ` Peter Xu 2022-01-27 10:09 ` Eugenio Perez Martin 2022-01-27 11:25 ` Peter Xu 2022-01-27 11:25 ` Peter Xu 2022-01-27 11:45 ` Eugenio Perez Martin 2021-10-29 18:35 ` [RFC PATCH v5 24/26] vhost: Add VhostIOVATree Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 25/26] vhost: Use a tree to store memory mappings Eugenio Pérez 2021-10-29 18:35 ` [RFC PATCH v5 26/26] vdpa: Add custom IOTLB translations to SVQ Eugenio Pérez 2021-11-01 9:06 ` [RFC PATCH v5 00/26] vDPA shadow virtqueue Eugenio Perez Martin 2021-11-02 4:25 ` Jason Wang 2021-11-02 4:25 ` Jason Wang 2021-11-02 11:21 ` Eugenio Perez Martin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CACGkMEsa=iWwN3CkO5JmiB-2BU5T2HvBi=h48qApdktoFCe4Vw@mail.gmail.com' \ --to=jasowang@redhat.com \ --cc=armbru@redhat.com \ --cc=eblake@redhat.com \ --cc=ehabkost@redhat.com \ --cc=eli@mellanox.com \ --cc=eperezma@redhat.com \ --cc=hanand@xilinx.com \ --cc=lvivier@redhat.com \ --cc=mst@redhat.com \ --cc=parav@mellanox.com \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=richard.henderson@linaro.org \ --cc=stefanha@redhat.com \ --cc=virtualization@lists.linux-foundation.org \ --cc=xiao.w.wang@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.