From nobody Tue Mar 3 05:05:26 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0D03F33D4FE for ; Mon, 2 Mar 2026 23:02:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772492531; cv=none; b=HX2WaKBtuoxWqF7vmaaHwqbznAOpmh3CPdXr5k04qWR/4OEQtRDZ6JlkUBae0YahsmfbcHhzogxdqj5uL26F4YF4qs2QVZj6sTewHkuzxR5yIel5Vkh+ykwf+KDhE1L/rtHdFy1Hn1mb8qCEM75bgpLoXiOnSBzbW3YZZveGwoE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772492531; c=relaxed/simple; bh=wHA22cycksa6IDZI2mJjj3iKVXzbsLjK+WUo6mlt/FQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OHqntNVb80m7LE6cfPF9R9I/vFndRqE43EZ/Cd6TtgcnAfI5mN1uNw0PzIbkxCrX0i/pV49I//9XozaWk1OJdvR0rTEhRQ2TVsf6hyYooOTE42IDxS4+jK7zFogNn65UX3Gi+hnN/1ZgguoPbpNt9aiGbBtPWx566Cz8qdHfxK8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=O7uzvUND; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="O7uzvUND" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-483487335c2so42176005e9.2 for ; Mon, 02 Mar 2026 15:02:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772492528; x=1773097328; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Wpu21j59crqNQYRnsgiGTYcfHJJE5cMtxeguSKrdFFk=; b=O7uzvUNDMIFAbQRDqewKFmDxdvBZ6fAukvGpeOpNnufsFeal1OVhb5AyNHA+7JASdY BYNl82zoD91Bovy6CKx8qzwzAu/r29WxqMFYdcUWXNAOEAFP2kPUsDS/ORHh/PWR+T3v +4zI8xS8OV0G7k2ROUdLQIy0FUZNnvqmmVW2sNBG1Dc036/QwMlG8A4CKVyk7EYCIFKt xQjblX89XeF0JxDtPzHD+QCeXlgHWz4yLtD7mwvSiP5Ie4LS4rOYGptPxQzsdMuUAdSA 3s+HkXykEjGWqNxmzUGcC5fFKo9yIAnN3L2ZoSG++QPrqQH3Sj+RGBZI9awa1tYWS609 4ofQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772492528; x=1773097328; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Wpu21j59crqNQYRnsgiGTYcfHJJE5cMtxeguSKrdFFk=; b=ReHVsl6uc8yhfje1mRA/63d8uFkT6IVz1DEFVN3gg8NK3C09pf7z3WPbSpSnsc34cg UHW4LOoTXayYkInvXTRuIGIhL0Ck5bjtTwPscbYSiZCVB/8U4jq/Cl6MYa8XTpz7vV9O lhOmKeVNTEjRKUBQewRYoJ+7wwghY0zSUoActZN5696YRvb4zrBFCEwflYgOL6zb3GaH SgKxAx3RmupOQKwcna5JpclT37iCCrM1/IN8Sg92g4ooNcJSZMsFjUt7RVor3JBiYOBB 6oH+9KEZp1a2c9Kvi8+hKpnX0UqeR2HCl4FtkI3I3SsQHtza9XOiEupVbqzQpsfoJ2jW gD0w== X-Forwarded-Encrypted: i=1; AJvYcCXDcLinDnlPUO/zwRmeop8v6lbTqx957W5ZLw0Wo1cJIvXq9c56Yz0FAze/ZcmhncXSnNkVCxjzBuJYAuY=@vger.kernel.org X-Gm-Message-State: AOJu0YyqrE8a/LiiR2tQCJ07vZoDSE3DM7Gael+GP4cp6H1tEtTqsjLa 92io9T4JpdfgZ1YZdSlnPFpROqpVOSAdSp48Cz2jVhSh2nc42UANtGcP X-Gm-Gg: ATEYQzyLXTZttyeqUuZ9nODqXaNWhRR7yz+DtuTZs81oQUc+YUCNQv+knS51mulZ9ca Om9WNFIiafrMqey8YHmgyutXnYxP68gLBrp8TvqiFi4LZW1kGJs8i3D0Msrcucleiwevb2jSeXi tZIdIb0ddDTzNnCXC/43caUhpSCgrb+X3pc5Ny3LVTo76MzfFvmob1o6lAG31rE32bVWjoz+JrN OaI4UhHnh4AL9ytG8jP/26NKfz3mJs0i3sZPPQrd75v+nLrk90aYrB3P8WAfO8A1UAXOeqj9Adj NH8DgjwAM2jpaitXC6NcpmXZEALdfoPQJahoip3E6O8TFQYGetpvhVEEE3K9iluoMz3LMpIUPgH soTcA3kfmmsD9WWn6KoUPZnD2cZV7nebTFu3oU0xXLlbvBfL8di7bLZR/AsZWfthVqST8acbXic t664ODcYS3T4s/pFoZWt4O X-Received: by 2002:a05:600c:3b02:b0:480:3a71:92b2 with SMTP id 5b1f17b1804b1-483c9bedac6mr233724865e9.26.1772492528301; Mon, 02 Mar 2026 15:02:08 -0800 (PST) Received: from localhost ([2a03:2880:31ff:10::]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483c3b4a121sm303002795e9.8.2026.03.02.15.02.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Mar 2026 15:02:07 -0800 (PST) From: Mohsin Bashir To: netdev@vger.kernel.org Cc: alexanderduyck@fb.com, alok.a.tiwari@oracle.com, andrew+netdev@lunn.ch, andrew@lunn.ch, davem@davemloft.net, dg573847474@gmail.com, donald.hunter@gmail.com, edumazet@google.com, gal@nvidia.com, horms@kernel.org, idosch@nvidia.com, jacob.e.keller@intel.com, kernel-team@meta.com, kory.maincent@bootlin.com, kuba@kernel.org, lee@trager.us, leon@kernel.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, linux@armlinux.org.uk, mbloch@nvidia.com, mike.marciniszyn@gmail.com, mohsin.bashr@gmail.com, o.rempel@pengutronix.de, pabeni@redhat.com, saeedm@nvidia.com, tariqt@nvidia.com, vadim.fedorenko@linux.dev Subject: [net-next V4 5/5] eth: mlx5: Move pause storm errors to pause stats Date: Mon, 2 Mar 2026 15:01:49 -0800 Message-ID: <20260302230149.1580195-6-mohsin.bashr@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260302230149.1580195-1-mohsin.bashr@gmail.com> References: <20260302230149.1580195-1-mohsin.bashr@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Report device_stall_critical_watermark_cnt as tx_pause_storm_events in the ethtool_pause_stats struct. This counter tracks pause storm error events which indicate the NIC has been sending pause frames for an extended period due to a stall. The ethtool_pause_stats struct reports these stalls as a single value, whereas the device supports tracking them per priority. Aggregate the counter across all priority classes to capture stalls on all priorities. Note that the stats are fetched from the device for each priority via mlx5_core_access_reg(). Signed-off-by: Jakub Kicinski Signed-off-by: Mohsin Bashir --- .../ethernet/mellanox/mlx5/core/en_stats.c | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c b/drivers/n= et/ethernet/mellanox/mlx5/core/en_stats.c index a8af84fc9763..1a3ecf073913 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c @@ -916,11 +916,30 @@ static int mlx5e_stats_get_ieee(struct mlx5_core_dev = *mdev, sz, MLX5_REG_PPCNT, 0, 0); } =20 +static int mlx5e_stats_get_per_prio(struct mlx5_core_dev *mdev, + u32 *ppcnt_per_prio, int prio) +{ + u32 in[MLX5_ST_SZ_DW(ppcnt_reg)] =3D {}; + int sz =3D MLX5_ST_SZ_BYTES(ppcnt_reg); + + if (!(MLX5_CAP_PCAM_FEATURE(mdev, pfcc_mask) && + MLX5_CAP_DEBUG(mdev, stall_detect))) + return -EOPNOTSUPP; + + MLX5_SET(ppcnt_reg, in, local_port, 1); + MLX5_SET(ppcnt_reg, in, grp, MLX5_PER_PRIORITY_COUNTERS_GROUP); + MLX5_SET(ppcnt_reg, in, prio_tc, prio); + return mlx5_core_access_reg(mdev, in, sz, ppcnt_per_prio, sz, + MLX5_REG_PPCNT, 0, 0); +} + void mlx5e_stats_pause_get(struct mlx5e_priv *priv, struct ethtool_pause_stats *pause_stats) { u32 ppcnt_ieee_802_3[MLX5_ST_SZ_DW(ppcnt_reg)]; struct mlx5_core_dev *mdev =3D priv->mdev; + u64 ps_stats =3D 0; + int prio; =20 if (mlx5e_stats_get_ieee(mdev, ppcnt_ieee_802_3)) return; @@ -933,6 +952,17 @@ void mlx5e_stats_pause_get(struct mlx5e_priv *priv, MLX5E_READ_CTR64_BE_F(ppcnt_ieee_802_3, eth_802_3_cntrs_grp_data_layout, a_pause_mac_ctrl_frames_received); + + for (prio =3D 0; prio < NUM_PPORT_PRIO; prio++) { + if (mlx5e_stats_get_per_prio(mdev, ppcnt_ieee_802_3, prio)) + return; + + ps_stats +=3D MLX5E_READ_CTR64_BE_F(ppcnt_ieee_802_3, + eth_per_prio_grp_data_layout, + device_stall_critical_watermark_cnt); + } + + pause_stats->tx_pause_storm_events =3D ps_stats; } =20 void mlx5e_stats_eth_phy_get(struct mlx5e_priv *priv, --=20 2.47.3