From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id BC8961B4AF for ; Thu, 7 Feb 2019 13:18:15 +0100 (CET) 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-us3.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id DE37A600067 for ; Thu, 7 Feb 2019 12:18:14 +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; Thu, 7 Feb 2019 04:18:10 -0800 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; Thu, 7 Feb 2019 04:18:10 -0800 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 x17CI8DN013254 for ; Thu, 7 Feb 2019 12:18:08 GMT Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id C10FA1613EB for ; Thu, 7 Feb 2019 12:18:08 +0000 (GMT) From: Andrew Rybchenko To: Date: Thu, 7 Feb 2019 12:17:37 +0000 Message-ID: <1549541873-17403-15-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1549541873-17403-1-git-send-email-arybchenko@solarflare.com> References: <1549541873-17403-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-24412.006 X-TM-AS-Result: No-3.225500-4.000000-10 X-TMASE-MatchedRID: h1YlLWfQ7n4ccv8Iwgzq2gPZZctd3P4B/qxRV3rLqo3eQHDLQMNFIw4W I34Fe9tzIBOyfIQG7lIyy1N8n/3eDGAvsLJmtsvTzfqlpbtmcWh9LQinZ4QefPcjNeVeWlqY+gt Hj7OwNO3DBRxZClZqwR6SK66/9c8eONw4z/gbKYJQdpJuKAVCSjl11XV393EV2UEzoo87bqVgun AAv9r7L3+B6ElP9OOAFEVS5Eh4mLaJyoXRieO2+wAD0FqlZdom0b4rJ92tmtF/d7a9VsfzMGYfz Nl+uie3wL6SxPpr1/I= X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--3.225500-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24412.006 X-MDID: 1549541895-FK5K4CMSO1Pk Subject: [dpdk-dev] [PATCH 14/30] net/sfc: move datapath TxQ handle to shared TxQ info 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: Thu, 07 Feb 2019 12:18:16 -0000 If datapath supports multi-process, it should be possible to get its TxQ structure by the queue index. Signed-off-by: Andrew Rybchenko --- drivers/net/sfc/sfc_ethdev.c | 2 +- drivers/net/sfc/sfc_tx.c | 14 +++++++------- drivers/net/sfc/sfc_tx.h | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index 5bc73d512..80a1d7a3d 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -468,7 +468,7 @@ sfc_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id, if (rc != 0) goto fail_tx_qinit; - dev->data->tx_queues[tx_queue_id] = sa->txq_info[tx_queue_id].txq->dp; + dev->data->tx_queues[tx_queue_id] = sa->txq_info[tx_queue_id].dp; sfc_adapter_unlock(sa); return 0; diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c index f4fbffe0a..1ee4e78a1 100644 --- a/drivers/net/sfc/sfc_tx.c +++ b/drivers/net/sfc/sfc_tx.c @@ -195,11 +195,11 @@ sfc_tx_qinit(struct sfc_adapter *sa, unsigned int sw_index, rc = sa->priv.dp_tx->qcreate(sa->eth_dev->data->port_id, sw_index, &RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr, - socket_id, &info, &txq->dp); + socket_id, &info, &txq_info->dp); if (rc != 0) goto fail_dp_tx_qinit; - evq->dp_txq = txq->dp; + evq->dp_txq = txq_info->dp; txq_info->state = SFC_TXQ_INITIALIZED; @@ -243,8 +243,8 @@ sfc_tx_qfini(struct sfc_adapter *sa, unsigned int sw_index) SFC_ASSERT(txq != NULL); SFC_ASSERT(txq_info->state == SFC_TXQ_INITIALIZED); - sa->priv.dp_tx->qdestroy(txq->dp); - txq->dp = NULL; + sa->priv.dp_tx->qdestroy(txq_info->dp); + txq_info->dp = NULL; txq_info->txq = NULL; txq_info->entries = 0; @@ -466,7 +466,7 @@ sfc_tx_qstart(struct sfc_adapter *sa, unsigned int sw_index) txq_info->state |= SFC_TXQ_STARTED; - rc = sa->priv.dp_tx->qstart(txq->dp, evq->read_ptr, desc_index); + rc = sa->priv.dp_tx->qstart(txq_info->dp, evq->read_ptr, desc_index); if (rc != 0) goto fail_dp_qstart; @@ -511,7 +511,7 @@ sfc_tx_qstop(struct sfc_adapter *sa, unsigned int sw_index) SFC_ASSERT(txq_info->state & SFC_TXQ_STARTED); - sa->priv.dp_tx->qstop(txq->dp, &txq->evq->read_ptr); + sa->priv.dp_tx->qstop(txq_info->dp, &txq->evq->read_ptr); /* * Retry TX queue flushing in case of flush failed or @@ -548,7 +548,7 @@ sfc_tx_qstop(struct sfc_adapter *sa, unsigned int sw_index) sfc_notice(sa, "TxQ %u flushed", sw_index); } - sa->priv.dp_tx->qreap(txq->dp); + sa->priv.dp_tx->qreap(txq_info->dp); txq_info->state = SFC_TXQ_INITIALIZED; diff --git a/drivers/net/sfc/sfc_tx.h b/drivers/net/sfc/sfc_tx.h index c3edd3a58..e5ea6df75 100644 --- a/drivers/net/sfc/sfc_tx.h +++ b/drivers/net/sfc/sfc_tx.h @@ -54,7 +54,6 @@ struct sfc_txq { unsigned int hw_index; struct sfc_evq *evq; efsys_mem_t mem; - struct sfc_dp_txq *dp; efx_txq_t *common; }; @@ -109,6 +108,7 @@ struct sfc_txq_info { unsigned int state; unsigned int entries; struct sfc_txq *txq; + struct sfc_dp_txq *dp; boolean_t deferred_start; boolean_t deferred_started; unsigned int free_thresh; -- 2.17.1