From patchwork Thu May 26 02:49:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rongwei Liu X-Patchwork-Id: 111876 X-Patchwork-Delegate: rasland@nvidia.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 8CA47A0554; Thu, 26 May 2022 04:50:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 367E840150; Thu, 26 May 2022 04:50:05 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2077.outbound.protection.outlook.com [40.107.236.77]) by mails.dpdk.org (Postfix) with ESMTP id 2516F40146 for ; Thu, 26 May 2022 04:50:03 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ObmB2eNwa2KRl/9h2jMxnz9Gvs7ujqgKL4KS7fi+1XN45zCaebD4eMadKOP/z5MJwGqGH84BSZblw6BIjl56mnXbAyPmpZLo8ZYXcvLFqqTy3ufAxu5xygmY7Jk3kUpAkcP7AuLCWQICWLuUvMp2iJNTn8RFmiVUZYSLwAJXq+SiSk7IfNh5RBHwHw9WWXSm8GPrhYwshcvEUy8RxG8vpikg/zuf/9HBjvojGymemxoFe0d9dgMDsdFVs/yTRyVVGoi6sF66N3CzDAKrkRr/HWQCcd9WqCUynaxGEx1uJnXyO1eCfOf97wgx2AorDmrpa8RlISMOkEz2t+pNi0vkoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=d9TDeVI/j0d6LhMau5I4oPhUUwEv2tuNCJQGo7wiNog=; b=cScbhLORUcVcvA3NlmiKyRNCDBSLqVxGqpz2F/P8gLD2uivWUN6R8NrK2+ySAhOl+YphWr/sV33RkblehpHIOHByNZHxgXb1T8alluG3HG0jeiHahw94I1x6cDFeQ2dsQCNpDBss6jgH/MtQYQxl+m+J/KctyMOXj2qyTIQ2V2uluw7mSjhjBppbE2bI3T3thqEJvwvHmDlaNypvTJqhyB9qGRwuIbIrNDOZfTYUib0x/dnw+eWFv6BcQbaCoNPatKk1/yDGRpd4HR16IQLD6/75FVvnDaWH5NObsp3l7J4wWcEYe1oaxc3IKfKWuhUgV+fyCvrOCk7GpwygtDoRIQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.236) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=d9TDeVI/j0d6LhMau5I4oPhUUwEv2tuNCJQGo7wiNog=; b=WaMCo84zWwlEvQ3XjooA4/ECgzfG5ccJIg1PvPOss6PY6dmQbc2HvWlQ7LjIQYWvj/CG+FLUPkLXeVxSogVQyadnXdZtOtmONNcMvnD3n6XEBaaLXOBV+fFont7ih544fp6/m1OWTqXMyNRgBAFPAYYapRZwiWykGXP95rQjZWjBf/w24rfOpV56UoJKI+rSHdHxHjkVeXU9Msd5/6fI/T5Utb1aUNyKWpXneqYQjS8rptbmqA6MMHfqz0EM8tixiwg2tnVXA6FAeX4ytNIDfF391jgpjHcR20Ghu9mSmkBhMTifrwuV+4ypY4CJY6SxHNiYNs65pwqgmYD0e+LmXQ== Received: from DS7PR03CA0069.namprd03.prod.outlook.com (2603:10b6:5:3bb::14) by SA0PR12MB4431.namprd12.prod.outlook.com (2603:10b6:806:95::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13; Thu, 26 May 2022 02:50:00 +0000 Received: from DM6NAM11FT015.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3bb:cafe::bd) by DS7PR03CA0069.outlook.office365.com (2603:10b6:5:3bb::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13 via Frontend Transport; Thu, 26 May 2022 02:50:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.236) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 12.22.5.236 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.236; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (12.22.5.236) by DM6NAM11FT015.mail.protection.outlook.com (10.13.172.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.5293.13 via Frontend Transport; Thu, 26 May 2022 02:50:00 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL109.nvidia.com (10.27.9.19) with Microsoft SMTP Server (TLS) id 15.0.1497.32; Thu, 26 May 2022 02:49:59 +0000 Received: from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 25 May 2022 19:49:57 -0700 From: Rongwei Liu To: , , , CC: , Subject: [PATCH v1] net/mlx5: add Rx drop counters to xstats Date: Thu, 26 May 2022 05:49:41 +0300 Message-ID: <20220526024941.1296966-1-rongweil@nvidia.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4aff390d-eb9e-4a79-300b-08da3ec26d4a X-MS-TrafficTypeDiagnostic: SA0PR12MB4431:EE_ X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /T/e5Qka6XrMQx7RxcFa7R9d9QZsP8quE8rsj+XQxn/PcNzTkVtKulGASpINaf9tBQI33Fiy+aU41noQ9bNlpHAu6NJGcYoDkfd6lB3ue80FIVOTnPxYrD1e9yGZfDCntExHNvIH/DW/3PDGKZTJAXI9I1xQ3jc7NJvWjVY2sDZyMP6gytnzfLQF+M9oqtS5NkmPMhfDSUTR8/DF9dBzjIu0KYT/TNNMP1nfC5H16jSlzgMrFPoUoeKoOm+CdSawtGz4y4G+cDXwhCHf7lZt4cCP/md2oaSCrO7QJmHob6Iv/C5zFjlgjlp+xvZLUoAdiGQolPvnHknyvIf6we/W+aHLNaq+BoY5eAgBHWLWp/hRPaF7u3h39wk9sKTJox/4542RH/LxFoPk4gzSA9OXfABYkCWcLCJsdckchQR61lJSyn4zaiaSAW3zFCZDNKWGaA9cZo6xQ9yoBxxV2kcvJ6KtLV1QfRKIB51xMv9Ad5SfSEy76LdP0w2+TBH9NFqrJzNQZU7GNJFaXbkkxR77FdC2oxyMhLuGbur9TUkQTuzKcUSv7OfExEz0qo7/iJ64HUNdt+VIKcldAE6+0KELN9Xo9Ji5Rbi+OKhQpescIL9+Ykt1a96xUgRGxZINR8ILrjyTYwC71oV8Rgm0qpPiR5RqB3EKrlRQ1StD08sSl54BRtkNscVFmJUn/jyQtQTId3wi2wWFbzjwxrrpFyymaw== X-Forefront-Antispam-Report: CIP:12.22.5.236; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE; SFS:(13230001)(4636009)(46966006)(40470700004)(36840700001)(6286002)(508600001)(426003)(107886003)(26005)(2616005)(16526019)(336012)(186003)(47076005)(1076003)(40460700003)(36756003)(82310400005)(86362001)(6666004)(55016003)(36860700001)(54906003)(2906002)(316002)(81166007)(110136005)(5660300002)(83380400001)(7696005)(8676002)(70206006)(70586007)(4326008)(356005)(8936002)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2022 02:50:00.3252 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4aff390d-eb9e-4a79-300b-08da3ec26d4a X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.236]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT015.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4431 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 Add two kinds of Rx drop counters to DPDK xstats which are physical port scope. 1. rx_prio[0-7]_buf_discard The number of unicast packets dropped due to lack of shared buffer resources. 2. rx_prio[0-7]_cong_discard The number of packets that is dropped by the Weighted Random Early Detection (WRED) function. Prio[0-7] is determined by VLAN PCP value which is 0 by default. Both counters are retrieved from kernel ethtool API which calls PRM command finally. Signed-off-by: Rongwei Liu Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/linux/mlx5_ethdev_os.c | 66 ++++++++++++++++++++++++- drivers/net/mlx5/mlx5_defs.h | 2 +- 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c index 8fe73f1adb..6fbfcfad48 100644 --- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c +++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c @@ -1526,6 +1526,70 @@ static const struct mlx5_counter_ctrl mlx5_counters_init[] = { .dpdk_name = "rx_phy_discard_packets", .ctr_name = "rx_discards_phy", }, + { + .dpdk_name = "rx_prio0_buf_discard_packets", + .ctr_name = "rx_prio0_buf_discard", + }, + { + .dpdk_name = "rx_prio1_buf_discard_packets", + .ctr_name = "rx_prio1_buf_discard", + }, + { + .dpdk_name = "rx_prio2_buf_discard_packets", + .ctr_name = "rx_prio2_buf_discard", + }, + { + .dpdk_name = "rx_prio3_buf_discard_packets", + .ctr_name = "rx_prio3_buf_discard", + }, + { + .dpdk_name = "rx_prio4_buf_discard_packets", + .ctr_name = "rx_prio4_buf_discard", + }, + { + .dpdk_name = "rx_prio5_buf_discard_packets", + .ctr_name = "rx_prio5_buf_discard", + }, + { + .dpdk_name = "rx_prio6_buf_discard_packets", + .ctr_name = "rx_prio6_buf_discard", + }, + { + .dpdk_name = "rx_prio7_buf_discard_packets", + .ctr_name = "rx_prio7_buf_discard", + }, + { + .dpdk_name = "rx_prio0_cong_discard_packets", + .ctr_name = "rx_prio0_cong_discard", + }, + { + .dpdk_name = "rx_prio1_cong_discard_packets", + .ctr_name = "rx_prio1_cong_discard", + }, + { + .dpdk_name = "rx_prio2_cong_discard_packets", + .ctr_name = "rx_prio2_cong_discard", + }, + { + .dpdk_name = "rx_prio3_cong_discard_packets", + .ctr_name = "rx_prio3_cong_discard", + }, + { + .dpdk_name = "rx_prio4_cong_discard_packets", + .ctr_name = "rx_prio4_cong_discard", + }, + { + .dpdk_name = "rx_prio5_cong_discard_packets", + .ctr_name = "rx_prio5_cong_discard", + }, + { + .dpdk_name = "rx_prio6_cong_discard_packets", + .ctr_name = "rx_prio6_cong_discard", + }, + { + .dpdk_name = "rx_prio7_cong_discard_packets", + .ctr_name = "rx_prio7_cong_discard", + }, { .dpdk_name = "tx_phy_bytes", .ctr_name = "tx_bytes_phy", @@ -1625,6 +1689,7 @@ mlx5_os_stats_init(struct rte_eth_dev *dev) } } /* Add dev counters. */ + MLX5_ASSERT(xstats_ctrl->mlx5_stats_n <= MLX5_MAX_XSTATS); for (i = 0; i != xstats_n; ++i) { if (mlx5_counters_init[i].dev) { unsigned int idx = xstats_ctrl->mlx5_stats_n++; @@ -1633,7 +1698,6 @@ mlx5_os_stats_init(struct rte_eth_dev *dev) xstats_ctrl->hw_stats[idx] = 0; } } - MLX5_ASSERT(xstats_ctrl->mlx5_stats_n <= MLX5_MAX_XSTATS); xstats_ctrl->stats_n = dev_stats_n; /* Copy to base at first time. */ ret = mlx5_os_read_dev_counters(dev, xstats_ctrl->base); diff --git a/drivers/net/mlx5/mlx5_defs.h b/drivers/net/mlx5/mlx5_defs.h index f5c6f23d56..018d3f0f0c 100644 --- a/drivers/net/mlx5/mlx5_defs.h +++ b/drivers/net/mlx5/mlx5_defs.h @@ -47,7 +47,7 @@ #define MLX5_ALARM_TIMEOUT_US 100000 /* Maximum number of extended statistics counters. */ -#define MLX5_MAX_XSTATS 32 +#define MLX5_MAX_XSTATS 64 /* Maximum Packet headers size (L2+L3+L4) for TSO. */ #define MLX5_MAX_TSO_HEADER 192U