From patchwork Thu Feb 7 12:17:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Rybchenko X-Patchwork-Id: 50166 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 836601B4C1; Thu, 7 Feb 2019 13:18:22 +0100 (CET) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id 332681B4B0 for ; Thu, 7 Feb 2019 13:18:14 +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 08A0260005B for ; Thu, 7 Feb 2019 12:18:13 +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:09 -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:09 -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 x17CI86O013210 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 484431613E4 for ; Thu, 7 Feb 2019 12:18:08 +0000 (GMT) From: Andrew Rybchenko To: Date: Thu, 7 Feb 2019 12:17:28 +0000 Message-ID: <1549541873-17403-6-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 X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24412.006 X-TM-AS-Result: No-6.580800-4.000000-10 X-TMASE-MatchedRID: 8NOTHFHnrRlKwmT1RH0TueEbUg4xvs+wSjyMfjCRfaPny/syo1tPD6Ym f3n26fzqyQX9SM+DhXmHc7WCfeefFkN64DZ+6OgVDB+ErBr0bAPEoDEGChh7CXaMP8m6qk6SgST /J9Kk1nHE5Ckw2lIjSd/OaZPtLimjGAS4UVZrvjZN3UUbIf4esn0tCKdnhB589yM15V5aWpj6C0 ePs7A07U9hWalM11QasKX8eVaVO7IpfJBHIPIZnJ13MMdv+1U4o9X7jZKvbplWXGvUUmKP2w== X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--6.580800-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24412.006 X-MDID: 1549541893-wDuSsYe7xM-0 Subject: [dpdk-dev] [PATCH 05/30] net/sfc: avoid usage of TxQ control structure in info get 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" TxQ control structure contains primary process only data and will become primary process only. TxQ info get is supported in secondary process. Signed-off-by: Andrew Rybchenko --- drivers/net/sfc/sfc.c | 2 +- drivers/net/sfc/sfc_ethdev.c | 5 ++--- drivers/net/sfc/sfc_tx.c | 16 ++++++++-------- drivers/net/sfc/sfc_tx.h | 4 ++-- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/drivers/net/sfc/sfc.c b/drivers/net/sfc/sfc.c index 0d7311d68..bead373ea 100644 --- a/drivers/net/sfc/sfc.c +++ b/drivers/net/sfc/sfc.c @@ -281,7 +281,7 @@ sfc_set_fw_subvariant(struct sfc_adapter *sa) struct sfc_txq_info *txq_info = &sa->txq_info[txq_index]; if (txq_info->txq != NULL) - tx_offloads |= txq_info->txq->offloads; + tx_offloads |= txq_info->offloads; } if (tx_offloads & (DEV_TX_OFFLOAD_IPV4_CKSUM | diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index da697c134..87a2c9431 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -1104,12 +1104,11 @@ sfc_tx_queue_info_get(struct rte_eth_dev *dev, uint16_t tx_queue_id, SFC_ASSERT(tx_queue_id < sa->txq_count); txq_info = &sa->txq_info[tx_queue_id]; - SFC_ASSERT(txq_info->txq != NULL); memset(qinfo, 0, sizeof(*qinfo)); - qinfo->conf.offloads = txq_info->txq->offloads; - qinfo->conf.tx_free_thresh = txq_info->txq->free_thresh; + qinfo->conf.offloads = txq_info->offloads; + qinfo->conf.tx_free_thresh = txq_info->free_thresh; qinfo->conf.tx_deferred_start = txq_info->deferred_start; qinfo->nb_desc = txq_info->entries; diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c index aa73d2642..c3b089fd8 100644 --- a/drivers/net/sfc/sfc_tx.c +++ b/drivers/net/sfc/sfc_tx.c @@ -168,10 +168,10 @@ sfc_tx_qinit(struct sfc_adapter *sa, unsigned int sw_index, txq->hw_index = sw_index; txq->evq = evq; - txq->free_thresh = + txq_info->free_thresh = (tx_conf->tx_free_thresh) ? tx_conf->tx_free_thresh : SFC_TX_DEFAULT_FREE_THRESH; - txq->offloads = offloads; + txq_info->offloads = offloads; rc = sfc_dma_alloc(sa, "txq", sw_index, EFX_TXQ_SIZE(txq_info->entries), socket_id, &txq->mem); @@ -180,7 +180,7 @@ sfc_tx_qinit(struct sfc_adapter *sa, unsigned int sw_index, memset(&info, 0, sizeof(info)); info.max_fill_level = txq_max_fill_level; - info.free_thresh = txq->free_thresh; + info.free_thresh = txq_info->free_thresh; info.offloads = offloads; info.txq_entries = txq_info->entries; info.dma_desc_size_max = encp->enc_tx_dma_desc_size_max; @@ -434,21 +434,21 @@ sfc_tx_qstart(struct sfc_adapter *sa, unsigned int sw_index) if (rc != 0) goto fail_ev_qstart; - if (txq->offloads & DEV_TX_OFFLOAD_IPV4_CKSUM) + if (txq_info->offloads & DEV_TX_OFFLOAD_IPV4_CKSUM) flags |= EFX_TXQ_CKSUM_IPV4; - if (txq->offloads & DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM) + if (txq_info->offloads & DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM) flags |= EFX_TXQ_CKSUM_INNER_IPV4; - if ((txq->offloads & DEV_TX_OFFLOAD_TCP_CKSUM) || - (txq->offloads & DEV_TX_OFFLOAD_UDP_CKSUM)) { + if ((txq_info->offloads & DEV_TX_OFFLOAD_TCP_CKSUM) || + (txq_info->offloads & DEV_TX_OFFLOAD_UDP_CKSUM)) { flags |= EFX_TXQ_CKSUM_TCPUDP; if (offloads_supported & DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM) flags |= EFX_TXQ_CKSUM_INNER_TCPUDP; } - if (txq->offloads & DEV_TX_OFFLOAD_TCP_TSO) + if (txq_info->offloads & DEV_TX_OFFLOAD_TCP_TSO) flags |= EFX_TXQ_FATSOV2; rc = efx_tx_qcreate(sa->nic, txq->hw_index, 0, &txq->mem, diff --git a/drivers/net/sfc/sfc_tx.h b/drivers/net/sfc/sfc_tx.h index 146b805ca..efb486d32 100644 --- a/drivers/net/sfc/sfc_tx.h +++ b/drivers/net/sfc/sfc_tx.h @@ -57,8 +57,6 @@ struct sfc_txq { efsys_mem_t mem; struct sfc_dp_txq *dp; efx_txq_t *common; - unsigned int free_thresh; - uint64_t offloads; }; static inline unsigned int @@ -113,6 +111,8 @@ struct sfc_txq_info { struct sfc_txq *txq; boolean_t deferred_start; boolean_t deferred_started; + unsigned int free_thresh; + uint64_t offloads; }; int sfc_tx_configure(struct sfc_adapter *sa);