From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 21512A034C; Mon, 24 Oct 2022 11:45:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 112294281C; Mon, 24 Oct 2022 11:45:14 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2041.outbound.protection.outlook.com [40.107.236.41]) by mails.dpdk.org (Postfix) with ESMTP id 112884281C for ; Mon, 24 Oct 2022 11:45:12 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nWZdBxMRn1WZRh6Xjn1IwkaGbwS8zT20H1G20tiDAFPulqda+4xy653IDTqqCtvFasR5DdX4MBLCOwv7OrDQ4rnGEN58udsfpV11UfdDwVEyzg4HCQLoEK04zdFqlxUJS4wn4wI3a33ovuk6Dp+pXkUcrpdm3iHPfeGD4B9JX/Nucw/ji7x7ZlRnheWHsAmgvjs1Jds2nkKPcaaStDPOrh9PeDpcxu3ywdNcjTO26YuaZb6TbeLY8MMWNxmQUGiun3eUVTs9xaLmk4nX3M5bqd6mJvtNTCG0AEWBgmapZRglcPg+vwDengxrnjqPXclCONV78L+ECRio9imq4i1eUQ== 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=O6cgVJ90gaBuS5GhVs2qY+7l2ZtbQtFn4oBJpwkiu3A=; b=GVp9FppyGmIr7ycOoExKPUo4QZAkD6+N/oVsWH8QH/FYdUi5VpOYEt1Pa8Ckdbv/XVzFVyEGViMqc/XyJcAksPsqv+8ky7VnNAOzhxFkguYLHHq+4DfwxZR+sqBr+prNJ74lXxnZCBIKsavlYctdF2f/84FTtge7KJaeQaFECgJ89pW5OPHz/g11M3op/mJY+NwrkoKzetEQkbCbJmzZ4k+Q9TLt0Bd2PPES+R0R6K3+ow9DW5fV6npAx6Gg58FnUrbfOU8MKepmjX1jjNQTLvOg3ThUfq0PxVIyF6IdDfU5VxkihvlCRYiWdKFZVOQnklNxv4uCayrnpABcrW1/BQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; 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=O6cgVJ90gaBuS5GhVs2qY+7l2ZtbQtFn4oBJpwkiu3A=; b=Cp/ZkRgb4IOM/RwmF3x0E2RZ86VOqWChgcCfqSLbkJleI7DnJHIKQcUbJsOLSAvLpfLhF2MItI+BAdEPnrKeB5Lq88rw1O5uO9y9qJuI83qM9RAeGZKOcxXjXYpM3Bpp8RneBouKY4TfWjLrLGxWIJY9s05mM/+Us8ZC0Lro7hFliDYi3TAEpN8xtAcYg4Cy2ZuEIfvuM3ptE6SVKVyn+gURdUfRP0Hq6j7S5tODsD/6KU+zbHJh25xW21a1rVIsJKfBaLfSFxDPfYbrQZVMqMkhwoozSNDgE1zKQrXGHlgLX8NMPRlu9JLefleOTnI02dQY9GpeXBfH4m+gpTrWmg== Received: from DM6PR12MB3753.namprd12.prod.outlook.com (2603:10b6:5:1c7::18) by DS7PR12MB6071.namprd12.prod.outlook.com (2603:10b6:8:9d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.30; Mon, 24 Oct 2022 09:45:11 +0000 Received: from DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::7c8c:ea68:bd84:9458]) by DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::7c8c:ea68:bd84:9458%4]) with mapi id 15.20.5746.028; Mon, 24 Oct 2022 09:45:11 +0000 From: Slava Ovsiienko To: Suanming Mou , Matan Azrad , Ray Kinsella CC: "dev@dpdk.org" , Raslan Darawsheh , Ori Kam , Jack Min Subject: RE: [PATCH v6 08/18] net/mlx5: add HW steering counter action Thread-Topic: [PATCH v6 08/18] net/mlx5: add HW steering counter action Thread-Index: AQHY5JqWM+PnPhRcs06UcVs770++464dUVFg Date: Mon, 24 Oct 2022 09:45:10 +0000 Message-ID: References: <20220923144334.27736-1-suanmingm@nvidia.com> <20221020154152.28228-1-suanmingm@nvidia.com> <20221020154152.28228-9-suanmingm@nvidia.com> In-Reply-To: <20221020154152.28228-9-suanmingm@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR12MB3753:EE_|DS7PR12MB6071:EE_ x-ms-office365-filtering-correlation-id: 99673631-a38e-46cf-e053-08dab5a47182 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UKXNFM3N8mBdL63R8t67gq4HGH4yl86fG6x7GtrFzwjO7KzaGLJgRg2Ahqd0sitPn9mJgWpQIgn7c6X5whms7GGsNQsP1u5oay1OOVS+MO1evbxG7eSS4MndmRbDf/7/feMcFejhHlXIHMzLRvXkLo5lv7U/AwpH3ZyAYoFP2vfq94OW1phVZXDNBjN6TYmuS1dDlqi3JyWJ6NmjriRBA1PKXMSDLdWP1VNHpFxbG9RmbhEgBf+csoQgiCTQrlguQvkwYqzdubngu54RFYDY0Q1D8UtIyiNc+hww+t6Kob9FjLU9INjgjHY4F3HVzMJ7I9F+Il8uKdqHVQe1gDXc/9vWZJBgAMbOL3K18LHUEFUK+em3bzoypmUqGOBLn7c9T3h4C7MaP0NUzWBckxdEfjA5yrnVqHn1WqKa7eZc10802S/VtYt5NajvIWZrTpdOjWrYx+G/KWkZj7XhLHidnpV8SS1/CLHtR1KZ8ORJTWG4ck2HW3Sjxw4/twteSAONwzkTSq76PZa6HDwI1mKdobcYWlBPjKAutL0vtlF10AN1Z3pxIhrwwkZlqopY9GVdomG81iwwwOnOnK+BDpvYK4rH4N68ckoBgU1jSCvJaS3Rbxnb84NV3yITOs53B2toFcMTWL4ILFHDZ3ru5ZyKxtv/qJIH0XsRdc8oMWBsBtWX/iTChckEeHf9FEs7e3MLtkv03K+vZpS8W3nhNuVfRQxtrdjbkhaXT5FP+uI5YJtxY3iwOYzir4AdGgF1n2BJgzLoTjD4KtFl2o82pWdXog== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB3753.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(39860400002)(366004)(396003)(346002)(376002)(136003)(451199015)(478600001)(33656002)(71200400001)(38100700002)(38070700005)(122000001)(186003)(66476007)(8676002)(83380400001)(64756008)(66946007)(53546011)(66446008)(41300700001)(110136005)(54906003)(76116006)(52536014)(86362001)(26005)(66556008)(5660300002)(8936002)(2906002)(107886003)(9686003)(6506007)(4326008)(55016003)(316002)(7696005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?4r+v0rqnhax9c+pSmfzuMiPfPfpn8qJAgS857SrranLZ8ikvVNIT8jC47Djv?= =?us-ascii?Q?kH+15rjddiG2MDzr6uqfS0iTh94NteKZm08+uJTd6sCtaBVZZTk0LeU/UhdF?= =?us-ascii?Q?NXaxR1Btf8oAeYL3UiRWGhhvfZPq6yZr33EXNqQXL6MCSGvao2NjNIdkXfrb?= =?us-ascii?Q?2kZPoqkwXw9qxtG7YC+D0qvo9DTvfamA2Fehl83onCRSI4yTyIYZYLoyamlz?= =?us-ascii?Q?gBJpzPzHXy6lELMShxyJK0NiGOivmld6wbWd1871C0OowDYEePMht81Bnuor?= =?us-ascii?Q?wLbhBFJKB+g98+dBIyaK6xarXUNN209Kgx1+p9d2WGTAcjoKOywyjOM28s7x?= =?us-ascii?Q?Zf3OTUQ0KCnBptTGb6gqH7KKunGECGrFfAfP+tWoRHYTR0RfyvvopnozMHtX?= =?us-ascii?Q?A5PhpicEX5FqqHV/Jb/T1MDRqhWV132dwSazGsreSWq58MTy48ViV7nCdbrb?= =?us-ascii?Q?SgAOpqOOOL/zbXwpGS8x5BGOX20TQLsuYwc6Hcrb7axvidHGxp/uWGHs3cmG?= =?us-ascii?Q?WD+FafPYCDPKlmH2lkXeKeRIAGpAq0BrG3l6N4TdedM7wEEo98utcF41a+o5?= =?us-ascii?Q?bFhcgdtGR41yJULLllomrucmqAHrEjVbSBNOzdFGP+0TB6LdoWuPZtH5Q3o3?= =?us-ascii?Q?il6BwPCSDz1tOwAS9rOzry6ctDm3oIYc03pbqOGBMaytM18KagR4PSs2WlIW?= =?us-ascii?Q?OfOLK+zc0s9GSzjQEOBZ3/UBXHNQcQlw1/ErQHO1V7HkloEIEQ+O2e4sWvn4?= =?us-ascii?Q?qlmH+TgNaD0M/tOtA7tJn8EZBR8Z/+qIdC6hMQRkTNjlEUbkN19nOdY/NsHI?= =?us-ascii?Q?8GKVlvzj7H7vRmaMlp8LyHRpeASYfqgyf1xELjKJki+CxBrB13O+XgsPu3m6?= =?us-ascii?Q?PaR9MOjWOSGZkPmb/gJXc8hkeJc8Q7tELYjadr9guoRM6BCTd1KejTlo5Mhl?= =?us-ascii?Q?xh2JzVkT0+AuDjCnXx8hoV+hpFlPVsPXgoDO9aWX9HjtT5AxOzjZ1wnGuehe?= =?us-ascii?Q?S+/0MmKOB7W296+3nRLC2fb0JQAGFrzdgi7S3gLg71yRGMz7minQJf1E/qO3?= =?us-ascii?Q?9D3KIIRED7Uq5I2dk409OXE5i51N0BXc3vX3GXhC3iE4zXIx96ccj71EOeuH?= =?us-ascii?Q?AYhNciNsBORfoP7YcvARD4/LYH9wSr56bneQo7z7s9xQggP82E9bHhJh234T?= =?us-ascii?Q?+k16i7aLR+yszSzhYknSiq/b7HfPXqCW/EOCJORJQBz+zrRrDCGXih8i8dTD?= =?us-ascii?Q?WYMzK/vYsTWRoCXAXb9UZFLjKDYfNh1oodD6M3PRm1o98nfuTDGVYXk6we74?= =?us-ascii?Q?MF0X63IsEZY8IhBG4nv3SKpbvCRDL9vFLttBqX2Vy3syScBkdnFA6CNh1ScV?= =?us-ascii?Q?SRtX7tHAH9QYVdkXNq6e3C3i2SEt3VAa9cBCGdJzAZV62BTbAB7MRSS0agMk?= =?us-ascii?Q?GUAiq6zB8Lx/zTplX/Kp9zQRKa2yzyDUVeaMHkwesUnHl7YrAIaLzi5JLIAD?= =?us-ascii?Q?PAPbi8vPJwcQB85uOr+yah6ucsuPBh3nYg59X+zo3qSteb5pCH/W/ZyNTKw/?= =?us-ascii?Q?r6LzTilHIHQ4TYGFEiiKodStnN6D17qYX5S2Fxs2?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3753.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 99673631-a38e-46cf-e053-08dab5a47182 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Oct 2022 09:45:10.9388 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: W72eXUOhAX2BkVnvt2jzR0tQNyP+AKLGqhGSvkuEeZWzLdO+ZvOqgl7W/bHlodEQA2PXwYy9er79A2VgSYCgjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6071 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 > -----Original Message----- > From: Suanming Mou > Sent: Thursday, October 20, 2022 18:42 > To: Matan Azrad ; Slava Ovsiienko > ; Ray Kinsella > Cc: dev@dpdk.org; Raslan Darawsheh ; Ori Kam > ; Jack Min > Subject: [PATCH v6 08/18] net/mlx5: add HW steering counter action >=20 > From: Xiaoyu Min >=20 > This commit adds HW steering counter action support. > Pool mechanism is the basic data structure for the HW steering counter. >=20 > The HW steering's counter pool is based on the rte_ring of zero-copy > variation. >=20 > There are two global rte_rings: > 1. free_list: > Store the counters indexes, which are ready for use. > 2. wait_reset_list: > Store the counters indexes, which are just freed from the user and > need to query the hardware counter to get the reset value before > this counter can be reused again. >=20 > The counter pool also supports cache per HW steering's queues, which are > also based on rte_ring of zero-copy variation. >=20 > The cache can be configured in size, preload, threshold, and fetch size, > they are all exposed via device args. >=20 > The main operations of the counter pool are as follows: >=20 > - Get one counter from the pool: > 1. The user call _get_* API. > 2. If the cache is enabled, dequeue one counter index from the local > cache: > 2.A: if the dequeued one from the local cache is still in reset > status (counter's query_gen_when_free is equal to pool's query > gen): > I. Flush all counters in local cache back to global > wait_reset_list. > II. Fetch _fetch_sz_ counters into the cache from the global > free list. > III. Fetch one counter from the cache. > 3. If the cache is empty, fetch _fetch_sz_ counters from the global > free list into the cache and fetch one counter from the cache. > - Free one counter into the pool: > 1. The user calls _put_* API. > 2. Put the counter into the local cache. > 3. If the local cache is full: > 3.A: Write back all counters above _threshold_ into the global > wait_reset_list. > 3.B: Also, write back this counter into the global wait_reset_list. >=20 > When the local cache is disabled, _get_/_put_ cache directly from/into > global list. >=20 > Signed-off-by: Xiaoyu Min Acked-by: Viacheslav Ovsiienko