[dpdk-dev] [PATCH 4/5] vhost: do not use rte_memcpy for virtio_hdr copy

2016-01-27 Thread Yuanhan Liu
On Wed, Jan 27, 2016 at 06:16:37AM +, Xie, Huawei wrote: > On 1/27/2016 2:02 PM, Yuanhan Liu wrote: > > On Wed, Jan 27, 2016 at 05:56:56AM +, Xie, Huawei wrote: > >> On 1/27/2016 11:22 AM, Yuanhan Liu wrote: > >>> On Wed, Jan 27, 2016 at 02:46:39AM +, Xie, Huawei wrote: > On

[dpdk-dev] [PATCH 4/5] vhost: do not use rte_memcpy for virtio_hdr copy

2016-01-27 Thread Yuanhan Liu
On Wed, Jan 27, 2016 at 05:56:56AM +, Xie, Huawei wrote: > On 1/27/2016 11:22 AM, Yuanhan Liu wrote: > > On Wed, Jan 27, 2016 at 02:46:39AM +, Xie, Huawei wrote: > >> On 12/3/2015 2:03 PM, Yuanhan Liu wrote: > >>> + if (vq->vhost_hlen == sizeof(struct virtio_net_hdr_mrg_rxbuf)) { > >>> +

[dpdk-dev] [PATCH 4/5] vhost: do not use rte_memcpy for virtio_hdr copy

2016-01-27 Thread Yuanhan Liu
On Wed, Jan 27, 2016 at 02:46:39AM +, Xie, Huawei wrote: > On 12/3/2015 2:03 PM, Yuanhan Liu wrote: > > + if (vq->vhost_hlen == sizeof(struct virtio_net_hdr_mrg_rxbuf)) { > > + *(struct virtio_net_hdr_mrg_rxbuf *)(uintptr_t)desc_addr = hdr; > > + } else { > > + *(struct

[dpdk-dev] [PATCH 4/5] vhost: do not use rte_memcpy for virtio_hdr copy

2016-01-27 Thread Xie, Huawei
On 1/27/2016 2:02 PM, Yuanhan Liu wrote: > On Wed, Jan 27, 2016 at 05:56:56AM +, Xie, Huawei wrote: >> On 1/27/2016 11:22 AM, Yuanhan Liu wrote: >>> On Wed, Jan 27, 2016 at 02:46:39AM +, Xie, Huawei wrote: On 12/3/2015 2:03 PM, Yuanhan Liu wrote: > + if (vq->vhost_hlen ==

[dpdk-dev] [PATCH 4/5] vhost: do not use rte_memcpy for virtio_hdr copy

2016-01-27 Thread Xie, Huawei
On 1/27/2016 11:22 AM, Yuanhan Liu wrote: > On Wed, Jan 27, 2016 at 02:46:39AM +, Xie, Huawei wrote: >> On 12/3/2015 2:03 PM, Yuanhan Liu wrote: >>> + if (vq->vhost_hlen == sizeof(struct virtio_net_hdr_mrg_rxbuf)) { >>> + *(struct virtio_net_hdr_mrg_rxbuf *)(uintptr_t)desc_addr =

[dpdk-dev] [PATCH 4/5] vhost: do not use rte_memcpy for virtio_hdr copy

2016-01-27 Thread Xie, Huawei
On 12/3/2015 2:03 PM, Yuanhan Liu wrote: > + if (vq->vhost_hlen == sizeof(struct virtio_net_hdr_mrg_rxbuf)) { > + *(struct virtio_net_hdr_mrg_rxbuf *)(uintptr_t)desc_addr = hdr; > + } else { > + *(struct virtio_net_hdr *)(uintptr_t)desc_addr = hdr.hdr; > + }

[dpdk-dev] [PATCH 4/5] vhost: do not use rte_memcpy for virtio_hdr copy

2015-12-03 Thread Yuanhan Liu
First of all, rte_memcpy() is mostly useful for coping big packets by leveraging hardware advanced instructions like AVX. But for virtio net hdr, which is 12 bytes at most, invoking rte_memcpy() will not introduce any performance boost. And, to my suprise, rte_memcpy() is huge. Since rte_memcpy()