On 28/04/15 02:22, Xie, Huawei wrote: > > >> -----Original Message----- >> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Zoltan Kiss >> Sent: Tuesday, April 28, 2015 12:27 AM >> To: Nikita Kalyazin; dev at dpdk.org >> Subject: Re: [dpdk-dev] data copy in vhost-user >> >> >> >> On 27/04/15 12:54, Nikita Kalyazin wrote: >>> Hi, >>> >>> >>> As far as I understand, DPDK vhost-user implementation requires data copy >> for either RX or TX (rte_vhost_dequeue_burst() and >> rte_vhost_enqueue_burst()). It means that two data copies are needed to >> transfer a packet from one VM to another. >>> >>> Why is not it possible to eliminate one of the copies (e.g., >> rte_vhost_enqueue_burst() might set up a reference at vring descriptor to >> mbuf's data rather than copying the data)? > This had been added to the to-do list. We could delay the copy until the real > copy is needed. >> >> I'm just guessing, but in case of VM-to-VM traffic the receiving one >> could hold onto the buffer indefinitely, preventing the sender to reuse >> the buffer. That could lead to a DoS in some cases, and shutting down >> the sender would be also tricky. At least in case of Xen >> netback/netfront that's the reason. A reasonable solution for this >> problem is to make sure the buffer is swapped out with a copy after a >> finite time. > Do you mean we associate a timeout for the buffer? Yes, I think xen-netback had such a version once, but it was removed. As far as I know the overhead and complexity of handling these timeouts were too severe. I might be wrong about this, I don't know if this problem applies here as well or not.
>> >> Regards, >> >> Zoltan