[dpdk-dev] [RFC 16/29] net/virtio: avoid touching packet data

Tiwei Bie tiwei.bie at intel.com
Wed Jun 21 04:57:52 CEST 2017


For performance testing purpose, avoid touching the packet data
when receiving packets.

Signed-off-by: Tiwei Bie <tiwei.bie at intel.com>
---
 drivers/net/virtio/virtio_rxtx.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index 3be64da..93d564f 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -139,7 +139,9 @@ virtqueue_dequeue_burst_rx_1_0(struct virtqueue *vq, struct rte_mbuf **rx_pkts,
 		}
 
 		rte_prefetch0(cookie);
+#if 0
 		rte_packet_prefetch(rte_pktmbuf_mtod(cookie, void *));
+#endif
 		rx_pkts[i]  = cookie;
 		vq->vq_used_cons_idx++;
 		vq_ring_free_chain(vq, desc_idx);
@@ -174,7 +176,9 @@ virtqueue_dequeue_burst_rx_1_1(struct virtqueue *vq, struct rte_mbuf **rx_pkts,
 		vq->vq_descx[used_idx].cookie = NULL;
 
 		rte_prefetch0(cookie);
+#if 0
 		rte_packet_prefetch(rte_pktmbuf_mtod(cookie, void *));
+#endif
 		rx_pkts[i]  = cookie;
 
 		vq->vq_used_cons_idx++;
@@ -568,7 +572,9 @@ static void
 virtio_update_packet_stats(struct virtnet_stats *stats, struct rte_mbuf *mbuf)
 {
 	uint32_t s = mbuf->pkt_len;
+#if 0
 	struct ether_addr *ea;
+#endif
 
 	if (s == 64) {
 		stats->size_bins[1]++;
@@ -587,6 +593,7 @@ virtio_update_packet_stats(struct virtnet_stats *stats, struct rte_mbuf *mbuf)
 			stats->size_bins[7]++;
 	}
 
+#if 0
 	ea = rte_pktmbuf_mtod(mbuf, struct ether_addr *);
 	if (is_multicast_ether_addr(ea)) {
 		if (is_broadcast_ether_addr(ea))
@@ -594,6 +601,7 @@ virtio_update_packet_stats(struct virtnet_stats *stats, struct rte_mbuf *mbuf)
 		else
 			stats->multicast++;
 	}
+#endif
 }
 
 /* Optionally fill offload information in structure */
-- 
2.7.4



More information about the dev mailing list