[dpdk-users] VIRTIO for containers

Tan, Jianfeng jianfeng.tan at intel.com
Wed Nov 1 03:58:09 CET 2017


Hi Zhike,

On 10/31/2017 12:25 PM, 王志克 wrote:
> Hi,
>
> I tested KNI, and compared with virtio-user. The result is beyond my 
> expectation:
>
> The KNI performance is better (+30%) in simpe netperf test with TCP 
> and different size UDP. I though they have similar performance, but it 
> proved that KNI performed better in my test. Not sure why.

This is expected. As KNI has a better thread model, its kthread only 
processes user->kernel path; the kernel->user path is processed in 
ksoftirq thread.


>
> Note in my test, I did not enable checksum/gso/… offloading and 
> multi-queue, since we need do vxLan encapsulation using SW. I am using 
> ovs2.8.1 and dpdk 17.05.2.


And below is the feature table. Note that OVS (mainstream) so far does 
not integrate LRO/TSO etc.

                                                         KNI             
virtio-user
Multi-seg (user->kernel)              Y    Y
Multi-seg (kernel->user)              N     Y
Multi-queue                                  N         Y
Csum offload (user->kernel)       Y Y
Csum offload (kernel->user)       N                             Y
Zero copy (user->kernel) N                             Experimental
Zero copy (kernel->user) N                             N


>
> In addition, one queue pair on virtio-user would create one vhost 
> thread. If we have many containters, it seems hard to manage the CPU 
> usage. Is there any proposal/practice to limit the vhost kthread CPU 
> resource?

Yes, this is another thread model problem.

There is proposal from Redhat and IBM on this: 
http://events.linuxfoundation.org/sites/events/files/slides/kvm_forum_2015_vhost_sharing_is_better.pdf.
But not sure when it will be ready.

Thanks,
Jianfeng

>
> Br,
> Wang Zhike




More information about the users mailing list