From patchwork Thu Feb 7 12:17:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Rybchenko X-Patchwork-Id: 50168 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 D505D1B4DD; Thu, 7 Feb 2019 13:18:25 +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 6DFFF1B4B6 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 5B769600057 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 x17CI8td013207 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 3B4E61613EB for ; Thu, 7 Feb 2019 12:18:08 +0000 (GMT) From: Andrew Rybchenko To: Date: Thu, 7 Feb 2019 12:17:27 +0000 Message-ID: <1549541873-17403-5-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: Yes-6.784900-4.000000-11 X-TMASE-MatchedRID: w0BN55yLmNxKwmT1RH0TueEbUg4xvs+wSoCG4sefl8Qs/uUAk6xP7Ipb wG9fIuIThcnOL9mKiCagr80CieZqSo0GdWKgGbBhHcQQBuf4ZFuVCVhDx8tWMze7GDxzhb0QMCm LSFOvZt1tMbP5CeY5H80XtYxjZtjK+OKKp3hkzQjk7k9yXJiqqm5N71UY7eq8myiLZetSf8mfop 0ytGwvXiq2rl3dzGQ1Js2BBIj3hlTrbK8FiJhctk+3Oivgj1i39jox0c5HuN10j2YHrLbl7TmTU IrjEmPu8rCT1hjBM4QpewbKMkSUvP7xRxritJwoS4W/MRhJ1X4= X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 11-6.784900-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24412.006 X-MDID: 1549541894-b6D0fL3ogSpZ Subject: [dpdk-dev] [PATCH 04/30] net/sfc: avoid usage of RxQ 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" RxQ control structure contains primary process only data and will become primary process only. RxQ info get is supported in secondary process. Signed-off-by: Andrew Rybchenko --- drivers/net/sfc/sfc_ethdev.c | 7 ++----- drivers/net/sfc/sfc_rx.c | 10 +++++----- drivers/net/sfc/sfc_rx.h | 4 ++-- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index 10e032400..da697c134 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -1067,18 +1067,15 @@ sfc_rx_queue_info_get(struct rte_eth_dev *dev, uint16_t rx_queue_id, { struct sfc_adapter *sa = dev->data->dev_private; struct sfc_rxq_info *rxq_info; - struct sfc_rxq *rxq; sfc_adapter_lock(sa); SFC_ASSERT(rx_queue_id < sa->rxq_count); rxq_info = &sa->rxq_info[rx_queue_id]; - rxq = rxq_info->rxq; - SFC_ASSERT(rxq != NULL); - qinfo->mp = rxq->refill_mb_pool; - qinfo->conf.rx_free_thresh = rxq->refill_threshold; + qinfo->mp = rxq_info->refill_mb_pool; + qinfo->conf.rx_free_thresh = rxq_info->refill_threshold; qinfo->conf.rx_drop_en = 1; qinfo->conf.rx_deferred_start = rxq_info->deferred_start; qinfo->conf.offloads = dev->data->dev_conf.rxmode.offloads; diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c index c792e0b2e..dcccb96b1 100644 --- a/drivers/net/sfc/sfc_rx.c +++ b/drivers/net/sfc/sfc_rx.c @@ -688,7 +688,7 @@ sfc_rx_qstart(struct sfc_adapter *sa, unsigned int sw_index) rxq_info->type_flags, evq->common, &rxq->common); break; case EFX_RXQ_TYPE_ES_SUPER_BUFFER: { - struct rte_mempool *mp = rxq->refill_mb_pool; + struct rte_mempool *mp = rxq_info->refill_mb_pool; struct rte_mempool_info mp_info; rc = rte_mempool_ops_get_info(mp, &mp_info); @@ -1033,9 +1033,9 @@ sfc_rx_qinit(struct sfc_adapter *sa, unsigned int sw_index, rxq->evq = evq; rxq->hw_index = sw_index; - rxq->refill_threshold = + rxq_info->refill_threshold = RTE_MAX(rx_conf->rx_free_thresh, SFC_RX_REFILL_BULK); - rxq->refill_mb_pool = mb_pool; + rxq_info->refill_mb_pool = mb_pool; rxq->buf_size = buf_size; rc = sfc_dma_alloc(sa, "rxq", sw_index, EFX_RXQ_SIZE(rxq_info->entries), @@ -1044,9 +1044,9 @@ sfc_rx_qinit(struct sfc_adapter *sa, unsigned int sw_index, goto fail_dma_alloc; memset(&info, 0, sizeof(info)); - info.refill_mb_pool = rxq->refill_mb_pool; + info.refill_mb_pool = rxq_info->refill_mb_pool; info.max_fill_level = rxq_max_fill_level; - info.refill_threshold = rxq->refill_threshold; + info.refill_threshold = rxq_info->refill_threshold; info.buf_size = buf_size; info.batch_max = encp->enc_rx_batch_max; info.prefix_size = encp->enc_rx_prefix_size; diff --git a/drivers/net/sfc/sfc_rx.h b/drivers/net/sfc/sfc_rx.h index 3fba7d8ac..7231379a6 100644 --- a/drivers/net/sfc/sfc_rx.h +++ b/drivers/net/sfc/sfc_rx.h @@ -58,8 +58,6 @@ struct sfc_rxq { efx_rxq_t *common; efsys_mem_t mem; unsigned int hw_index; - unsigned int refill_threshold; - struct rte_mempool *refill_mb_pool; uint16_t buf_size; struct sfc_dp_rxq *dp; unsigned int state; @@ -128,6 +126,8 @@ struct sfc_rxq_info { struct sfc_rxq *rxq; boolean_t deferred_start; boolean_t deferred_started; + unsigned int refill_threshold; + struct rte_mempool *refill_mb_pool; }; int sfc_rx_configure(struct sfc_adapter *sa);