From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id 06FFF5B36 for ; Wed, 3 Oct 2018 11:04:27 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id 331CCB4005A for ; Wed, 3 Oct 2018 09:04:26 +0000 (UTC) Received: from ocex03.SolarFlarecom.com (10.20.40.36) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 3 Oct 2018 02:04:22 -0700 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Wed, 3 Oct 2018 02:04:22 -0700 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id w9394LxJ032029 for ; Wed, 3 Oct 2018 10:04:21 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 628171626D1 for ; Wed, 3 Oct 2018 10:04:21 +0100 (BST) From: Andrew Rybchenko To: Date: Wed, 3 Oct 2018 10:03:51 +0100 Message-ID: <1538557436-16163-5-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1538557436-16163-1-git-send-email-arybchenko@solarflare.com> References: <1538557436-16163-1-git-send-email-arybchenko@solarflare.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24132.005 X-TM-AS-Result: No-0.420800-4.000000-10 X-TMASE-MatchedRID: hQJKfUqiPW+Tu4o902k1S935+5/2RxqmsN20gSzgirLRLEyE6G4DRHVX 4shSYpPIHXTgyt4N7voO1mVtY5XA0K+/EguYor8cFEUknJ/kEl7dB/CxWTRRu5n92B/ceXSVw5Y 0fa+kiWZi4CN7umfqY1WmMH9e+X5n5SXL/On1kQGS0C+aqzpVPSgXrDkj7jieidUjED4YOfgox8 YkMlan0mgjnTeUExiyAOUktl0YyhTPmmTiIXqJVL71KNIWT4ZczP+N1C9TCUeJNKCbyQlUpEMMp rcbiest X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10-0.420800-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24132.005 X-MDID: 1538557466-TOaly1IaIy1h Subject: [dpdk-dev] [PATCH 4/9] net/sfc: avoid dummy writes to Rx queue state structure X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Oct 2018 09:04:27 -0000 If there is no packets to be processed, it does not make sense to write the same values back to Rx queue structure. Signed-off-by: Andrew Rybchenko Reviewed-by: Ivan Malov --- drivers/net/sfc/sfc_ef10_rx.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c index 8d0e69c64..098610210 100644 --- a/drivers/net/sfc/sfc_ef10_rx.c +++ b/drivers/net/sfc/sfc_ef10_rx.c @@ -191,14 +191,18 @@ sfc_ef10_rx_prepared(struct sfc_ef10_rxq *rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) { uint16_t n_rx_pkts = RTE_MIN(nb_pkts, rxq->prepared); - unsigned int completed = rxq->completed; - unsigned int i; - rxq->prepared -= n_rx_pkts; - rxq->completed = completed + n_rx_pkts; + if (n_rx_pkts != 0) { + unsigned int completed = rxq->completed; - for (i = 0; i < n_rx_pkts; ++i, ++completed) - rx_pkts[i] = rxq->sw_ring[completed & rxq->ptr_mask].mbuf; + rxq->prepared -= n_rx_pkts; + rxq->completed = completed + n_rx_pkts; + + do { + *rx_pkts++ = + rxq->sw_ring[completed++ & rxq->ptr_mask].mbuf; + } while (completed != rxq->completed); + } return n_rx_pkts; } -- 2.17.1