[dpdk-users] VIRTIO for containers
Avi Cohen (A)
avi.cohen at huawei.com
Mon Jul 10 08:49:00 CEST 2017
> -----Original Message-----
> From: Tan, Jianfeng [mailto:jianfeng.tan at intel.com]
> Sent: Monday, 10 July, 2017 6:28 AM
> To: Avi Cohen (A); dpdk-ovs at lists.01.org; users at dpdk.org
> Subject: RE: VIRTIO for containers
> > [Avi Cohen (A)]
> > Thanks you Jianfeng
> > I've tested it and the performance looks very good compared to native ovs.
> > I have 1 more question:
> > You wrote " there's a vhost kthread to push the data out to user space
> > " - Is that mean a copy from userspace to kernel (and viceversa) or
> > there is a zero-copy mmap like in AF_PACKET which handles TX/RX rings in
> userspace ?
> > Best Regards
> > avi
> So far it needs data copy at least from kernel to user path; there's an
> experimental feature, named experimental_zcopytx, to avoid data copy, but
> not very useful due to the implementation limitation.
[Avi Cohen (A)]
The penalty here that this vhost-kthread consumes very much CPU on a high throughput scenario - more than 80% CPU on ~ 10Gbps throughput
And this is in addition to the 100% CPU of the PMD threads
Also when PMD threads can be shared between multiple containers - the vhost-kthread is per container.
> Packet mmap (similar to AF_PACKET) is exactly the direction we were
> discussing for the further optimization. Plus, an optimized vhost thread
> model (current thread model is: one thread for one rx-tx queue pair) is also
More information about the users