Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1583284
| Path | csiph.com!news.redatomik.org!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Jisheng Zhang <jszhang@marvell.com> |
| Newsgroups | linux.kernel |
| Subject | [PATCH net-next 1/2] net: mvneta: avoid getting status from rx_desc as much as possible |
| Date | Fri, 17 Feb 2017 11:10:01 +0100 |
| Message-ID | <tbNEd-2WR-5@gated-at.bofh.it> (permalink) |
| References | <tbNEd-2WR-1@gated-at.bofh.it> |
| X-Original-To | <thomas.petazzoni@free-electrons.com>, <arnd@arndb.de> |
| X-Mailer | git-send-email 2.11.0 |
| MIME-Version | 1.0 |
| Content-Type | text/plain |
| X-Proofpoint-Virus-Version | vendor=fsecure engine=2.50.10432:,, definitions=2017-02-17_08:,, signatures=0 |
| X-Proofpoint-Details | rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1612050000 definitions=main-1702170096 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 47 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | <linux-arm-kernel@lists.infradead.org>, <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>, Jisheng Zhang <jszhang@marvell.com> |
| X-Original-Date | Fri, 17 Feb 2017 17:57:26 +0800 |
| X-Original-Message-ID | <20170217095727.2226-2-jszhang@marvell.com> |
| X-Original-References | <20170217095727.2226-1-jszhang@marvell.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1583284 |
Show key headers only | View raw
In hot code path mvneta_rx_hwbm(), the rx_desc->status is read twice.
The rx_desc is allocated by dma_alloc_coherent, it's uncacheable if
the device isn't cache-coherent, reading from uncached memory is
fairly slow. So reuse the read out rx_status to avoid the second
reading from uncached memory.
Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Suggested-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/net/ethernet/marvell/mvneta.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 61dd4462411c..06df72b8da85 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -313,8 +313,8 @@
((addr >= txq->tso_hdrs_phys) && \
(addr < txq->tso_hdrs_phys + txq->size * TSO_HEADER_SIZE))
-#define MVNETA_RX_GET_BM_POOL_ID(rxd) \
- (((rxd)->status & MVNETA_RXD_BM_POOL_MASK) >> MVNETA_RXD_BM_POOL_SHIFT)
+#define MVNETA_RX_GET_BM_POOL_ID(status) \
+ (((status) & MVNETA_RXD_BM_POOL_MASK) >> MVNETA_RXD_BM_POOL_SHIFT)
struct mvneta_statistic {
unsigned short offset;
@@ -1900,7 +1900,7 @@ static void mvneta_rxq_drop_pkts(struct mvneta_port *pp,
for (i = 0; i < rx_done; i++) {
struct mvneta_rx_desc *rx_desc =
mvneta_rxq_next_desc_get(rxq);
- u8 pool_id = MVNETA_RX_GET_BM_POOL_ID(rx_desc);
+ u8 pool_id = MVNETA_RX_GET_BM_POOL_ID(rx_desc->status);
struct mvneta_bm_pool *bm_pool;
bm_pool = &pp->bm_priv->bm_pools[pool_id];
@@ -2075,7 +2075,7 @@ static int mvneta_rx_hwbm(struct mvneta_port *pp, int rx_todo,
rx_bytes = rx_desc->data_size - (ETH_FCS_LEN + MVNETA_MH_SIZE);
data = (u8 *)(uintptr_t)rx_desc->buf_cookie;
phys_addr = rx_desc->buf_phys_addr;
- pool_id = MVNETA_RX_GET_BM_POOL_ID(rx_desc);
+ pool_id = MVNETA_RX_GET_BM_POOL_ID(rx_status);
bm_pool = &pp->bm_priv->bm_pools[pool_id];
if (!mvneta_rxq_desc_is_first_last(rx_status) ||
--
2.11.0
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
[PATCH net-next 0/2] net: mvneta: improve rx performance Jisheng Zhang <jszhang@marvell.com> - 2017-02-17 11:10 +0100 [PATCH net-next 2/2] net: mvneta: Use cacheable memory to store the rx buffer DMA address Jisheng Zhang <jszhang@marvell.com> - 2017-02-17 11:10 +0100 [PATCH net-next 1/2] net: mvneta: avoid getting status from rx_desc as much as possible Jisheng Zhang <jszhang@marvell.com> - 2017-02-17 11:10 +0100
csiph-web