From: Jason Wang <jasowang@redhat.com>
To: Parav Pandit <parav@nvidia.com>, zhenwei pi <pizhenwei@bytedance.com>
Cc: "Michael S . Tsirkin" <mst@redhat.com>,
Cornelia Huck <cohuck@redhat.com>,
virtio-dev@lists.oasis-open.org,
"virtio-comment@lists.oasis-open.org"
<virtio-comment@lists.oasis-open.org>,
"helei.sig11@bytedance.com" <helei.sig11@bytedance.com>,
houp@yusur.tech
Subject: [virtio-dev] Re: [virtio-comment] [PROPOSAL] Virtio Over Fabrics(TCP/RDMA)
Date: Tue, 25 Apr 2023 14:31:04 +0800 [thread overview]
Message-ID: <d1e62181-894c-25bb-3546-16a4f92beeb0@redhat.com> (raw)
In-Reply-To: <4150bd72-a358-c854-0c64-b149621a1b8d@nvidia.com>
在 2023/4/25 13:03, Parav Pandit 写道:
>
>
> On 4/24/2023 9:38 AM, zhenwei pi wrote:
>>
>>
>> From the point of my view, there are 3 cases:
>> 1, Host/container scenario. For example, host kernel connects a
>> virtio target block service, maps it as a vdx(virtio-blk) device(used
>> by Map-Reduce service which needs a fast/large size disk). The host
>> kernel also connects a virtio target crypto service, maps it as
>> virtio crypto device(used by nginx to accelarate HTTPS). And so on.
>>
>> +----------+ +----------+ +----------+
>> |Map-Reduce| | nginx | ... | processes|
>> +----------+ +----------+ +----------+
>> ------------------------------------------------------------
>> Host | | |
>> Kernel +-------+ +-------+ +-------+
>> | ext4 | | LKCF | | HWRNG |
>> +-------+ +-------+ +-------+
>> | | |
>> +-------+ +-------+ +-------+
>> | vdx | |vCrypto| | vRNG |
>> +-------+ +-------+ +-------+
>> | | |
>> | +--------+ |
>> +---------->|TCP/RDMA|<------------+
>> +--------+
>> |
>> +------+
>> |NIC/IB|
>> +------+
>> | +-------------+
>> +--------------------->|virtio target|
>> +-------------+
>>
>> 2, Typical virtualization environment. The workloads run in a guest,
>> and QEMU handles virtio-pci(or MMIO), and forwards requests to target.
>> +----------+ +----------+ +----------+
>> |Map-Reduce| | nginx | ... | processes|
>> +----------+ +----------+ +----------+
>> ------------------------------------------------------------
>> Guest | | |
>> Kernel +-------+ +-------+ +-------+
>> | ext4 | | LKCF | | HWRNG |
>> +-------+ +-------+ +-------+
>> | | |
>> +-------+ +-------+ +-------+
>> | vdx | |vCrypto| | vRNG |
>> +-------+ +-------+ +-------+
>> | | |
>> PCI --------------------------------------------------------
>> |
>> QEMU +--------------+
>> |virtio backend|
>> +--------------+
>> |
>> +------+
>> |NIC/IB|
>> +------+
>> | +-------------+
>> +--------------------->|virtio target|
>> +-------------+
>>
> Example #3 enables to implement virtio backend over fabrics initiator
> in the user space, which is also a good use case.
> It can be also be done in non native virtio backend.
> More below.
>
>> 3, SmartNIC/DPU/vDPA environment. It's possible to convert virtio-pci
>> request to virtio-of request by hardware, and forward request to
>> virtio target directly.
>> +----------+ +----------+ +----------+
>> |Map-Reduce| | nginx | ... | processes|
>> +----------+ +----------+ +----------+
>> ------------------------------------------------------------
>> Host | | |
>> Kernel +-------+ +-------+ +-------+
>> | ext4 | | LKCF | | HWRNG |
>> +-------+ +-------+ +-------+
>> | | |
>> +-------+ +-------+ +-------+
>> | vdx | |vCrypto| | vRNG |
>> +-------+ +-------+ +-------+
>> | | |
>> PCI --------------------------------------------------------
>> |
>> SmartNIC +---------------+
>> |virtio HW queue|
>> +---------------+
>> |
>> +------+
>> |NIC/IB|
>> +------+
>> | +-------------+
>> +--------------------->|virtio target|
>> +-------------+
>>
> All 3 seems a valid use cases.
>
> Use case 1 and 2 can be achieved directly without involving any
> mediation layer or any other translation layer (for example virtio to
> nfs).
Not for at least use case 2? It said it has a virtio backend in Qemu. Or
the only possible way is to have virtio of in the guest.
Thanks
> Many blk and file protocols outside of the virtio already exists which
> achieve this. I don't see virtio being any different to support this
> in native manner, mainly the blk, fs, crypto device.
>
> use case #3 brings additional a benefits at the same time different
> complexity but sure #3 is also a valid and common use case in our
> experiences.
>
> In my experience working with FC, iSCSI, FCoE, NVMe RDMA fabrics, iSER,
> A virito fabrics needs a lot of work to reach the scale, resiliency
> and lastly the security. (step by step...)
>
> My humble suggestion is : pick one transport instead of all at once,
> rdma being most performant probably the first candidate to see the
> perf gain for use case #1 and #2 from remote system.
>
> I briefly see your rdma command descriptor example, which is not
> aligned to 16B. Perf wise it will be poor than nvme rdma fabrics.
>
> For PCI transport for net, we intent to start the work to improve
> descriptors, the transport binding for net device. From our research I
> see that some abstract virtio descriptors are great today, but if you
> want to get best out of the system (sw, hw, cpu), such abstraction is
> not the best. Sharing of "id" all the way to target and bring back is
> an example of such inefficiency in your example.
>
---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
next prev parent reply other threads:[~2023-04-25 6:31 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1ab0beff-8b18-7a94-1a68-6bf36bcd0394@bytedance.com>
2023-04-24 3:40 ` [virtio-dev] Re: [virtio-comment] [PROPOSAL] Virtio Over Fabrics(TCP/RDMA) Jason Wang
[not found] ` <8f65c9aa-c867-0929-151c-21bbe25a0693@bytedance.com>
2023-04-25 5:03 ` Parav Pandit
2023-04-25 6:31 ` Jason Wang [this message]
2023-04-25 13:27 ` [virtio-dev] " Parav Pandit
2023-04-27 8:20 ` [virtio-dev] Re: " zhenwei pi
2023-04-27 20:31 ` [virtio-dev] " Parav Pandit
2023-04-25 6:36 ` [virtio-dev] " Jason Wang
2023-04-26 9:29 ` Xuan Zhuo
2023-04-25 13:55 ` [virtio-dev] " Stefan Hajnoczi
2023-04-26 1:08 ` [virtio-dev] " zhenwei pi
2023-04-25 14:09 ` [virtio-dev] " Stefan Hajnoczi
2023-04-26 3:03 ` Jason Wang
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=d1e62181-894c-25bb-3546-16a4f92beeb0@redhat.com \
--to=jasowang@redhat.com \
--cc=cohuck@redhat.com \
--cc=helei.sig11@bytedance.com \
--cc=houp@yusur.tech \
--cc=mst@redhat.com \
--cc=parav@nvidia.com \
--cc=pizhenwei@bytedance.com \
--cc=virtio-comment@lists.oasis-open.org \
--cc=virtio-dev@lists.oasis-open.org \
/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