mbox series

[RFC,v1,0/4] vDPA support in qemu

Message ID 20200420093241.4238-1-lulu@redhat.com
Headers show
Series vDPA support in qemu | expand

Message

Cindy Lu April 20, 2020, 9:32 a.m. UTC
vDPA device is a device that uses a datapath which complies with the
virtio specifications with vendor specific control path. vDPA devices
can be both physically located on the hardware or emulated by software.
This RFC introduce the vDPA support in qemu

Cindy Lu (3):
  net: Introduce qemu_get_peer
  vhost-vdpa: introduce vhost-vdpa net client
  vhost-vdpa: implement vhost-vdpa backend

Jason Wang (1):
  vhost: introduce vhost_set_vring_ready method

 hw/net/vhost_net-stub.c           |   5 +
 hw/net/vhost_net.c                |  75 +++++-
 hw/net/virtio-net.c               |   9 +
 hw/virtio/Makefile.objs           |   2 +-
 hw/virtio/vhost-backend.c         |   3 +
 hw/virtio/vhost-vdpa.c            | 376 ++++++++++++++++++++++++++++++
 hw/virtio/vhost.c                 |   5 +
 hw/virtio/virtio-pci.c            |  13 ++
 hw/virtio/virtio.c                |   6 +
 include/hw/virtio/vhost-backend.h |   8 +-
 include/hw/virtio/vhost-vdpa.h    |  14 ++
 include/hw/virtio/virtio-bus.h    |   4 +
 include/net/net.h                 |   1 +
 include/net/vhost-vdpa.h          |  18 ++
 include/net/vhost_net.h           |   2 +
 net/Makefile.objs                 |   2 +-
 net/clients.h                     |   2 +
 net/net.c                         |   7 +
 net/vhost-vdpa.c                  | 211 +++++++++++++++++
 qapi/net.json                     |  21 +-
 20 files changed, 773 insertions(+), 11 deletions(-)
 create mode 100644 hw/virtio/vhost-vdpa.c
 create mode 100644 include/hw/virtio/vhost-vdpa.h
 create mode 100644 include/net/vhost-vdpa.h
 create mode 100644 net/vhost-vdpa.c

Comments

Jason Wang April 21, 2020, 4:03 a.m. UTC | #1
On 2020/4/20 下午5:32, Cindy Lu wrote:
> vDPA device is a device that uses a datapath which complies with the
> virtio specifications with vendor specific control path. vDPA devices
> can be both physically located on the hardware or emulated by software.
> This RFC introduce the vDPA support in qemu


Looks good overall, see comments inline.

And I think we need reorder the patches and split some patches into 
smaller ones.

E.g

1) qemu_get_peer
2) queue_enabled method for virtio-bus
3) queue_enabled for virtio-pci
4) set_vring_ready for vhost_ops
5) vhost_set_state for vhost_ops
6) call vhost_set_state in virtio_net_vhost_status()
7) generic vdpa support
8) vhost-vdpa net backend

Thanks


>
> Cindy Lu (3):
>    net: Introduce qemu_get_peer
>    vhost-vdpa: introduce vhost-vdpa net client
>    vhost-vdpa: implement vhost-vdpa backend
>
> Jason Wang (1):
>    vhost: introduce vhost_set_vring_ready method
>
>   hw/net/vhost_net-stub.c           |   5 +
>   hw/net/vhost_net.c                |  75 +++++-
>   hw/net/virtio-net.c               |   9 +
>   hw/virtio/Makefile.objs           |   2 +-
>   hw/virtio/vhost-backend.c         |   3 +
>   hw/virtio/vhost-vdpa.c            | 376 ++++++++++++++++++++++++++++++
>   hw/virtio/vhost.c                 |   5 +
>   hw/virtio/virtio-pci.c            |  13 ++
>   hw/virtio/virtio.c                |   6 +
>   include/hw/virtio/vhost-backend.h |   8 +-
>   include/hw/virtio/vhost-vdpa.h    |  14 ++
>   include/hw/virtio/virtio-bus.h    |   4 +
>   include/net/net.h                 |   1 +
>   include/net/vhost-vdpa.h          |  18 ++
>   include/net/vhost_net.h           |   2 +
>   net/Makefile.objs                 |   2 +-
>   net/clients.h                     |   2 +
>   net/net.c                         |   7 +
>   net/vhost-vdpa.c                  | 211 +++++++++++++++++
>   qapi/net.json                     |  21 +-
>   20 files changed, 773 insertions(+), 11 deletions(-)
>   create mode 100644 hw/virtio/vhost-vdpa.c
>   create mode 100644 include/hw/virtio/vhost-vdpa.h
>   create mode 100644 include/net/vhost-vdpa.h
>   create mode 100644 net/vhost-vdpa.c
>
Jason Wang April 21, 2020, 4:05 a.m. UTC | #2
On 2020/4/20 下午5:32, Cindy Lu wrote:
> vDPA device is a device that uses a datapath which complies with the
> virtio specifications with vendor specific control path. vDPA devices
> can be both physically located on the hardware or emulated by software.
> This RFC introduce the vDPA support in qemu


And please mention the TODO list. E.g:

1) vIOMMU support
2) software assisted live migration

Thanks
Cindy Lu April 21, 2020, 9:47 a.m. UTC | #3
Thanks Jason, I will fix these problems and send new version soon

On Tue, Apr 21, 2020 at 12:05 PM Jason Wang <jasowang@redhat.com> wrote:

>
> On 2020/4/20 下午5:32, Cindy Lu wrote:
> > vDPA device is a device that uses a datapath which complies with the
> > virtio specifications with vendor specific control path. vDPA devices
> > can be both physically located on the hardware or emulated by software.
> > This RFC introduce the vDPA support in qemu
>
>
> And please mention the TODO list. E.g:
>
> 1) vIOMMU support
> 2) software assisted live migration
>
> Thanks
>
>