From: longpeng2--- via <qemu-devel@nongnu.org>
To: Stefano Garzarella <sgarzare@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>,
"jasowang@redhat.com" <jasowang@redhat.com>,
"mst@redhat.com" <mst@redhat.com>,
"parav@nvidia.com" <parav@nvidia.com>,
"xieyongji@bytedance.com" <xieyongji@bytedance.com>,
Yechuan <yechuan@huawei.com>,
"Gonglei (Arei)" <arei.gonglei@huawei.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: RE: [RFC] vhost-vdpa-net: add vhost-vdpa-net host device support
Date: Sat, 11 Dec 2021 04:11:04 +0000 [thread overview]
Message-ID: <9615545c46e54943b40e730a3535d550@huawei.com> (raw)
In-Reply-To: <20211209155522.ysgig3bshwtykoxr@steredhat>
> -----Original Message-----
> From: Stefano Garzarella [mailto:sgarzare@redhat.com]
> Sent: Thursday, December 9, 2021 11:55 PM
> To: Longpeng (Mike, Cloud Infrastructure Service Product Dept.)
> <longpeng2@huawei.com>
> Cc: Stefan Hajnoczi <stefanha@redhat.com>; jasowang@redhat.com; mst@redhat.com;
> parav@nvidia.com; xieyongji@bytedance.com; Yechuan <yechuan@huawei.com>;
> Gonglei (Arei) <arei.gonglei@huawei.com>; qemu-devel@nongnu.org
> Subject: Re: [RFC] vhost-vdpa-net: add vhost-vdpa-net host device support
>
> On Thu, Dec 09, 2021 at 09:16:58AM +0000, Stefan Hajnoczi wrote:
> >On Wed, Dec 08, 2021 at 01:20:10PM +0800, Longpeng(Mike) wrote:
> >> From: Longpeng <longpeng2@huawei.com>
> >>
> >> Hi guys,
> >>
> >> This patch introduces vhost-vdpa-net device, which is inspired
> >> by vhost-user-blk and the proposal of vhost-vdpa-blk device [1].
> >>
> >> I've tested this patch on Huawei's offload card:
> >> ./x86_64-softmmu/qemu-system-x86_64 \
> >> -device vhost-vdpa-net-pci,vdpa-dev=/dev/vhost-vdpa-0
> >>
> >> For virtio hardware offloading, the most important requirement for us
> >> is to support live migration between offloading cards from different
> >> vendors, the combination of netdev and virtio-net seems too heavy, we
> >> prefer a lightweight way.
> >>
> >> Maybe we could support both in the future ? Such as:
> >>
> >> * Lightweight
> >> Net: vhost-vdpa-net
> >> Storage: vhost-vdpa-blk
> >>
> >> * Heavy but more powerful
> >> Net: netdev + virtio-net + vhost-vdpa
> >> Storage: bdrv + virtio-blk + vhost-vdpa
> >>
> >> [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg797569.html
> >
> >Stefano presented a plan for vdpa-blk at KVM Forum 2021:
> >https://kvmforum2021.sched.com/event/ke3a/vdpa-blk-unified-hardware-and-so
> ftware-offload-for-virtio-blk-stefano-garzarella-red-hat
> >
> >It's closer to today's virtio-net + vhost-net approach than the
> >vhost-vdpa-blk device you have mentioned. The idea is to treat vDPA as
> >an offload feature rather than a completely separate code path that
> >needs to be maintained and tested. That way QEMU's block layer features
> >and live migration work with vDPA devices and re-use the virtio-blk
> >code. The key functionality that has not been implemented yet is a "fast
> >path" mechanism that allows the QEMU virtio-blk device's virtqueue to be
> >offloaded to vDPA.
> >
> >The unified vdpa-blk architecture should deliver the same performance
> >as the vhost-vdpa-blk device you mentioned but with more features, so I
> >wonder what aspects of the vhost-vdpa-blk idea are important to you?
> >
> >QEMU already has vhost-user-blk, which takes a similar approach as the
> >vhost-vdpa-blk device you are proposing. I'm not against the
> >vhost-vdpa-blk approach in priciple, but would like to understand your
> >requirements and see if there is a way to collaborate on one vdpa-blk
> >implementation instead of dividing our efforts between two.
>
> Waiting for the aspects that Stefan asked, I add some details about the
> plan for vdpa-blk.
>
> Currently I'm working on the in-kernel software device. In the next
> months I hope to start working on the QEMU part. Anyway that part could
> go in parallel with the in-kernel device, so if you are interested we
> can collaborate.
>
The work on QEMU part means supporting the vdpa in BlockDriver and virtio-blk?
In fact, I wanted to support the vdpa in QEMU block layer before I sent this
RFC, because the net part uses netdev + virtio-net while the storage part uses
vhost-vdpa-blk (from Yongji) looks like a strange combination.
But I found enable vdpa in QEMU block layer would take more time and some
features (e.g. snapshot, IO throttling) from the QEMU block layer are not needed
in our hardware offloading case, so I turned to develop the "vhost-vdpa-net",
maybe the combination of vhost-vdpa-net and vhost-vdpa-blk is congruous.
> Having only the unified vdpa-blk architecture would allow us to simplify
> the management layers and avoid duplicate code, but it takes more time
> to develop compared to vhost-vdpa-blk. So if vdpa-blk support in QEMU is
> urgent, I could understand the need to add vhost-vdpa-blk now.
>
I prefer a way that can support vdpa devices (not only net and storage, but also
other device types) quickly in hardware offloading case, maybe it would decreases
the universalism, but it could be an alternative to some users.
> Let me know if you want more details about the unified vdpa-blk
> architecture.
>
> Thanks,
> Stefano
next prev parent reply other threads:[~2021-12-11 4:14 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-08 5:20 [RFC] vhost-vdpa-net: add vhost-vdpa-net host device support Longpeng(Mike) via
2021-12-08 6:27 ` Jason Wang
2021-12-11 5:23 ` longpeng2--- via
2021-12-13 3:23 ` Jason Wang
2021-12-14 0:15 ` longpeng2--- via
2021-12-08 19:05 ` Michael S. Tsirkin
2021-12-11 2:43 ` longpeng2--- via
2021-12-09 9:16 ` Stefan Hajnoczi
2021-12-09 15:55 ` Stefano Garzarella
2021-12-11 4:11 ` longpeng2--- via [this message]
2021-12-13 11:10 ` Stefano Garzarella
2021-12-13 15:16 ` Stefan Hajnoczi
2021-12-14 1:44 ` longpeng2--- via
2021-12-14 13:03 ` Stefan Hajnoczi
2021-12-11 3:00 ` longpeng2--- via
2021-12-12 9:30 ` Michael S. Tsirkin
2021-12-13 2:47 ` Jason Wang
2021-12-13 10:58 ` Stefano Garzarella
2021-12-13 15:14 ` Stefan Hajnoczi
2021-12-14 2:22 ` Jason Wang
2021-12-14 13:11 ` Stefan Hajnoczi
2021-12-15 3:18 ` Jason Wang
2021-12-15 10:07 ` Stefan Hajnoczi
2021-12-16 3:01 ` Jason Wang
2021-12-16 9:10 ` Stefan Hajnoczi
2021-12-17 4:26 ` Jason Wang
2021-12-17 8:35 ` Stefan Hajnoczi
2021-12-20 2:48 ` Jason Wang
2021-12-20 8:11 ` Stefan Hajnoczi
2021-12-20 9:17 ` longpeng2--- via
2021-12-20 14:05 ` Stefan Hajnoczi
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=9615545c46e54943b40e730a3535d550@huawei.com \
--to=qemu-devel@nongnu.org \
--cc=arei.gonglei@huawei.com \
--cc=jasowang@redhat.com \
--cc=longpeng2@huawei.com \
--cc=mst@redhat.com \
--cc=parav@nvidia.com \
--cc=sgarzare@redhat.com \
--cc=stefanha@redhat.com \
--cc=xieyongji@bytedance.com \
--cc=yechuan@huawei.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).