[dpdk-dev] [RFC PATCH 0/2] Virtio-net PMD Extension to work on host.

Tetsuya Mukawa mukawa at igel.co.jp
Fri Nov 20 03:53:36 CET 2015


On 2015/11/20 11:35, Tetsuya Mukawa wrote:
> On 2015/11/20 11:00, Xie, Huawei wrote:
>> On 11/20/2015 2:16 AM, Rich Lane wrote:
>>> What's the reason for using qemu as a middleman? Couldn't the new PMD
>>> itself open /dev/vhost-net or the vhost-user socket and send the commands
>>> to set up virtqueues? That was the approach taken by Jianfeng's earlier RFC.
>> Rich:
>> Our initial POC also has a device simulation layer, but it is linked
>> with the DPDK driver as a library.
>> As i created that device simulation based on lkvm, and it takes too much
>> effort to rewrite it from scratch, so we decide to release a simple
>> version without device simulation first.
>> Without device simulation, The PMD is pretty simple, standalone, no
>> dependency to qtest process.
>> With device simulation, we could easily implement other virtio device in
>> DPDK easily, like virtio-crypt.
> Hi Rich and Xie,
>
> Probably, how to prepare virtio-net device is the difference between
> Jianfeng's RFC and our RFC.
> The reason why I choose this approach is below.
>
> 1. Ease of maintenance
> If we have our virtio-net device, we need to spend time to maintain it.
> And QEMU virtio-net code is more tested by more virtio-net drivers and
> more users. As a result, it should have less bugs.
> Also, If we uses QEMU virtio-net code, we only need to maintain QTest
> related implementation.
> Anyway, QTest is very stable.
> Probably we have bugs first, but later, we don't need to maintain it so
> much.
>
> 2. Extendability
> The virtio-net and vhost specification will be extended in the future.
> If we have own implementation, we need to maintain more codes.
>
>
>> Maybe anyway we provide the simple implementation option, for customers
>> who don't like the extra complexity to launch a secondary process in
>> their container.
>> [...]
>>
>>
> For example, for the user who is OK to invoke 2 processes in same
> container, just prepare shell script that invokes QTest process and
> vhost-user backend process will be enough.
>
> For the users who doesn't want to invoke 2 processes in one container,
> anyway they use some kind of orchestration tool, so invoking one more
> process/container is not difficult.
>
> I guess the invoking and connecting multiple processes over containers
> may not be something special for container users.
> (like deploying load balancer, web server and DB)
>
> Tetsuya

But yes, it may be nice to have option for the users who only needs
limited features.
Actually, I am not container users, so not sure which is preferred.
If we have the option, I guess we need to choose very limited features
to be easy to maintain.

Thanks,
Tetsuya



More information about the dev mailing list