dev.dpdk.org archive mirror
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: dev-VfR2kkLFssw@public.gmane.org
Subject: [PATCH 2/5] ixgbe: add prefetch to improve slow-path tx perf
Date: Wed, 17 Sep 2014 11:01:39 +0100	[thread overview]
Message-ID: <1410948102-12740-3-git-send-email-bruce.richardson@intel.com> (raw)
In-Reply-To: <1410948102-12740-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

Make a small improvement to slow path TX performance by adding in a
prefetch for the second mbuf cache line.
Also move assignment of l2/l3 length values only when needed.

Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
 lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
index 6f702b3..c0bb49f 100644
--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
@@ -565,25 +565,26 @@ ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 		ixgbe_xmit_cleanup(txq);
 	}
 
+	rte_prefetch0(&txe->mbuf->pool);
+
 	/* TX loop */
 	for (nb_tx = 0; nb_tx < nb_pkts; nb_tx++) {
 		new_ctx = 0;
 		tx_pkt = *tx_pkts++;
 		pkt_len = tx_pkt->pkt_len;
 
-		RTE_MBUF_PREFETCH_TO_FREE(txe->mbuf);
-
 		/*
 		 * Determine how many (if any) context descriptors
 		 * are needed for offload functionality.
 		 */
 		ol_flags = tx_pkt->ol_flags;
-		vlan_macip_lens.f.vlan_tci = tx_pkt->vlan_tci;
-		vlan_macip_lens.f.l2_l3_len = tx_pkt->l2_l3_len;
 
 		/* If hardware offload required */
 		tx_ol_req = ol_flags & PKT_TX_OFFLOAD_MASK;
 		if (tx_ol_req) {
+			vlan_macip_lens.f.vlan_tci = tx_pkt->vlan_tci;
+			vlan_macip_lens.f.l2_l3_len = tx_pkt->l2_l3_len;
+
 			/* If new context need be built or reuse the exist ctx. */
 			ctx = what_advctx_update(txq, tx_ol_req,
 				vlan_macip_lens.data);
@@ -720,7 +721,7 @@ ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 				    &txr[tx_id];
 
 				txn = &sw_ring[txe->next_id];
-				RTE_MBUF_PREFETCH_TO_FREE(txn->mbuf);
+				rte_prefetch0(&txn->mbuf->pool);
 
 				if (txe->mbuf != NULL) {
 					rte_pktmbuf_free_seg(txe->mbuf);
@@ -749,6 +750,7 @@ ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 		do {
 			txd = &txr[tx_id];
 			txn = &sw_ring[txe->next_id];
+			rte_prefetch0(&txn->mbuf->pool);
 
 			if (txe->mbuf != NULL)
 				rte_pktmbuf_free_seg(txe->mbuf);
-- 
1.9.3

  parent reply	other threads:[~2014-09-17 10:01 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-17 10:01 [PATCH 0/5] Mbuf Structure Rework, part 3 Bruce Richardson
     [not found] ` <1410948102-12740-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 10:01   ` [PATCH 1/5] mbuf: ensure next pointer is set to null on free Bruce Richardson
2014-09-17 10:01   ` Bruce Richardson [this message]
     [not found]     ` <1410948102-12740-3-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 15:21       ` [PATCH 2/5] ixgbe: add prefetch to improve slow-path tx perf Neil Horman
     [not found]         ` <20140917152103.GE4213-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-09-17 15:35           ` Richardson, Bruce
     [not found]             ` <59AF69C657FD0841A61C55336867B5B0343F2EEA-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-17 17:59               ` Neil Horman
     [not found]                 ` <20140917175936.GA13492-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-18 13:36                   ` Bruce Richardson
2014-09-18 15:29                     ` Neil Horman
     [not found]                       ` <20140918152930.GG20389-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-18 15:42                         ` Bruce Richardson
2014-09-18 17:56                           ` Neil Horman
2014-09-17 10:01   ` [PATCH 3/5] testpmd: Change rxfreet default to 32 Bruce Richardson
     [not found]     ` <1410948102-12740-4-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 15:29       ` Neil Horman
     [not found]         ` <20140917152945.GF4213-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-09-18 15:53           ` Richardson, Bruce
     [not found]             ` <59AF69C657FD0841A61C55336867B5B0343F355F-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-18 17:13               ` Thomas Monjalon
2014-09-18 18:08                 ` Neil Horman
     [not found]                   ` <20140918180841.GN20389-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-19  9:18                     ` Richardson, Bruce
     [not found]                       ` <59AF69C657FD0841A61C55336867B5B0343F38AD-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-19 10:24                         ` Neil Horman
     [not found]                           ` <20140919102435.GC12897-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-19 10:28                             ` Richardson, Bruce
     [not found]                               ` <59AF69C657FD0841A61C55336867B5B0343F395C-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-19 15:18                                 ` Neil Horman
2014-09-18 18:03               ` Neil Horman
2014-09-17 10:01   ` [PATCH 4/5] mbuf: add userdata pointer field Bruce Richardson
     [not found]     ` <1410948102-12740-5-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 15:35       ` Neil Horman
     [not found]         ` <20140917153510.GG4213-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-09-17 16:02           ` Richardson, Bruce
     [not found]             ` <59AF69C657FD0841A61C55336867B5B0343F2F91-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-17 18:29               ` Neil Horman
2014-09-17 10:01   ` [PATCH 5/5] mbuf: Add in second vlan tag field to mbuf Bruce Richardson
     [not found]     ` <1410948102-12740-6-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 20:46       ` Stephen Hemminger
2014-09-23 11:08   ` [PATCH v2 0/5] Mbuf Structure Rework, part 3 Bruce Richardson
     [not found]     ` <1411470497-10209-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-23 11:08       ` [PATCH v2 1/5] mbuf: ensure next pointer is set to null on free Bruce Richardson
2014-09-23 11:08       ` [PATCH v2 2/5] ixgbe: add prefetch to improve slow-path tx perf Bruce Richardson
2014-09-23 11:08       ` [PATCH v2 3/5] testpmd: Change rxfreet default to 32 Bruce Richardson
     [not found]         ` <1411470497-10209-4-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-23 17:02           ` Neil Horman
     [not found]             ` <20140923170231.GC12884-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-24  9:03               ` Richardson, Bruce
     [not found]                 ` <59AF69C657FD0841A61C55336867B5B03440521B-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-24 10:05                   ` Neil Horman
2014-11-07 12:30                   ` Thomas Monjalon
2014-11-07 13:49                     ` Bruce Richardson
2014-09-23 11:08       ` [PATCH v2 4/5] mbuf: add userdata pointer field Bruce Richardson
2014-09-23 11:08       ` [PATCH v2 5/5] mbuf: switch vlan_tci and reserved2 fields Bruce Richardson
2014-09-29 15:58       ` [PATCH v2 0/5] Mbuf Structure Rework, part 3 De Lara Guarch, Pablo
     [not found]         ` <E115CCD9D858EF4F90C690B0DCB4D89722628408-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-08 12:31           ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1410948102-12740-3-git-send-email-bruce.richardson@intel.com \
    --to=bruce.richardson-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).