DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] net/ixgbe: calculate the correct number of received packets in bulk alloc function
@ 2016-12-19  6:09 Jianbo Liu
  2016-12-19  6:09 ` [dpdk-dev] [PATCH 2/2] net/ixgbe: calculate correct number of received packets for ARM NEON-version vPMD Jianbo Liu
                   ` (4 more replies)
  0 siblings, 5 replies; 25+ messages in thread
From: Jianbo Liu @ 2016-12-19  6:09 UTC (permalink / raw)
  To: dev, helin.zhang, konstantin.ananyev, jerin.jacob; +Cc: Jianbo Liu

To get better performance, Rx bulk alloc recv function will scan 8 descriptors
in one time, but the statuses are not consistent on ARM platform because
the memory allocated for Rx descriptors is cacheable hugepages.
This patch is to calculate the number of received packets by scanning DD bit
sequentially, and stops when meeting the first packet with DD bit unset.

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
---
 drivers/net/ixgbe/ixgbe_rxtx.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index b2d9f45..2866bdb 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -1402,17 +1402,21 @@ ixgbe_rx_scan_hw_ring(struct ixgbe_rx_queue *rxq)
 	for (i = 0; i < RTE_PMD_IXGBE_RX_MAX_BURST;
 	     i += LOOK_AHEAD, rxdp += LOOK_AHEAD, rxep += LOOK_AHEAD) {
 		/* Read desc statuses backwards to avoid race condition */
-		for (j = LOOK_AHEAD-1; j >= 0; --j)
+		for (j = LOOK_AHEAD - 1; j >= 0; --j) {
 			s[j] = rte_le_to_cpu_32(rxdp[j].wb.upper.status_error);
-
-		for (j = LOOK_AHEAD - 1; j >= 0; --j)
 			pkt_info[j] = rte_le_to_cpu_32(rxdp[j].wb.lower.
 						       lo_dword.data);
+		}
+
+		rte_smp_rmb();
 
 		/* Compute how many status bits were set */
 		nb_dd = 0;
 		for (j = 0; j < LOOK_AHEAD; ++j)
-			nb_dd += s[j] & IXGBE_RXDADV_STAT_DD;
+			if (s[j] & IXGBE_RXDADV_STAT_DD)
+				++nb_dd;
+			else
+				break;
 
 		nb_rx += nb_dd;
 
-- 
2.4.11

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2017-02-09 12:43 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-19  6:09 [dpdk-dev] [PATCH 1/2] net/ixgbe: calculate the correct number of received packets in bulk alloc function Jianbo Liu
2016-12-19  6:09 ` [dpdk-dev] [PATCH 2/2] net/ixgbe: calculate correct number of received packets for ARM NEON-version vPMD Jianbo Liu
2016-12-21 10:08   ` Jerin Jacob
2016-12-21 11:03     ` Bruce Richardson
2016-12-22  1:18       ` Jianbo Liu
2016-12-22  1:05     ` Jianbo Liu
2017-02-01 16:19 ` [dpdk-dev] [PATCH 1/2] net/ixgbe: calculate the correct number of received packets in bulk alloc function Ananyev, Konstantin
2017-02-03  6:22   ` Jianbo Liu
2017-02-03 11:38     ` Ananyev, Konstantin
2017-02-04  3:37       ` Jianbo Liu
2017-02-04  9:37 ` [dpdk-dev] [PATCH v2 " Jianbo Liu
2017-02-04  9:37   ` [dpdk-dev] [PATCH v2 2/2] net/ixgbe: calculate correct number of received packets for ARM NEON-version vPMD Jianbo Liu
2017-02-04 13:26   ` [dpdk-dev] [PATCH v2 1/2] net/ixgbe: calculate the correct number of received packets in bulk alloc function Ananyev, Konstantin
2017-02-08 18:02     ` Ferruh Yigit
2017-02-08 18:53       ` Ananyev, Konstantin
2017-02-08 19:53         ` Ananyev, Konstantin
2017-02-09  3:49           ` Jianbo Liu
2017-02-04 16:37 ` [dpdk-dev] [PATCH v3 " Jianbo Liu
2017-02-04 16:37   ` [dpdk-dev] [PATCH v3 2/2] net/ixgbe: calculate correct number of received packets for ARM NEON-version vPMD Jianbo Liu
2017-02-04 16:39   ` [dpdk-dev] [PATCH v3 1/2] net/ixgbe: calculate the correct number of received packets in bulk alloc function Jianbo Liu
2017-02-09  4:05 ` [dpdk-dev] [PATCH v4 " Jianbo Liu
2017-02-09  4:05   ` [dpdk-dev] [PATCH v4 2/2] net/ixgbe: calculate correct number of received packets for ARM NEON-version vPMD Jianbo Liu
2017-02-09 12:43     ` Ferruh Yigit
2017-02-09 12:39   ` [dpdk-dev] [PATCH v4 1/2] net/ixgbe: calculate the correct number of received packets in bulk alloc function Ferruh Yigit
2017-02-09 12:42     ` Ferruh Yigit

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).