From patchwork Fri May 10 10:03:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Loftus, Ciara" X-Patchwork-Id: 140020 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 33A6543FEF; Fri, 10 May 2024 12:04:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BCF48402C4; Fri, 10 May 2024 12:04:20 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by mails.dpdk.org (Postfix) with ESMTP id 40DF1402BB for ; Fri, 10 May 2024 12:04:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1715335458; x=1746871458; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=E4B5U2k7cJJG692hZ8buyA5Y4lWFTV21PReSg1R8Saw=; b=nrgmY7u3Z4/YV3eU6A8d8bOQ5qKx+rBxwXX2S/nAnMBVZyneHxo22vpF XNECD8MLvdpLZn1nmnApvNqNhAqb/PiJENz0e2vXsxkm8dEYIg+KFMgW+ uGlc50E6gOJdZAKFGZyVyrVKH8gs+pYv+XyV9TVJkMPMmMSdDnu3blshU HdFVE25pnefCYzLqZpWfT8yi9E1a22q1f57hcTJlUf8vsKGa4cy4RDwIz pgah98ik4EhQJMM9EzXQ5ZFM9owoTUn/eMeRk64yNlROScCsjePF6KPUe oL4QD8idIWhlUBUGx0ghgwi95/d9yVJqSrr5Edi2T7E2JkovJmPeImDdV w==; X-CSE-ConnectionGUID: or8Vt6r+Qj+6XsGyhehk4A== X-CSE-MsgGUID: AtJNffU6RD6z1CCqA6j5OQ== X-IronPort-AV: E=McAfee;i="6600,9927,11068"; a="22460626" X-IronPort-AV: E=Sophos;i="6.08,150,1712646000"; d="scan'208";a="22460626" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 May 2024 03:04:17 -0700 X-CSE-ConnectionGUID: BbwgdqRkSlSHxnycdrVcFA== X-CSE-MsgGUID: o9stdmBATzyf8sz6ZZY1mA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,150,1712646000"; d="scan'208";a="29672596" Received: from silpixa00401177.ir.intel.com (HELO vm177..) ([10.55.128.139]) by orviesa009.jf.intel.com with ESMTP; 10 May 2024 03:04:16 -0700 From: Ciara Loftus To: dev@dpdk.org Cc: stephen@networkplumber.org, Ciara Loftus , stable@dpdk.og Subject: [PATCH 1/3] net/af_xdp: Fix port id not set in rx mbuf Date: Fri, 10 May 2024 10:03:56 +0000 Message-Id: <20240510100358.18815-1-ciara.loftus@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Record the port id in the af_xdp rx queue structure and use it to set the port id of the mbuf of a received packed. Bugzilla ID: 1428 Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD") cc: stable@dpdk.og Reported-by: Stephen Hemminger Signed-off-by: Ciara Loftus Acked-by:Maryam Tahhan Acked-by: Stephen Hemminger --- drivers/net/af_xdp/rte_eth_af_xdp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c index 268a130c49..fee0d5d5f3 100644 --- a/drivers/net/af_xdp/rte_eth_af_xdp.c +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c @@ -131,6 +131,7 @@ struct pkt_rx_queue { struct xsk_umem_info *umem; struct xsk_socket *xsk; struct rte_mempool *mb_pool; + uint16_t port; struct rx_stats stats; @@ -360,6 +361,7 @@ af_xdp_rx_zc(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) bufs[i]->data_off = offset - sizeof(struct rte_mbuf) - rte_pktmbuf_priv_size(umem->mb_pool) - umem->mb_pool->header_size; + bufs[i]->port = rxq->port; rte_pktmbuf_pkt_len(bufs[i]) = len; rte_pktmbuf_data_len(bufs[i]) = len; @@ -426,6 +428,7 @@ af_xdp_rx_cp(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) rte_pktmbuf_data_len(mbufs[i]) = len; rx_bytes += len; bufs[i] = mbufs[i]; + bufs[i]->port = rxq->port; } xsk_ring_cons__release(rx, nb_pkts); @@ -1779,6 +1782,8 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, process_private->rxq_xsk_fds[rx_queue_id] = rxq->fds[0].fd; + rxq->port = dev->data->port_id; + dev->data->rx_queues[rx_queue_id] = rxq; return 0; From patchwork Fri May 10 10:03:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Loftus, Ciara" X-Patchwork-Id: 140021 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 10BFF43FEF; Fri, 10 May 2024 12:04:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F32DC402EF; Fri, 10 May 2024 12:04:26 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by mails.dpdk.org (Postfix) with ESMTP id C9FEF402BB for ; Fri, 10 May 2024 12:04:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1715335465; x=1746871465; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=eIPM6CTtZnF+YyTVkTD5j+kd0Le1RPg+Et+ENbtc+jI=; b=RK3c/6NChVnDXaoqoqpe7zXtvcAGhr19hJR6LOkgsxnmNPijFEeiZN+g GdfePd1p/RTdpbBblE4Xgh1PAZxcv+FtPURD+7DAdS9ocHlQm/IbmsaNp VxAkg7OD9KnkHo55PfsG1GjcN0/yuhH20HujKxPv61+Ng/VN6PZold92k /HQNfb4IWsbAX1ZtG8SIA7ATSKKV2oOelMW1aLj+POQi82inqSNn3TCxX sImAB4j3Z49NBTLA/0+VZX1IWNLldcZHTu94ynseSnndFjPchz6H6u+pi /rPuRDmfiU1hUuJKav1CzlXyV7omsIq6/73aedVsTwOwn4lPQFlYYPIUM A==; X-CSE-ConnectionGUID: pb8TK21yQCeA+uQaoXhXig== X-CSE-MsgGUID: gWHGDCLpT8q1jAHyV8hb3g== X-IronPort-AV: E=McAfee;i="6600,9927,11068"; a="22460633" X-IronPort-AV: E=Sophos;i="6.08,150,1712646000"; d="scan'208";a="22460633" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 May 2024 03:04:24 -0700 X-CSE-ConnectionGUID: 1JfqTSTBQbqd5yIT8dDGsg== X-CSE-MsgGUID: OysLYIRnTW+CCa23Nf01kw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,150,1712646000"; d="scan'208";a="29672606" Received: from silpixa00401177.ir.intel.com (HELO vm177..) ([10.55.128.139]) by orviesa009.jf.intel.com with ESMTP; 10 May 2024 03:04:23 -0700 From: Ciara Loftus To: dev@dpdk.org Cc: stephen@networkplumber.org, Ciara Loftus , stable@dpdk.og Subject: [PATCH 2/3] net/af_xdp: Fix mbuf alloc failed statistic Date: Fri, 10 May 2024 10:03:57 +0000 Message-Id: <20240510100358.18815-2-ciara.loftus@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240510100358.18815-1-ciara.loftus@intel.com> References: <20240510100358.18815-1-ciara.loftus@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Failures to allocate mbufs in the receive path were not being accounted for in the ethdev statistics. Fix this. Bugzilla ID: 1429 Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD") cc: stable@dpdk.og Reported-by: Stephen Hemminger Signed-off-by: Ciara Loftus Acked-by: Maryam Tahhan --- drivers/net/af_xdp/rte_eth_af_xdp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c index fee0d5d5f3..968bbf6d45 100644 --- a/drivers/net/af_xdp/rte_eth_af_xdp.c +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c @@ -124,6 +124,7 @@ struct rx_stats { uint64_t rx_pkts; uint64_t rx_bytes; uint64_t rx_dropped; + uint64_t alloc_failed; }; struct pkt_rx_queue { @@ -339,6 +340,8 @@ af_xdp_rx_zc(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) * xsk_ring_cons__peek */ rx->cached_cons -= nb_pkts; + rxq->stats.alloc_failed += nb_pkts; + return 0; } @@ -408,6 +411,7 @@ af_xdp_rx_cp(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) * xsk_ring_cons__peek */ rx->cached_cons -= nb_pkts; + rxq->stats.alloc_failed += nb_pkts; return 0; } @@ -872,6 +876,7 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) stats->ibytes += stats->q_ibytes[i]; stats->imissed += rxq->stats.rx_dropped; stats->oerrors += txq->stats.tx_dropped; + dev->data->rx_mbuf_alloc_failed += rxq->stats.alloc_failed; fd = process_private->rxq_xsk_fds[i]; ret = fd >= 0 ? getsockopt(fd, SOL_XDP, XDP_STATISTICS, &xdp_stats, &optlen) : -1; From patchwork Fri May 10 10:03:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Loftus, Ciara" X-Patchwork-Id: 140022 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A609E43FEF; Fri, 10 May 2024 12:04:34 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8BD9A402F1; Fri, 10 May 2024 12:04:34 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by mails.dpdk.org (Postfix) with ESMTP id 924EE40608 for ; Fri, 10 May 2024 12:04:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1715335472; x=1746871472; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=zIvAizuWicm9DW9PVQdrTzQviVrFM+caNzUHrijUZJk=; b=djMWOwEaDhrFjgoLSkoAIwkekRkiNPCwWguKN1Pfu0qgZeNjdQW+YOiU ufUTJqirjTFHzmGEg2GZb3yGX4rffYXuo/HgnSLzF6NYFbkD+UOitNSLh Z4WTmSY9Ot050acSZCJstE0vKTDYpbQduwKlMbWw3rc1oOJAYKjrAoP/v 89mVoqFUcoEpyOp2qJDGCSbV2xcRTdXkSUpkq3P1WA0++F8pmcFtNkzs7 lN820oXFKlMNUT1kjd5W+k81pHJssjETEEWh/9gJLHchBLWgevfnJMJ7Y wq1MLFTVZreTYFcv39j8b1mIGT+5H4Uh1UFMUdZoW734V1NzEENRB3dNK A==; X-CSE-ConnectionGUID: sUPoXWBST0G00X3TpV205A== X-CSE-MsgGUID: kaVSzxWjQdCiL5X4hIIePA== X-IronPort-AV: E=McAfee;i="6600,9927,11068"; a="22460648" X-IronPort-AV: E=Sophos;i="6.08,150,1712646000"; d="scan'208";a="22460648" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 May 2024 03:04:31 -0700 X-CSE-ConnectionGUID: Zd1cecv/TLepY/tnW0GILQ== X-CSE-MsgGUID: O5Zgy4WVShu/zJlXXDlZgg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,150,1712646000"; d="scan'208";a="29672609" Received: from silpixa00401177.ir.intel.com (HELO vm177..) ([10.55.128.139]) by orviesa009.jf.intel.com with ESMTP; 10 May 2024 03:04:31 -0700 From: Ciara Loftus To: dev@dpdk.org Cc: stephen@networkplumber.org, Ciara Loftus , stable@dpdk.og Subject: [PATCH 3/3] net/af_xdp: Fix stats reset Date: Fri, 10 May 2024 10:03:58 +0000 Message-Id: <20240510100358.18815-3-ciara.loftus@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240510100358.18815-1-ciara.loftus@intel.com> References: <20240510100358.18815-1-ciara.loftus@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The imissed statistic was not properly reset because it was read directly from the kernel statistics. To fix this, take note of the kernel statistic when the stats are reset and deduct this value from the kernel statistic read during statistics get. Bugzilla ID: 1430 Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD") cc: stable@dpdk.og Reported-by: Stephen Hemminger Signed-off-by: Ciara Loftus Acked-by: Maryam Tahhan --- drivers/net/af_xdp/rte_eth_af_xdp.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c index 968bbf6d45..8f25134003 100644 --- a/drivers/net/af_xdp/rte_eth_af_xdp.c +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c @@ -125,6 +125,8 @@ struct rx_stats { uint64_t rx_bytes; uint64_t rx_dropped; uint64_t alloc_failed; + + uint64_t imissed_offset; }; struct pkt_rx_queue { @@ -884,7 +886,8 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) AF_XDP_LOG(ERR, "getsockopt() failed for XDP_STATISTICS.\n"); return -1; } - stats->imissed += xdp_stats.rx_dropped; + stats->imissed += + (xdp_stats.rx_dropped - internals->rx_queues[i].stats.imissed_offset); stats->opackets += stats->q_opackets[i]; stats->obytes += stats->q_obytes[i]; @@ -897,13 +900,25 @@ static int eth_stats_reset(struct rte_eth_dev *dev) { struct pmd_internals *internals = dev->data->dev_private; - int i; + struct pmd_process_private *process_private = dev->process_private; + struct xdp_statistics xdp_stats; + socklen_t optlen; + int i, ret, fd; for (i = 0; i < internals->queue_cnt; i++) { memset(&internals->rx_queues[i].stats, 0, sizeof(struct rx_stats)); memset(&internals->tx_queues[i].stats, 0, sizeof(struct tx_stats)); + fd = process_private->rxq_xsk_fds[i]; + optlen = sizeof(struct xdp_statistics); + ret = fd >= 0 ? getsockopt(fd, SOL_XDP, XDP_STATISTICS, + &xdp_stats, &optlen) : -1; + if (ret != 0) { + AF_XDP_LOG(ERR, "getsockopt() failed for XDP_STATISTICS.\n"); + return -1; + } + internals->rx_queues[i].stats.imissed_offset = xdp_stats.rx_dropped; } return 0;