[dpdk-dev] [PATCH v2 6/7] virtio: simple tx routine

2015-10-19 Thread Xie, Huawei
On 10/19/2015 12:17 PM, Stephen Hemminger wrote: > On Sun, 18 Oct 2015 14:29:03 +0800 > Huawei Xie wrote: > >> bulk free of mbufs when clean used ring. >> shift operation of idx could be further saved if vq_free_cnt means >> free slots rather than free descriptors. >> >> Signed-off-by: Huawei Xie

[dpdk-dev] [PATCH v2 6/7] virtio: simple tx routine

2015-10-19 Thread Xie, Huawei
On 10/19/2015 12:17 PM, Stephen Hemminger wrote: > On Sun, 18 Oct 2015 14:29:03 +0800 > Huawei Xie wrote: > >> + >> +for (i = 1; i < VIRTIO_TX_FREE_NR; i++) { >> +m = (struct rte_mbuf *)vq->vq_descx[desc_idx++].cookie; >> +if (likely(m->pool == free[0]->pool)) >> +

[dpdk-dev] [PATCH v2 6/7] virtio: simple tx routine

2015-10-19 Thread Xie, Huawei
On 10/19/2015 12:19 PM, Stephen Hemminger wrote: > +static inline void __attribute__((always_inline)) > +virtio_xmit_cleanup(struct virtqueue *vq) > +{ > > Please don't use always inline, frustrating the compiler isn't going > to help. always inline is scattered elsewhere in the dpdk code. What is

[dpdk-dev] [PATCH v2 6/7] virtio: simple tx routine

2015-10-18 Thread Stephen Hemminger
+static inline void __attribute__((always_inline)) +virtio_xmit_cleanup(struct virtqueue *vq) +{ Please don't use always inline, frustrating the compiler isn't going to help. + uint16_t i, desc_idx; + int nb_free = 0; + struct rte_mbuf *m, *free[VIRTIO_TX_MAX_FREE_BUF_SZ]; + +

[dpdk-dev] [PATCH v2 6/7] virtio: simple tx routine

2015-10-18 Thread Stephen Hemminger
On Sun, 18 Oct 2015 14:29:03 +0800 Huawei Xie wrote: > + > + for (i = 1; i < VIRTIO_TX_FREE_NR; i++) { > + m = (struct rte_mbuf *)vq->vq_descx[desc_idx++].cookie; > + if (likely(m->pool == free[0]->pool)) > + free[nb_free++] = m; > + els

[dpdk-dev] [PATCH v2 6/7] virtio: simple tx routine

2015-10-18 Thread Stephen Hemminger
On Sun, 18 Oct 2015 14:29:03 +0800 Huawei Xie wrote: > bulk free of mbufs when clean used ring. > shift operation of idx could be further saved if vq_free_cnt means > free slots rather than free descriptors. > > Signed-off-by: Huawei Xie Did you measure this. I finished my transmit optimizatio

[dpdk-dev] [PATCH v2 6/7] virtio: simple tx routine

2015-10-18 Thread Huawei Xie
bulk free of mbufs when clean used ring. shift operation of idx could be further saved if vq_free_cnt means free slots rather than free descriptors. Signed-off-by: Huawei Xie --- drivers/net/virtio/virtio_ethdev.h | 3 ++ drivers/net/virtio/virtio_rxtx_simple.c | 95 +++