From patchwork Fri Oct 19 15:21:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Slava Ovsiienko X-Patchwork-Id: 47085 X-Patchwork-Delegate: shahafs@mellanox.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 D15EA1B272; Fri, 19 Oct 2018 17:21:45 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0085.outbound.protection.outlook.com [104.47.2.85]) by dpdk.org (Postfix) with ESMTP id B49017D52 for ; Fri, 19 Oct 2018 17:21:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=b0/XepOgXwrv5V0NGsEdEiL2K40ZgW85fTKV40y5lZA=; b=FKGbh8/a5gl3ObevY5jug92weHOU0ul29cm0MMthkeCW/NUq4p2ulNQ4/LgET91ksXuHet2Afq1k6uKYEJnnbJ9MORIHKaGuJtLX1xVXXGRIYZ18omgU2dJAF/GaT7/vfBtICFrzyPmtJipkQKkpaHtCRYneaGetDf8oO+kv4xo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.31; Fri, 19 Oct 2018 15:21:35 +0000 From: Viacheslav Ovsiienko To: shahafs@mellanox.com, yskoh@mellanox.com Cc: dev@dpdk.org, Viacheslav Ovsiienko Date: Fri, 19 Oct 2018 15:21:05 +0000 Message-Id: <1539962470-10950-2-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> References: <1539784438-29242-1-git-send-email-viacheslavo@mellanox.com> <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: CWXP265CA0079.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:39::19) To AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b27cff15-ffdf-41e0-e241-08d635d68ee6 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM4PR05MB3268; X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 3:L2sBTujGbLlyUuB2TxXE7VCPR70FGIBff4Z7jYsI60gfF6i9OBy8sUm1OyJsqIxw5vr1LhSuO95UKCgwEAGa/M0p9MHH2yIB75jR66WfY81VHPFbcE/l75vlC9kLMKaDIZpPhVOB2bkiESG8URIjXhCqQlDcowkrjET59jTQBiFmUWMPuFjjpyKk6u3ZAumoi8D9Rflcq/OymsODd1tgugrgXdT7eUWfqMMwUMbaDfmhX+1wkw/J09rIZFsFJMcw; 25:gh/1hnZO12gLP1S81pSuLPk+wChXSchel+5VTbq7Ypkm2yEXJ736gO8SAL3H2XqzovoC1XOoISUSqlVBm93qd+ApScqwFSUb1+mcQkReUDGD0h2HbSp/1laYzHFeXAuAkLfLfbASbqFRjmedTh8Mw07g6+tMYVkB6VHhd0P1oiVwC3384bphEJ4gKlmJt0IOYlPBtpqBLcpRVyifMOnH7MvioW22BkMojflgLKVFyg3TmCxz3yAIayznRruTLZujkMsO4GLXFIvG02aIVzF3wQKLj5+/7cngkG6MeNMXXksUSobZlvzL5IIRwYmqFw1scQa4LNlUDjHM0TTkcnK5fQ==; 31:TZ+NQdUwXvMNJC+bc3r86t33c7t1bAElqo9nCusU8Oo+U/+OiGUyPki/demI5QKt9yG3r24X1cUKxOerMfuLg32J8clX2G+CSObK+DQrq6dDohtFgnMY5KCkIRY4z3y99x+z7CgAFvQRO7HOa7ZAGuxEMU+GSUfSCRO4fxjBEPUISCsJksSrPdL/NCw520pn3BXMmWfVgP6c7LzIUBqQW9Rppf3E9HmqZADSHYG9xac= X-MS-TrafficTypeDiagnostic: AM4PR05MB3268: X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 20:BP144vwkngfvWGlCDaE5CiwFbw3rrfqGEW4+ReX9lLOCgeCmuFhp3PwyjIIcAQSUpzPXpO6lrAdkBRyvke3lRfZwOpc+1RGeaz3nLfu1tvx1DkWTq1xh8UYGBepELFbc5XBgV9+SegLDemryuuzjqs+wqHbdrwiD8fj5fJ2mSe93Je0Eeazl9KJjlJa1k4VA4D2gJOdbdUUAm6eh0yN9D7GiPKvYzNEXUB1PIO29nu1LoQsugKW7cCv8sNiOFxkdQU+yrVfnY9DhTOq7lajFDi0/pahNx4dJNpVCegaagjSBKKAfw9FJ5gIMJraJCLUwjwtN1K7cCpX4VHM+O/T+5BndzYVIpmLqLs+DJMjksxpRVpz5W2brnHpTS9bDIooWnN0dZtYw0BWcMkJ6mwpvGKK5zu509GJgFBai6MZFWSbF6DecAU0zvTIuBTho9t/2EG2g+rmy9Y/aIX8XI7V9GqY8lNp49czLRCD2qn04dRXTm5oJQGl4MEHf4BNI2tKi; 4:zv9WRdWn/58lE/H+5+pxJEzfx7fmrOq0yaJKtTphK3CKnE2VI3TfctpEOTcNvs+Xcy51TIlf4FUrqGAJAwfcS4TVQ23XB1RWQtsfbcLxJJkjunHVStZ2AOiH+6bE7bacqnD1FiEaiwTP02nU6shtmZwe3IScBuwesinBFuz/It0S2Dqhd9bL+5HWL+tF1pDAAWp6cW06DXMXuF/eu/1HfIxFeC587mPWGk5TybVXaeX+OfxYaNi6QBD1OJ4Ns2RnkmPiYLMDixBcdJzqqap3sQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:AM4PR05MB3268; BCL:0; PCL:0; RULEID:; SRVR:AM4PR05MB3268; X-Forefront-PRVS: 0830866D19 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39850400004)(376002)(366004)(136003)(396003)(199004)(189003)(2906002)(8676002)(50226002)(69596002)(33026002)(6116002)(3846002)(476003)(446003)(4326008)(11346002)(76176011)(7696005)(486006)(51416003)(386003)(186003)(956004)(81156014)(81166006)(8936002)(25786009)(2616005)(36756003)(14444005)(105586002)(86362001)(66066001)(47776003)(97736004)(16526019)(26005)(316002)(16586007)(52116002)(68736007)(50466002)(5660300001)(478600001)(48376002)(8886007)(55016002)(21086003)(4720700003)(6636002)(6666004)(106356001)(107886003)(53936002)(7736002)(85306007)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3268; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR05MB3268; 23:1IIDqjzwzuchg8jwkGXMJFt2DzByyxqL7L70nJHP0?= +7tObAItGXhVi+jcViBofnSXTkXRRIbX73oznG7AqOtQgAQvRBo19LMBZPAL495TALyxGowMXRj3e8mJVyvggGiVJBQJ3cYExmsfKOOX2tBLrBZxQiQ6GbQkpTiidqdYDzPeqzbLV2jOiw2D97UhSrrw9wwAVfG1s5cvcFIC0jkgP8wilcTqcFCuE32pq9n972f4AEWpeAQpS4f2BdCvFWb8CMY7OZfVm4NYWZVG+Ip82PwVhp1ahvgImTmmo6yDJJRgT/f9K1sbNcJJc49vDhUJqpL2F9KFv8mjClKXk0T7uWtd1wubzyaYKUH2HoC8XGYW9AjFmHSk7SrkQtWh0hDQpxkcpe4Y2im3sX1rkGG2v+GxjMgZrW9mDZqbvsDcAn5wFo8T67Sxrmz/XohXfu/v3PSFyqAffrJAesGZjzJAe7K7cHwsHRKhHPmLZJ+VznLe3qgvWdHouHrMqs33Qn/PTJjPwrGwLzhJFE1GUrA5Q+e6OTrLOkdJfgJgJM4wrxgeHH1xjTRXOZqEtq1mct5xg1oUdTzkB84fS4LriJIZTobIQddcJ/EkpCjKyxLCr3J3426ZzcPVQmgk4G7skCAvJL24+Q1phH2bO91amn+2KiP8cKeo6ue5JqUcFURXgW3v/ACaPurnAjLMbfRrhwfxBOo/riOsVcAp8zS7zstqG8bR9HxSFtgfLNnyc6c9V1h1Rh7bSh2saodGrqFIuJ9NFm3PyBiG7fL//i2XRPbX0BFuhaeLOsu+PlVf2gq3btBucBQnkrADufd02QD3oIYVKOxkz4N0jiREiQGWfUINV5ac2Gb05yrsOkmrl491sKqJoT4GAxoUUV01dfXVzrGAmBxL+kUpXR7IyEWGpHD/zHqNdMbdNA1XTELkOpehZkIGYhu5in0rtIsROKWWV2FJAGJjZ2dAaCxZlW4pAOqE9B4OaGMOf8l8J+C2mVZOqdTPK2Hd62+rahwQPaMIFafDtzMfHqXn+b3IvvS3pvXi7M8yMC6I09PSHe7n0L8yEBpDfnfH0eL2DXYr634TvBsz9zJx1k9g8r/JMfTo/0galzbSwylfJ9BFvYhfc4Pt3YnabdhXk4YEZkc845NgJaMjUViwocwx52x0EPYdN4kuFGdV6rsVLRngilpbltKsICFA9gF+t7Pm5mwHCmGfQgFx1tcvae6h7Vv2PpA7IsfyhLRWgZiCgGYXR6Ln8/qgFxcMy8sMKc7agSi/RleF3rTjJXjufW4GZdzJG2oM39fHa7hsxX/2vXCsh7/z0qn/LA= X-Microsoft-Antispam-Message-Info: Hz/3gqiY9pXR70sO68bIsG0NL9tx7uFdmkmbOwKO9Hse9L5ZYrm/gAAwDzm/N2KVHp1rDOUK/JFEEPk5SUqhO3dpYfH5KYvFp/41M8nyEknUuitmV/Xx8Hdlni/pNuzXu0ySnU7xmx1IG3PIH0Ys0mPehhUH853YoZQxtQZ8ftLOLB0rF/TFZqSE1Ea/p8i8lwRkJsAcZGXgNirs9p1Y9dpEfvw4UMeCHngHdPFDaMiUujK3Ptrxe9njVzOlpK9v86gJZPnPnjzE/OqxYjVotMOzOyvzx3aDczdRaUxwq1ahrIYfbpv3xAL0u4NgD38rF6wWqH9E5r2FzmmVHKuKNBSPme8Mbp/C7YHxlSZuyPc= X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 6:ua+srEdhyUA4vprgVNVfxzfYS/gYgxU8yaKruW0OCwgqLY+YYNMVPbf24zIzsQdtnfUxt8NqM2NMIqItyEwW3hhqQkp27dbLJAkjTaWpNKACMKsX0LI6+G1anZogbdof7Eh2SkRoEnRn+OFhcsYSaVMhpE1kjPs1bUoLu65EkmBpPEvjw8BPd78EvulmD+1Hct4GyIPW3wyvmLOeDKVxIlPTvFLGUO0/6wZIVuHOSCKy7k1hy53TPlaVP9qrpOhgo/k1YS1FxaIRFXPLueMCBvdIwa7HIzwHLZ6FGfiJng0m0/V7eY8nxRTKCd9L02xHbeaPAzaaUf+hB+6iVyWr0DpKnZpZAPehwRF8m0OPO4i3+vUY8PaEDtUk6ciYBeEo47vOXYd/WyTdKQm3i2li+fL3AXl7TfY0ayd6+5HcpCKunzDmCYAK84Wn8FFrxcPmbedRkJLdLNi3ZIGW/v834Q==; 5:QgI/NWI/35zZs14Ulkcj1hNwq/SKzrzyK4qHsekN0XScotFDGlatE3OJ11lxleaJHzAVxfLHylci3b8GxkAJBNThFwvvbjz1vjAiBZevZFAPYlMG68QJZVye6Q9zynLz2TOknSR3OfoSxW/fdWwwKoxVrawOZVaL+NEqXDuNkyE=; 7:M+pLrUqHHfs5tHfOfNPLpt4nOMQXoRg9LPlDa98MxFDfhOUGPgTphQ/IvFs8qB/moYyoD6AO1maLFXrvFuQ01ABNBhovhKnI0T0ZmGDP60hurPa5rNqZsOKXBfBo3BKATiKCJOP0xWJN0jR+NBS0CFKHdn/OD4AVTObxCYsiZW0CwSBPkDEP4JxUbyyom8bqVJctOPpUD4PMk9yvs7yZ9FFMOo7pslLxRqBxxFFQa8e1BparM9/2u1Th9hUA7TCL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2018 15:21:35.1116 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b27cff15-ffdf-41e0-e241-08d635d68ee6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3268 Subject: [dpdk-dev] [PATCH v3 1/6] net/mlx5: flow counters object create function bugfix 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" The first part of patchset provides the separate commit for bugfix. Flow counter object was not freed in case of memory allocation error. The call of counter Verbs object deallocating function is added. The initial value of reference counter is set to one in order to provide the correct counter object freeing in the flow_verbs_counter_release() function. Signed-off-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow_verbs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c b/drivers/net/mlx5/mlx5_flow_verbs.c index 4ae974b..6ddb13b 100644 --- a/drivers/net/mlx5/mlx5_flow_verbs.c +++ b/drivers/net/mlx5/mlx5_flow_verbs.c @@ -72,6 +72,7 @@ }), .hits = 0, .bytes = 0, + .ref_cnt = 1, }; if (!tmpl.cs) { @@ -80,6 +81,7 @@ } cnt = rte_calloc(__func__, 1, sizeof(*cnt), 0); if (!cnt) { + claim_zero(mlx5_glue->destroy_counter_set(tmpl.cs)); rte_errno = ENOMEM; return NULL; } From patchwork Fri Oct 19 15:21:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Slava Ovsiienko X-Patchwork-Id: 47086 X-Patchwork-Delegate: shahafs@mellanox.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 36DB71B293; Fri, 19 Oct 2018 17:21:52 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0057.outbound.protection.outlook.com [104.47.2.57]) by dpdk.org (Postfix) with ESMTP id AFD7E7D52 for ; Fri, 19 Oct 2018 17:21:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aLXbz26aJ5mogDE/8mDQgTDKJec9Tls0jUL8s+aGv3U=; b=CbJt7JdNMcExk7n4wjXA3PQDhczQJXqTtwD+pnAe8jTekYYvwba12j3v0794TrgZ0GrJYD052WByYfAFASJdwpbLH7ChcxQdGosXxdnOiHsNOaOBkUGlvaXtOAkZa6a6AkVkxBuVEQLzNw9IMfEjf3z2/iXOcpx86jeda20XGOE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.31; Fri, 19 Oct 2018 15:21:44 +0000 From: Viacheslav Ovsiienko To: shahafs@mellanox.com, yskoh@mellanox.com Cc: dev@dpdk.org, Viacheslav Ovsiienko Date: Fri, 19 Oct 2018 15:21:06 +0000 Message-Id: <1539962470-10950-3-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> References: <1539784438-29242-1-git-send-email-viacheslavo@mellanox.com> <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: CWXP265CA0079.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:39::19) To AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 82447176-5139-4079-7a83-08d635d69452 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM4PR05MB3268; X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 3:CPNZXt4cogcAfxTB8JiAbFAoSVsuZ5B0jQztEic2OACWQk4jSC2P2NbfNgBb8+Kq0EDFTsDf1NMeTx2HnegoPg4H5tmBaJ0SNpJQv2W8bKI95IscEkcwApix5xpa4d3Vuj6aVkxr/KMDOY2+0q9oYzEhuMjXB9k/Vibvmq5FvahBIdaNQLo4quwA8JreqyrAsPVtHQdp0YPGI+VVEAGSa7KiGBbFIB2gwFxBP/2c2BldqdmqFnuCd4r2+gtrX0JW; 25:QJxUsIZ/Slu61hG4r0LCNEOAoGDUK3kiGkpXvR480OjDAaGEFMqkYy8pd2VSjraJWrPAK2/WGa0mlQo3y9OMubXwyzEoemDCnx7+znngYiKPsVDBQzmawd49kj5IlWLE8BJmmKNDpdsHvv3vzcGev+6+4dUk2kWz64NSfpY2tg3mwVGTyhWW2NxTAZKj3E/HraQGqmThiF9836VK7PiSH1UhDHq691q1JsGOzR/u/m7h246Ldz15GeJf3DZglPJBkwGtjRAaW3vZUzprAXBlILZFuZo8cqmacpZoqMcY6EyroFPCz5UR0SuU21swxVz1UfoXlEkXW4IF6DdJmX9aPg==; 31:EXGqQh6NlGMBMWkMYrQzldZwczuP+NAnklfgBSHRwQzs55RnffOp0Qe0kgAujn3zoVOpO/KNi0da/jyqYUP+b/Z3KYbOTEcMpuWpnWqsjaMvEVRFVADwrZBznwaxuSvscWi1yXzV6LqFE7RDyG3jvnF5CtzgUbBiDzVzQM0grnJAHmYLLqjmxaVDadlkH+XtkshUio071o5q1ySkRVxMsdHnUFtmRthtDSJ8JPXK7dk= X-MS-TrafficTypeDiagnostic: AM4PR05MB3268: X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 20:cq5lbR1IGV+K3jYw4f6ID1bNaxmADt8U+FC/MD1gOdpE4YgTXexS7WJ2pLtGrA84ob/mEAx/AcHGnEmXAL4G4wEOc2vsvMkG9bBApKnvdyXwUNXNHVRtYAZiyhzhi16T/Kofh/6H05taL/vdx+VGaJ/8EWGwoo6el/B6sxaCwynOw3aSilYeIq7hFPp4MlZRV7Y2+obygVXK/NOhPMbpv8jzwHoOeIMhR1Numdph94HKEjTFtD2mN3VIGBTt5+KXhuzS5pyNzXJ/JRlIRek161FjL+NRHq5nbmKA9RXidbnRntrOOkPN4EuOuscAVWv6fi8t5ZAP4RXsfiIHNNCtR449wbqerbOVu6gyV2TH0KJfUTbeBhdXqpDl45fYORJwRemByDzzGjxg2lpLkz/0G1zWhp4hFrXCTdupn+B2LfgLpqoIY5M2LW0/uO13vkw9O/LGu8iGsgLv9noVDzm/4GAWBtMmIWdm/atx1TnU4n91hhFpwRu7qDYpY9x9MKrO; 4:gzj10QG6JMOLh14QR9hqOZE0vlTecGH9wmzS2jxIlV6lgs8ssZQO5l+qjiKudhJh7guOZf6+xChyKvhmaUbyXOdKznmxzb5lS49ZkGf/5SK4kZarMi74BNMG9vmNV3/f7Jwm74waxm+dIrCw1lBx3320/7ni7sS/MnQcYJBnQVtFfw829iVA9xg+MvFiEEnabMcAQkRDXa4gSzBlT3aY7mMZCdXBBkeyhr57VA2cIhyWuLNdW+nC27extz7xQmdhzYfsbdSe/gRK31d0zySwLg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:AM4PR05MB3268; BCL:0; PCL:0; RULEID:; SRVR:AM4PR05MB3268; X-Forefront-PRVS: 0830866D19 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39850400004)(376002)(366004)(136003)(396003)(199004)(189003)(2906002)(8676002)(50226002)(69596002)(33026002)(6116002)(3846002)(476003)(446003)(4326008)(11346002)(76176011)(19627235002)(7696005)(486006)(51416003)(386003)(186003)(956004)(81156014)(81166006)(8936002)(25786009)(2616005)(36756003)(105586002)(86362001)(66066001)(47776003)(97736004)(16526019)(26005)(316002)(575784001)(16586007)(52116002)(68736007)(50466002)(5660300001)(478600001)(48376002)(8886007)(55016002)(21086003)(4720700003)(6636002)(6666004)(106356001)(107886003)(53936002)(7736002)(85306007)(305945005)(309714004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3268; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR05MB3268; 23:QIEJMtTzT5XDAnTsEt48xGsyEO8iIH9IVcVp4g5Zu?= Htg2s2MeD2RDK0MijOKSVq0RKXodv8ZG+NNnAo/Y5lWledxeJui84G+mMv7ne0YiksAR4QzTRdW2Jjynt8Tms1F5ylmopSjAdSKZ6jjJMxPuHLwb4uRDQ4imWhUPeMg0am0DzA1AHplQYYhmWvzLSQ2xGBKVRgvzjsKUbQBm+WfP2+dz92d729dpPud+W3MWlnzEqp9czNj+IaTjxa9YTXa2jkbdi1krkFYJoBlduu+SmHBJQrFe98kan4/h+WTnR5WKx9VPmaywYW/AlJxN+QxiLDCJr7U88OvLnO5COJMqfpBUanCQQVkkdkiqePL0cVXnuq59urTvwGcXyu1qDqdL8XzgqcrUNWQvkL9xC+DDKWBO4WM7tEWJb2zdCC91NEFZ87dJYVp68B06ITh8WNqUcit0PWRPVhaNc/bHvBHFh3WscdIigmUwKKgkmxnl0dPWctc5kKjpr78NuCqBn25EEeCvqH20SH6aneMkCL58Ew1AMANuzCT6NgYBINxMMujQxZb9DvW1H1AH6YPqtgVZq81wK8RaddQpzCpxlVisi+FbzShHIZCDnZEL2ZdjHi7m+o1SgfY126/qzTSpo/JeAIoDg4z5N8UCF2ZqRTN0NFx69Us8zAHkdo5ZDEcnKNZ9rXPDHeAVe9/NmFsf4XLXudElm6QL4+reWhtFuhf57+Ykiqc6+npnH3qDHgt4iVwSIfQNFlpiAgDVeedeeRJUr6FPMqcFb7mJsjFE7T38O0r8TvX6z/H+gs9+nZzCRcil2+ocMxmj0a84+xtXjymANu365fVyov1rUxjIkENuqg4BRgREpM0BBiuKMtwLOai5Og7yMvwjKibLEnljHDYy5iUDQWLqmMIsabdAdQdeSsGZh9ZzFdpNBTjMB7SpVJlXffHgVq0W5Xr6yAOMeCz2Z5nN9hULpiIgKTh/S6lSPZkUn4gWj16bGqXmC4zMo//1XT3bgue9fYNqbOPe5fkBYeycmeG4zs7Mzx9wB08RdrlUU3s2EV8tYlBz8plNsXswSkRy/deU8EOBWS+Qw/UsZ/1ot15e5OsFy43ZRItQdlooqKqkXawdtvT6UEMyfiU4yxOcYjDhLTU8bjshNuT5yQ4VMucS/2yYdKI9CJzpKbfpa0tqFwtCE+HGxmbWheQJ5v6aVR9bErkyliu1iZ61W8GNZMnuq4W3hkcl9rukPd3Px28As7eOJ6LxLsUBtbA2gWrR1IkoDGvXigzc4XPCqZuS1ym15VmUS7hXlYjQMzc5d3alE8sLEFQjQAEtAV3P11AzIo7MT7in5QF9EQlLNoAPcBUDdgs6wyCbwn/u4mPd8X6UtGybrW/iDhaRz4= X-Microsoft-Antispam-Message-Info: A70VKv04Y6JRUzHsxxFxWsOx78s4Ubi0sKkMhB5+pPk7Dys5IFeZY4445brr0dqUXZkJAQx/aUj689ZxlC7IGjhCIr4eUee757bC9sxh5VnBz9SK1MJMCmCarSqgFHGR9FYYWxoiHXrIg+Xqn7G4kLZbT4cRUpcS72qto5nmIVXVyXMJv6d8Wphkr5/zqTtsdH7tFNPv+GuXcuRk8NyCAbc7VltAgBFmndpF1wza4H+gLrvU12540xa/SqO3QPA1H245E/rpqtRURHbFqWh2tKr3E5h0PurNplkwcVO1QtankEV0LND7pOL7tY84IwPLc+CO8UAF/ipPG+Q9Rt5wLh7eLAr35no+Th0KQXeJpHY= X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 6:EI4MRM1duKsXFY5iUNMzJ7bV4ylexhqvjZrPQEyDkrJSOEwwkN9zb/X3EEUuswJeqSsfT6woTa2I1sZ6cwqu6Np8MqSCUc/yAAQuraay48kcncf0MepJaNyKrjqmTKZqS8BZz6s1inQ0wLUwjLM1kTjHRTvzzXu7J6CVr1WxJfA+sVL4YjLQNHXXQhnnpbvVzzn+m2H6qE2ZK1FpyNJ7Ss8EXddutsiLhqkQnEouVC7F2R4jzA+rT6GxopMqxPzfrTKdv5dtEdme1nn2KzvQXSy6G3JtmB8g3bNiIzfZFaIdYQ41e9MTCF3Sk1sjsqEsOgLr99gbzIjQOFPfoadrlFEHugXqq3NOUEcQxJFliJ3cKf9TDMvgnN99SCuPuAYTOsNrrWejjFYYu0aGYC36g+IbnQd+NMJx5kmQrBm7xqE9Cs9EDjGkXSg5hhVGIFtBk6MkTLjc/ctKKweJkz8E0Q==; 5:4AwjZUAL2plsV/vSvSwaYHLPNgcPWcWgLKAZi+wd1lLF9hnzSv3w/eULWZkT+9bcjKBUUOexvKNXsh6wM5/XgsUFQMnQnNIsc/h74kfbNRBs/VC2e4qs31/H3vHUqtd27AsPSlrddXAAYkCX3s6XVa6Dpl7WCUVHcRchmMxEKm4=; 7:dJMFOR0QgGBzzl7NSIfnlMoxFvdec3MlUGqF/0fX3MAYtlAntAjlZNyQ+AOZLN4BMdufuAqO8nmNN+zAkxHsxPZK8h30uwRlABoJ0sL/Vtb74QVWeRzVJW6VaG7tPw/tKFxgGfQ7tJOn+DZm9cjgy5xST3AbtzLxqO0eCeNc57egN/Pjx3j13Laf5Or2YEk7qNL0vQML7CkKhUb7MTlGhyamXbpP4uBI0rl+Pusp1rfcRzItul/cewo98YIQ1bZG SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2018 15:21:44.2210 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 82447176-5139-4079-7a83-08d635d69452 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3268 Subject: [dpdk-dev] [PATCH v3 2/6] net/mlx5: flow counters new configuration flags 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" In this part of patchset some modifications in compile configuration flags are done. The HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT is replaced with HAVE_IBV_DEVICE_COUNTERS_SET_V42. At this stage it is just flag renaming. The new HAVE_IBV_DEVICE_COUNTERS_SET_V45 flag is introduced. Both makefile and meson.build are changed, the flag modifications are grouped, no more build system files modifications are expected in this patchset, ones are grouped in this part. HAVE_IBV_DEVICE_COUNTERS_SET_V45 is just introduced, no code dependence in this part of pathset. HAVE_IBV_DEVICE_COUNTERS_SET_V42 - is defined if system supports the "old" flow counters functionality, MLNX_OFED version from 4.2 to 4.4 is required. HAVE_IBV_DEVICE_COUNTERS_SET_V45 - is defined if system supports the "new" flow counters functionality, MLNX_OVED 4.5 (or higher) or Linux rdma-core v19 (or higher) is required. Neither HAVE_IBV_DEVICE_COUNTERS_SET_V42 not HAVE_IBV_DEVICE_COUNTERS_SET_V45 is defined if there is no counters support. Signed-off-by: Viacheslav Ovsiienko --- drivers/net/mlx5/Makefile | 9 +++++++-- drivers/net/mlx5/meson.build | 6 ++++-- drivers/net/mlx5/mlx5.c | 4 ++-- drivers/net/mlx5/mlx5_flow_verbs.c | 10 +++++----- drivers/net/mlx5/mlx5_glue.c | 8 ++++---- drivers/net/mlx5/mlx5_glue.h | 2 +- 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile index 1e9c0b4..28547d3 100644 --- a/drivers/net/mlx5/Makefile +++ b/drivers/net/mlx5/Makefile @@ -157,9 +157,14 @@ mlx5_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh enum ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT \ $(AUTOCONF_OUTPUT) $Q sh -- '$<' '$@' \ - HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT \ + HAVE_IBV_DEVICE_COUNTERS_SET_V42 \ + infiniband/verbs.h \ + type 'struct ibv_counter_set_init_attr' \ + $(AUTOCONF_OUTPUT) + $Q sh -- '$<' '$@' \ + HAVE_IBV_DEVICE_COUNTERS_SET_V45 \ infiniband/verbs.h \ - type 'struct ibv_counter_set_init_attr' \ + type 'struct ibv_counters_init_attr' \ $(AUTOCONF_OUTPUT) $Q sh -- '$<' '$@' \ HAVE_RDMA_NL_NLDEV \ diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build index c192d44..1c4ed30 100644 --- a/drivers/net/mlx5/meson.build +++ b/drivers/net/mlx5/meson.build @@ -79,8 +79,10 @@ if build has_member_args = [ [ 'HAVE_IBV_MLX5_MOD_SWP', 'infiniband/mlx5dv.h', 'struct mlx5dv_sw_parsing_caps', 'sw_parsing_offloads' ], - [ 'HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT', 'infiniband/verbs.h', - 'struct ibv_counter_set_init_attr', 'counter_set_id' ], + [ 'HAVE_IBV_DEVICE_COUNTERS_SET_V42', 'infiniband/verbs.h', + 'struct ibv_counter_set_init_attr', 'counter_set_id' ], + [ 'HAVE_IBV_DEVICE_COUNTERS_SET_V45', 'infiniband/verbs.h', + 'struct ibv_counters_init_attr', 'comp_mask' ], ] # input array for meson symbol search: # [ "MACRO to define if found", "header for the search", diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 13f2fd4..bb19085 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -739,7 +739,7 @@ unsigned int mprq_max_stride_size_n = 0; unsigned int mprq_min_stride_num_n = 0; unsigned int mprq_max_stride_num_n = 0; -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 struct ibv_counter_set_description cs_desc = { .counter_type = 0 }; #endif struct ether_addr mac; @@ -1009,7 +1009,7 @@ config.hw_csum = !!(attr.device_cap_flags_ex & IBV_DEVICE_RAW_IP_CSUM); DRV_LOG(DEBUG, "checksum offloading is %ssupported", (config.hw_csum ? "" : "not ")); -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 config.flow_counter_en = !!attr.max_counter_sets; mlx5_glue->describe_counter_set(ctx, 0, &cs_desc); DRV_LOG(DEBUG, "counter type = %d, num of cs = %ld, attributes = %d", diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c b/drivers/net/mlx5/mlx5_flow_verbs.c index 6ddb13b..3d6fedb 100644 --- a/drivers/net/mlx5/mlx5_flow_verbs.c +++ b/drivers/net/mlx5/mlx5_flow_verbs.c @@ -60,7 +60,7 @@ cnt->ref_cnt++; return cnt; } -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 struct mlx5_flow_counter tmpl = { .shared = shared, @@ -938,7 +938,7 @@ { const struct rte_flow_action_count *count = action->conf; struct rte_flow *flow = dev_flow->flow; -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 unsigned int size = sizeof(struct ibv_flow_spec_counter_action); struct ibv_flow_spec_counter_action counter = { .type = IBV_FLOW_SPEC_ACTION_COUNT, @@ -957,7 +957,7 @@ " context."); } *action_flags |= MLX5_FLOW_ACTION_COUNT; -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 counter.counter_set_handle = flow->counter->cs->handle; flow_verbs_spec_add(dev_flow, &counter, size); #endif @@ -1222,7 +1222,7 @@ detected_actions |= MLX5_FLOW_ACTION_RSS; break; case RTE_FLOW_ACTION_TYPE_COUNT: -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 size += sizeof(struct ibv_flow_spec_counter_action); #endif detected_actions |= MLX5_FLOW_ACTION_COUNT; @@ -1665,7 +1665,7 @@ void *data __rte_unused, struct rte_flow_error *error) { -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 if (flow->actions & MLX5_FLOW_ACTION_COUNT) { struct rte_flow_query_count *qc = data; uint64_t counters[2] = {0, 0}; diff --git a/drivers/net/mlx5/mlx5_glue.c b/drivers/net/mlx5/mlx5_glue.c index 48590df..889e074 100644 --- a/drivers/net/mlx5/mlx5_glue.c +++ b/drivers/net/mlx5/mlx5_glue.c @@ -215,7 +215,7 @@ mlx5_glue_create_counter_set(struct ibv_context *context, struct ibv_counter_set_init_attr *init_attr) { -#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V42 (void)context; (void)init_attr; return NULL; @@ -227,7 +227,7 @@ static int mlx5_glue_destroy_counter_set(struct ibv_counter_set *cs) { -#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V42 (void)cs; return ENOTSUP; #else @@ -240,7 +240,7 @@ uint16_t counter_set_id, struct ibv_counter_set_description *cs_desc) { -#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V42 (void)context; (void)counter_set_id; (void)cs_desc; @@ -254,7 +254,7 @@ mlx5_glue_query_counter_set(struct ibv_query_counter_set_attr *query_attr, struct ibv_counter_set_data *cs_data) { -#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V42 (void)query_attr; (void)cs_data; return ENOTSUP; diff --git a/drivers/net/mlx5/mlx5_glue.h b/drivers/net/mlx5/mlx5_glue.h index f6e4e38..adee972 100644 --- a/drivers/net/mlx5/mlx5_glue.h +++ b/drivers/net/mlx5/mlx5_glue.h @@ -23,7 +23,7 @@ #define MLX5_GLUE_VERSION "" #endif -#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V42 struct ibv_counter_set; struct ibv_counter_set_data; struct ibv_counter_set_description; From patchwork Fri Oct 19 15:21:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Slava Ovsiienko X-Patchwork-Id: 47087 X-Patchwork-Delegate: shahafs@mellanox.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 E2ADB1B2AF; Fri, 19 Oct 2018 17:21:53 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0086.outbound.protection.outlook.com [104.47.2.86]) by dpdk.org (Postfix) with ESMTP id C7DDB1B274 for ; Fri, 19 Oct 2018 17:21:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Mc4Xsh2pNG3xYcb7y86tJHnB8R6hhuoOOGPsEQLY+kw=; b=sfERNcI+ZoDNxZ6i9fYKamE/XS9JCQlQ7Ha8HPc7rXwKKQHLysXGBcTZrnN6pkqhCrJdKyHJdzRQz3O4F49Km20RYZ7esOdmlXH8Q13Bb0kYKfglVhS8DEAgIwYNrv4lzr7MsW4v35MHkvidKMxECyBl4J/F6ov+Xz/9LWmqwco= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.31; Fri, 19 Oct 2018 15:21:45 +0000 From: Viacheslav Ovsiienko To: shahafs@mellanox.com, yskoh@mellanox.com Cc: dev@dpdk.org, Viacheslav Ovsiienko Date: Fri, 19 Oct 2018 15:21:07 +0000 Message-Id: <1539962470-10950-4-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> References: <1539784438-29242-1-git-send-email-viacheslavo@mellanox.com> <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: CWXP265CA0079.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:39::19) To AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2e6fe352-e753-4ae9-396a-08d635d694d3 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM4PR05MB3268; X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 3:iiSjNnVyz3HEAqVfO0ShJ7xU9C2pGVOptdc5rLTBMcA1XkTBIV/r8rlObMazk1XEVDb3y7VCPmVMPJRxsyhYGjE31CfuzVxDWVmw4Bq1CBqI+2mIiY6lT8GoPB4jO7tpBLpCyNLXMG1ONW1ddY7Ma4yVeLE2ES9F5a4aey2KY9RIGtByulnPzwjbj++i5LquiatKz3zuYFAsibyN6qXh/2lYF09b3+yYAuCtnfZYiSrOUdIb/QA7o+OSss4TRy9T; 25:czwEcdPP1/EskWpd5EBiCl54yRqaAxt91rA7W/gOH5J256ZrGbKdqJ1B9p0PkMOELRda/pfMxWmBoSgVPksoo543j3XL8LcL0ou+5L9CEYo+EAWm2uQHIohBzSt8oC5r7+0KfYlYd8jzbGk1Gg7lcKux0IynMzfPuybJhTUECo9X32jNdNvSt7e7/lxNyi4Jl6qdT+zJhKHWmSImBNtrQ4uWf/MkHRec9Gu7sQKP+WO+nzGMpXmvZlUpOYTI1QfBAoGPHnOC7YSD/cw0EKgoDqYAO4RIY/GBYrlCX+ZT4gz9BkZ3Te050hAM3m2tPc9STmVVsnhK+D/hxf7b3zoyRw==; 31:XBCnilsbz9ZSCpRRS+3rUsLF78LR5DQ/ZxyBVcUUQ+SRM3OOPWEA6NHxk1Frix4Vzb8/f1SzQ3EbJv5ZXPoxuuUeIvSXsCy0fzyFlBHbpDvbPZYhixGl4XMxr2q/z8TBmFYvmIL42UmoC2gnjTCTSgSy69deQoLTheMnpwrQEPXaGX6m1H6Y7nEDirGGngUTvH4s9nJVUV0rq4AyurFEVWR2UQAeZ9PrxIcfoGWaOzw= X-MS-TrafficTypeDiagnostic: AM4PR05MB3268: X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 20:ixfKxGLXUYlQ8uTnnNLyavTs/rlNXjulsmBy4+h1QA5ukuQXO8kwzzT4YbQ5210NhjUuSNr8diNDwI/igaoguea6CG8jNAiycphehNN66kxhRlO0gUgVUfk+1KkhZUJ3ZIJF1s50AvdV98w7dsyMbqViO7FGr7z0WvjpUssBeXApa/ZfuKBcM7oM5Abu3TOxL2wbRBQ9JZ9zk9BwPLaypWNkJqR7+fist86QAo0u9sfvUTcRu0Czoqk8Dp4X07bv0+hHVTBd6LSvCeNe/IEgAfh/Zzc43hhglvW+cfDXJYAf8XwG8tdJ4lg6bWzHPBXGuFWVcU2Wma56AoU+5gKrJrxshR1JL0ghLPzqtJRPIr4cHjtx80DfYTEIMCzPF4DxsYNc3X9RSb6jZBN/e+RfYpDmoIxZvqeFs9JLxuhyX7uu/Q/ZQ2vgJUy6YQ20kK/QSW8fnWokTOu7LUADjFi951bS0xDleP6dpFu0U1owB6vTixsOWFfdwyaipN6i8P7I; 4:UtK/ObCQ21XZx+uMLTtaXFlE0luDhNaDf00rBXhDocw9CIQn0Gka5fUsX7xtH5qqMWgUFWHTvfN8YJB5s3eJF3X/3FkhGs2ni0wlZTKb1j9N+FhpGwi5FlmKCmpoXO6LJXS4CZ3VNnf+5B5KqDHAtG+yA9yaBTljtFCRMm0R5E5Vi6DubszJCCadoZOhkpV7Wgohm3QOrXsU4tHFwSRY5n3UKp1DD6LYdDAdkEQ9AOeSZYR4iFoJfkmrEP71LQ14x5wQOReI0wn+A84ahc/VaA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:AM4PR05MB3268; BCL:0; PCL:0; RULEID:; SRVR:AM4PR05MB3268; X-Forefront-PRVS: 0830866D19 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39850400004)(376002)(366004)(136003)(396003)(199004)(189003)(2906002)(8676002)(50226002)(69596002)(33026002)(6116002)(3846002)(476003)(446003)(4326008)(11346002)(76176011)(7696005)(486006)(51416003)(386003)(186003)(956004)(81156014)(81166006)(8936002)(25786009)(2616005)(36756003)(14444005)(105586002)(86362001)(66066001)(47776003)(97736004)(16526019)(26005)(316002)(16586007)(52116002)(68736007)(50466002)(5660300001)(478600001)(48376002)(8886007)(55016002)(21086003)(4720700003)(6636002)(6666004)(106356001)(107886003)(53936002)(7736002)(85306007)(305945005)(309714004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3268; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR05MB3268; 23:8a/0/40R/6IEwV1OEBEMZ6jQvCGnJCbNmWpLM7R5S?= TV/k4lXL1KQZ7V9tLHyOYG9ogXEOgDwHWs8dPQp7dJETb4PulthuKC+xOTO6tsw5mXlT4vG0SZ6PKw2YCAJMwORtqlHo2KHt62KLijSiJQFEsNWUALyXlV17GYDb2yFFy+bh1xW70vs09jydQWUJ2mkOybGI89IW+ubqj5K7uIBg5dkijmjBno25AQuN+0DjGJXmJO7n8x4xmhDK8fI5b2L97hLlyQ9Po7xeYeuTNzzbvQrEd6HRvI1ubDW0SMGdJFEpWf4ThM6ygqhYlwZFYFJOR/s8idd8uNIaaLU1E9wnMn610eQxq/nUOpTTLahUGHgelPFojLpLPGM2TVjmdV39d/KOe7+Zt1gW4MOOPU+tOqb6gZS++C0HZCaHoyK0Cvk975WO+7PELvqlExuAurkAdIDtmZdONX7aPXe1UjHryg+6+bxgU7wq9eWZvG0Jqig5ed7H0nOzHU9bjHC/wPhYGVqjP5hsaZCh2tV7mURggepyERB6cXE/TJl6c/k5R6hnL2DYQUgxev4GI6Po+EE7E7bNMEFQYJ/WeE2LOjY/bmGkCw6flpJyytuUq8tYxLuaRr7XyY1wIIa96Yaug0wR+2d6PsdXbiT0G+LGFSfJlUMheduLdZqEBhYJMyM2aqGzrpuyvniTD5Krqsa0XnNzP7Er8dsHsEKzLEdXWEXw5XCXli+M6pJvGtI84zBWhwR/oj8a+w+KfYUBweFXNflW5Bbr41l7Ik/BvoDe7Uy4mt4iwCdsdp+PxpS15eDlkkHWKLq7ay2gscxP+5uBtu2kb5X2G1fejm1WF3ySYR0Aon25Cf1pj2w/ocOk+YblUDmiFk9baSJcFMaCGBHlHU5x0f1LPk3fjYS429MB5vy1kJQzjNcxhq9VCSajz5f9FgPBdTOEXtbJsD2YgCmYPt4KnkIpNB2iRv7ZP3tPH/dEvAe8t1kViJVUDlg1/tbSg8OnXKzgb/QEvriLUTc8bHKxrgXfE2OHrLeoTYFPPS9AT0BTI/Vo/xzxRLsatSkSkaYhtB/hNlasM0Ve3urU0Soj70l8Y52gSGeO5SCJHgxGn8nKXq7czTn47YvcFH7SQk8U6HH04KPfyvwxMoYPYrBI5Ay+lnBB72BfvYhVtClA5u8j8HZCamdG9hBK1e1a9Wl1ueRFg9j7agbwKWxRaB0zq4IHbIQg/0THkeWoVhdKG2Z46rXTAmmcHr0tO6BzYtDUpehFvduySjihfOCPyYxtCeY2NTG7jzajAahoULo5NA07nXFeRoadgGZur9wXL9LxUGM9uBqv8urB7AKaz5dxufXuKvoiuJOsj4z5/eWYw== X-Microsoft-Antispam-Message-Info: dgFwKV4A38pmlzbl67AZ6QJbBLBEiOIR9qxnpVeVu7qpdEUB7e0cgZdcFN8sJZ0BvJcnNLAdqnaYYNV/zn40hcgy371a1nM5k9Q6YYdsS7i2qoImZatC/7LzB3YGQqKCwG92u521kSgmDwzUklVn+mDRQ/JY8v4JhHsYBFkl3gFnqub4Wdv1lmaRuJJgopsCxLyD2vuFDDHgI/UyM+hfcsKrYNgkU2ZXM9XwTs07qFBSjaqCcOZqzGbV1k3h0QymiP13YNMcptAjm2MTfbvJbIbjrMbMlY+RQq+t55HVHqH2J9HrR1AoYgcTutYW1pMf9rZgJXahbAXVI9t3NjO1cKFeyvdPphyb7PjLsndLDxI= X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 6:jmZlymfCS8daeM73ncYy2MYkbJBS5Y56otssVe7b1VbyqQ6IwA2TlvuimMeDIojv02a6D3Vn39sPyC7LE6lNGp9fr3gyCQtM289ruC2s0W+nEz9dbZyD4eXrrVpR3ZNu7HARaCmtrAFraCai24xmcQ8Ce/jkCOczL2Kd8oL9Kq/jmln9dXQH5A02s5VzGECjG9vsgdbkqXC8i10i80t0tLLuKOtr8a0kbualsyq28BGJ1RS7Dtj4UuIqpQH1j035k4m+KPQA+K/69hHyprEFA4U1XDMHoobC5uX+psm7LaTzWkQmASY5zIBsbEJzGg+dYdou2o3Tpbvxb/wN/KVetBCXmz2t5SVnraDmB/Z8CPejTM7oAN1nAmPv0+bIYe2H9gNwJVRWveHIbA8ZNlYVP+pRqIIoBzfkgMo/ZZ0eic+Ax0TMTA7vNdi8QevuhfAWUqc7VUxfdPqemwXLKEJUpA==; 5:EK5AIfYGpW072o7aOUqiPx9rB7RHRF3hveE3OxtKr3WWevBLqjYmAwNyMldviKi1xenGmvxAl1cG1phQWjsmJIhksu34cDqprzBBslNACx1mpPxTW8G1pzppfQc9xLWSLaHLxP7FrieH/NXbs6I1aNkQ6ZkTv/GIlvNfPxvGE9A=; 7:kZVBusBxvDJXGvdwTSMbF8XvGebBnHk0ZiVOdbOLxnvlPMJtx0DV6KSVwdyMz2I9HWPZYXUu/QhxceDtad4lwCp+7WaXvVoDyYHzGbEAWQiyNjkTjC8mr1Y04TB5+uF7PmEq+bGZ9j6PwlgDlQe2m8bczuFQ2J03Y4YfCqmN0Jw2/+PAYk5XMUoJOx0S0mdPQEut4UGist5EZ5aLdnsgSM1S0MHrQ1YO2xLqHNbMkJ5x2fXeMaKBRB7Z1N/1GaOF SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2018 15:21:45.0648 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2e6fe352-e753-4ae9-396a-08d635d694d3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3268 Subject: [dpdk-dev] [PATCH v3 3/6] net/mlx5: flow counters simplifying runtime support check 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" This part of patchset removes the redundant check of counters support in runtime. The flag flow_counter_en is eliminated from the code. The Verbs create counter function just returns an error if no counter support presented in kernel. Some log messages regarding the counter support type and presence are added. mlx5_flow_validate_action_count() is also updated due to flow_counter_en flag removal. Signed-off-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5.c | 15 ++++++++++----- drivers/net/mlx5/mlx5.h | 1 - drivers/net/mlx5/mlx5_flow.c | 16 +++++++++------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index bb19085..8a33639 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -1009,12 +1009,17 @@ config.hw_csum = !!(attr.device_cap_flags_ex & IBV_DEVICE_RAW_IP_CSUM); DRV_LOG(DEBUG, "checksum offloading is %ssupported", (config.hw_csum ? "" : "not ")); -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 - config.flow_counter_en = !!attr.max_counter_sets; +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) mlx5_glue->describe_counter_set(ctx, 0, &cs_desc); - DRV_LOG(DEBUG, "counter type = %d, num of cs = %ld, attributes = %d", - cs_desc.counter_type, cs_desc.num_of_cs, - cs_desc.attributes); + DRV_LOG(DEBUG, "Flow counters are supported (4.2), " + "type = %d, num of cs = %ld, attr = %d", + cs_desc.counter_type, + cs_desc.num_of_cs, + cs_desc.attributes); +#elif defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) + DRV_LOG(DEBUG, "Flow counters are supported (4.5)"); +#else + DRV_LOG(DEBUG, "Flow counters are not supported"); #endif config.ind_table_max_size = attr.rss_caps.max_rwq_indirection_table_size; diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index d14239c..74d87c0 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -114,7 +114,6 @@ struct mlx5_dev_config { unsigned int tunnel_en:1; /* Whether tunnel stateless offloads are supported. */ unsigned int mpls_en:1; /* MPLS over GRE/UDP is enabled. */ - unsigned int flow_counter_en:1; /* Whether flow counter is supported. */ unsigned int cqe_comp:1; /* CQE compression is enabled. */ unsigned int tso:1; /* Whether TSO is supported. */ unsigned int tx_vec_en:1; /* Tx vector is enabled. */ diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index fcabab0..c15722d 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -921,22 +921,24 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority, * 0 on success, a negative errno value otherwise and rte_ernno is set. */ int -mlx5_flow_validate_action_count(struct rte_eth_dev *dev, +mlx5_flow_validate_action_count(struct rte_eth_dev *dev __rte_unused, const struct rte_flow_attr *attr, struct rte_flow_error *error) { - struct priv *priv = dev->data->dev_private; - - if (!priv->config.flow_counter_en) - return rte_flow_error_set(error, ENOTSUP, - RTE_FLOW_ERROR_TYPE_ACTION, NULL, - "flow counters are not supported."); +#if !defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) && \ + !defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) + (void)attr; + return rte_flow_error_set(error, ENOTSUP, + RTE_FLOW_ERROR_TYPE_ACTION, NULL, + "flow counters are not supported."); +#else if (attr->egress) return rte_flow_error_set(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ATTR_EGRESS, NULL, "count action not supported for " "egress"); return 0; +#endif } /** From patchwork Fri Oct 19 15:21:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Slava Ovsiienko X-Patchwork-Id: 47088 X-Patchwork-Delegate: shahafs@mellanox.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 E60671B399; Fri, 19 Oct 2018 17:21:55 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80047.outbound.protection.outlook.com [40.107.8.47]) by dpdk.org (Postfix) with ESMTP id BF5121B276 for ; Fri, 19 Oct 2018 17:21:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZigxcoT8KGkVwJu0/VFJhn39/A3JwEU8uNLVRrWmX9k=; b=Kqhr3Qs/woZ6GK5sr4Bd7dUoiyTwIQm6Cl8Q9n/pArZAS6YFziARHnkYGLLzF9lL8krvYWtcHPsj8fWiufwEi1prHpqR671FOLNZxE48OeBDHYPyvrwW+CvimhAXOmIWXPS27pCKV4VnycjqFiVNQtoUr9qBWc+j6ngzCk5qNIY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.31; Fri, 19 Oct 2018 15:21:46 +0000 From: Viacheslav Ovsiienko To: shahafs@mellanox.com, yskoh@mellanox.com Cc: dev@dpdk.org, Viacheslav Ovsiienko Date: Fri, 19 Oct 2018 15:21:08 +0000 Message-Id: <1539962470-10950-5-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> References: <1539784438-29242-1-git-send-email-viacheslavo@mellanox.com> <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: CWXP265CA0079.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:39::19) To AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fd00db64-762b-4d93-4510-08d635d69581 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM4PR05MB3268; X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 3:tQaLGMYOLDYLQSY9gZG9C1Y1l5kRhZMsEqPrE06j9MnzljHGnWvylvm3kjUEphm/zM+cqGhx3q8mDFTATrtUL3UMdtG/Ev6s0k0Bs0jOCTAk+Hn6pi0e0YGbF2GzjKuGIGKPLRk172RzFez6Hv8BqUOQoyRh9raBrLn/f3H+/nhigtkFU6CG8Hn8ZwZ+qTd1cAZY1W7JbEwhoGal88Eg6+/LiOtyzOL+ihNgGuHabAnWo4htntLLH+s9AB/WWkn0; 25:EBuJxyCFJDZwcE3xbs5Bfdc0FdrPCEdGu4VdlruzVndn3QBCkSgSmndg2WkkbYRdwbV2MhdeVO9NuHcHPtfIVM3rDSDxtiBW+lbHfHJJ4JmYJVHHZnifdHwmrWqy0GZ5Hge6TonsR0kwIahXhFEa6W7RSjz8fVCEn9tOHJNha4wcZpqXGXRjyiLR1bvKZH+D5Odx7dFIEPHcG2jtLzN10GK1weOW6PAuzVBOsMJ+1JB0TpZg6tSvkAPIFSobyI+0S/Oof7h2kq1ZH9EE6L0itrOVrBOxOsYEG+kurXkXBRBrhOVhtG3cQLhny0m8twmGGH2GGz9YZSv4Dl5Wv/DjnA==; 31:NaVK5tZj5jsJowgfVQz4gXLZvyWVPw/6feqq6oeoL3tgSTz+uMq078wOxJam9Wj/+IP1bB5CQ7x5QIR6KgKu30n/pKYfZQnyOplroXIEjEdEfeULaIWa79k1oBa1OL0sho8A+APrJ9dk54ug8gTyX+aNrRsoj8tpVyNxWBrGzWGrwS2LRKTGy6huIvhpG7vqQKBPh7c3baa8cV0g7kQuHFN8LWxIqWH14MUl0GpWGHw= X-MS-TrafficTypeDiagnostic: AM4PR05MB3268: X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 20:Tploilt+IoDBtALTM1e/w9fuBF4PGULKhDg3aoK0PMCcYo25ShPyTRkFn6kOjGG9a3tfoPQoVw9NTsJ1zflxT3fWhpvheC+4OUirUflBzk+hLnFgKpCx8XkaEI4cT9dDTvZecPOJZaWbKcw+GAZuYA/VhjejevLIHAeW7WVbkURrKXmBHELU0bHM5rOMdpPO1gq7cmQQEE4fXJT8rZ0UgCLUZTOzQaMcImbZuP91cnZ6htiDYVqlx8vIJgI0L3mJdPebUksfeHZ0O6BrNUqLnKlnMdgrVAW8gwWIqvVnwnWNOvFtQ59ZT2VEY47OC2EVWtZAtKQ8PEsjGWl0patadnb97a/bOXW0UJptHbwgvl4NgHz2dGI/qXd3pABFZhxiUnCVecNWclwTNm2DgDhhEi5L97+11h+9OlVNbJASDGqmBroEjVmRL0RTeex3aVriT2Uq5dz0fvv4icu+UNyZQKWxltnWgOSRZphAmFi9ySY+zgmeTb7jSthK6kGL139A; 4:ZoaNyWU8pAzbok7m5Plegt5h0cVDH16W1rwJMDccMiEpojB2ZibjtVroUWKKBorAb76QkMeHik1+0u3X1nS7MgiASeA3GVFLvEIrN+Eyx6XcMFihrsBCl1uKfhIpxJrdiK2VkmqygJqrFDH4rqfYdnMUVwEKKHBXaUr/tEYxcuynrpf9BykIH2Vg0z2lyQPsD0nBCQ06XZ87ggRVzkAuZdCZIxfZMPdNjmP625tFS2pWemEceHi7tbNEzeXY/VUjej9KxYsEvKS92yvJ4sLqng== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:AM4PR05MB3268; BCL:0; PCL:0; RULEID:; SRVR:AM4PR05MB3268; X-Forefront-PRVS: 0830866D19 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39850400004)(376002)(366004)(136003)(396003)(199004)(189003)(2906002)(8676002)(50226002)(69596002)(33026002)(6116002)(3846002)(15650500001)(476003)(446003)(4326008)(11346002)(76176011)(7696005)(486006)(51416003)(386003)(186003)(956004)(81156014)(81166006)(8936002)(25786009)(2616005)(36756003)(105586002)(86362001)(66066001)(47776003)(97736004)(16526019)(26005)(316002)(16586007)(5024004)(52116002)(68736007)(50466002)(5660300001)(478600001)(48376002)(8886007)(55016002)(21086003)(4720700003)(6636002)(6666004)(106356001)(107886003)(53936002)(7736002)(85306007)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3268; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR05MB3268; 23:KKqlTUGxSLJQlGv/nZsUmvO9Favh+OZn11N7j6Toe?= 2HyGsfJesrCuXa77MSrkLkgcDX2kdATUB3PnWkmL01+JXSP69dPVGVd3LF7PssQmgN6qMzuDV9Xsx/OKyNyDnMkAFVEXOIE/+s2fAtSiU+VV02gNMQJMo5mnx4pozhhJd+Old+aX74987ZAL1lruauEvZ/8LV+Uk2GPwLwYi9rWHhL1/jdsl0abNJk3Aq5Q/EQBVcN7Zj0D+7nDwJc1ECTjQWYDeke3CsmEo7FEbqTIuOAufquzIRq1deG7wKRD65qBjOvds7HDcmAd36W3nyjVzUi5BzUwx8kp7ExlhxZCMDl/aNiFU0OArhRQGIpjAfFDWa40g2DhYCumTxhXbLKzFOfspda1/gBmG+uX6KSiArsIok7ryDNCvVDUcd3VE/+Um8YaLI6s0rS4McKvhvOlGtj/KcLiEPnxOz2tDVcMNJQ2R026hGB5EZs1mETfqHNAB1tbO2kVTDmxzXKsQbhqz5Y60BWLaMBEk5GTbb0Bw6zXAxGBZPDw98hlvFZ8P/yDw4oiXX4JWinJ5YsoSvO0nIzcogM+2UFVjx+VRhyNCDle4DR33TbOzZ2xvePP0ZIkzUBrCjG+TQBtDO52GUebhf1mazuOVD4jGNCuNfXtLvaRrInGHf545fSEPZ4gEtaMTzFhNhULDF2bri9UjRCP/K4YIDcUvvIr+3qSzpBN5j8sOKfib23vOihg1DrZkavfUiIVd/Un8bpvGrIy5NC56rvhCYNbYPNQPnTLE0LQj8B+wao+BGy2d2jTh6+JxbPjRwjufhhK+bR/kDAhzQ5X2cgoxXJ/DdK/UyNB715OxbYuTi0FzNKpAaX13R6ukjdg/LhqHZeT1WqsL6c3GKQh7EBV+l0iaL6ztGvEuxN71yo2ulyJ4PKDEWOVHkN87OkkfpW7639c6mlZYWk5zlT3nGddvdvpToVhCc8WQpmJGw4AlLWlKaGJ/peDWsA8h/xiaWgYoWXyr3jApBuUS5T9YLXiJf5jPoxt6Pd5aJVBmvdYSzDdw14IR8dEjkA57WjF21VhLos+ig47UBmGVANr44SOTCyxY+tXXywIa1gUatGLixZ7Z/7cePPOW/SEixrZPaa+GZpYHqRcqDelHWMlwTIMXvGY1qGfmSZmqG8V8RWlmXYLrhuFR8HQCEv239TLkX86a7oXHnwieI7ws/twJpRCvy55doZIdtAY4tDypNFfCKh4/Hz+Z8hIYD8QecQ1iNtpWkq0bhUc7kZUQ7piGLOC5DMeDPPL/k+gO1MPJlZSxrtCDQqIx5zRfSHcIUMLl6SLJ8h7WuEvmR8JsDwLVL5kqJO1bJ9JuEuqnatwPQ== X-Microsoft-Antispam-Message-Info: 3tGPZsEokYp8+XrFGl6et/2xvo6nBVFuVygBChCEFWbe+rnXLVNStQXDbIIHF7HfS+1gjd2M4FPhkEEpubVMuPIajeCgCYCVVnB7+PbGuvZzX+iqx5kuQxCayHXNpT+SsgoIbh5Mtl2TZ2IsJAughaJd3bNSAg5xgqeKEOoSNsNhbGHTw7+M7zHM2HAa/uOXzWY53Tg58SNufwQbYip1uQY4jFwrhG0t8jclcFqUYnBZPNlxUyGzezSA1UPrVaXPKTosksm/RnUr+GSG2IcMSbipKh5Uxo50wRlQffmhM118Uk38awzKdPBCEBUihG5ts59DK7knsNdfB9dWNAmP/H/Pp/BQfPDng4hyAkdEU+Y= X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 6:xkPMV2ZNM9U6qd5jBT3uomfqCVVMcOcljWUyX49/G1xNtHqtKyuwaDfcZ8z7WcpAYGKex5ZgsFtP5a7fRApPVvoxoxoDaQVL6wPYpkJ18nK8A0w77tu8+vrlGRTGtDgMYQHcisIwel6Z2cxVZB4acZ7olPk6AV/KvW/OgAc0vBcu04Bvi5hM450vvNocpFty8tL0pHB2vOmJys34QHEXVxJiwgeu3MA0ON1wXEAgyPGtutJLUUhL43qT5xdaqlFkrNX7bWVbPsQTBs99HOtnxUr7EMAzhh0L3V9bo2uifAk1mIWAaABxJa3kUhD8/jylr6a1bVGm8Y9KPK09lfu8/kgaLnMq4Rjets923gvtiwX7zKz1wo3+x1hTHYmCqPIrH+++edXki3gD5R+r4J28nqepkrlmLLnVMwoUqCbk/N3ymscnaX9RCMLI2r0hS7m8z/HozXMMsfQ25/sOdOKguQ==; 5:B+uZO7iYD8mGB+ngroLFRqceW3gVPFGPACdEVkNTj2MqZb8+FKxhXFTymHPJxD0Gg0JT4r2c2IfLRRW0ZDnEF0CZ9AuRs8fAi8HK8C1gR4jvS3WupuHKND8zL0dOfAkSJPBJx8kdtRWkYxF+In3/RggdJPsqMeVH/ecskdvWjXQ=; 7:xWo5Yi+9dFO0O7F8sJAMhLRTE881d70GC5Pm1G9W2ap4t0xFS5eZ7OsnV9qwfKH1IBldOpvj8Pt8fBg/l1VPXtjLYx7yRDQzb2yUF3CdLv8Jv5nqDjv0T94h2nzwfaELrPOhadsGEtlD7nhULymzxnMEsWtAjx1AETV4g1+m8rYFnPMBsXIp6brXwK6LO6BdaPyNkZt+WQP2VDvt8c+OPnPhARewr9+ezF0GlO5sMKJI1kDT63wW+IGUv8x6yn4F SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2018 15:21:46.2054 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fd00db64-762b-4d93-4510-08d635d69581 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3268 Subject: [dpdk-dev] [PATCH v3 4/6] net/mlx5: flow counters mlx5 glue library update 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" This part of patchset updates the mlx5 glue library, new counter support function pointers are added to the glue linking structure mlx5_glue. This structure now contains the pointers to the both versions of counter supporting functions due to compatibility issues. Depending on configuration flags the functions perform actual Verbs library calls or return an error with meaning "feature is not supported" (NULL or ENOTSUP). Signed-off-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_glue.c | 60 ++++++++++++++++++++++++++++++++++++++++++++ drivers/net/mlx5/mlx5_glue.h | 17 +++++++++++++ 2 files changed, 77 insertions(+) diff --git a/drivers/net/mlx5/mlx5_glue.c b/drivers/net/mlx5/mlx5_glue.c index 889e074..1afb114 100644 --- a/drivers/net/mlx5/mlx5_glue.c +++ b/drivers/net/mlx5/mlx5_glue.c @@ -263,6 +263,62 @@ #endif } +static struct ibv_counters * +mlx5_glue_create_counters(struct ibv_context *context, + struct ibv_counters_init_attr *init_attr) +{ +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V45 + (void)context; + (void)init_attr; + return NULL; +#else + return ibv_create_counters(context, init_attr); +#endif +} + +static int +mlx5_glue_destroy_counters(struct ibv_counters *counters) +{ +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V45 + (void)counters; + return ENOTSUP; +#else + return ibv_destroy_counters(counters); +#endif +} + +static int +mlx5_glue_attach_counters(struct ibv_counters *counters, + struct ibv_counter_attach_attr *attr, + struct ibv_flow *flow) +{ +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V45 + (void)counters; + (void)attr; + (void)flow; + return ENOTSUP; +#else + return ibv_attach_counters_point_flow(counters, attr, flow); +#endif +} + +static int +mlx5_glue_query_counters(struct ibv_counters *counters, + uint64_t *counters_value, + uint32_t ncounters, + uint32_t flags) +{ +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V45 + (void)counters; + (void)counters_value; + (void)ncounters; + (void)flags; + return ENOTSUP; +#else + return ibv_read_counters(counters, counters_value, ncounters, flags); +#endif +} + static void mlx5_glue_ack_async_event(struct ibv_async_event *event) { @@ -424,6 +480,10 @@ .destroy_counter_set = mlx5_glue_destroy_counter_set, .describe_counter_set = mlx5_glue_describe_counter_set, .query_counter_set = mlx5_glue_query_counter_set, + .create_counters = mlx5_glue_create_counters, + .destroy_counters = mlx5_glue_destroy_counters, + .attach_counters = mlx5_glue_attach_counters, + .query_counters = mlx5_glue_query_counters, .ack_async_event = mlx5_glue_ack_async_event, .get_async_event = mlx5_glue_get_async_event, .port_state_str = mlx5_glue_port_state_str, diff --git a/drivers/net/mlx5/mlx5_glue.h b/drivers/net/mlx5/mlx5_glue.h index adee972..44bfefe 100644 --- a/drivers/net/mlx5/mlx5_glue.h +++ b/drivers/net/mlx5/mlx5_glue.h @@ -31,6 +31,12 @@ struct ibv_query_counter_set_attr; #endif +#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V45 +struct ibv_counters; +struct ibv_counters_init_attr; +struct ibv_counter_attach_attr; +#endif + #ifndef HAVE_IBV_DEVICE_TUNNEL_SUPPORT struct mlx5dv_qp_init_attr; #endif @@ -106,6 +112,17 @@ struct mlx5_glue { struct ibv_counter_set_description *cs_desc); int (*query_counter_set)(struct ibv_query_counter_set_attr *query_attr, struct ibv_counter_set_data *cs_data); + struct ibv_counters *(*create_counters) + (struct ibv_context *context, + struct ibv_counters_init_attr *init_attr); + int (*destroy_counters)(struct ibv_counters *counters); + int (*attach_counters)(struct ibv_counters *counters, + struct ibv_counter_attach_attr *attr, + struct ibv_flow *flow); + int (*query_counters)(struct ibv_counters *counters, + uint64_t *counters_value, + uint32_t ncounters, + uint32_t flags); void (*ack_async_event)(struct ibv_async_event *event); int (*get_async_event)(struct ibv_context *context, struct ibv_async_event *event); From patchwork Fri Oct 19 15:21:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Slava Ovsiienko X-Patchwork-Id: 47089 X-Patchwork-Delegate: shahafs@mellanox.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 90A631B397; Fri, 19 Oct 2018 17:21:58 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80042.outbound.protection.outlook.com [40.107.8.42]) by dpdk.org (Postfix) with ESMTP id BF2AD1B276 for ; Fri, 19 Oct 2018 17:21:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K2kq//UExLALynuZht4qTWnFOd38YlfAsjR4nkHKfOA=; b=af6e4MnoTrxmtwP8agQc/3Wh414R97kepEx3JuWuFVob4QI0R7OV5ygoXNSsW6c27mDMkW9yLn8h22AlKCLq3+xdg69de2gc/tirMOGkgNVO2Qq0YuvlutjAmAIJleoTI3IgD+IgUfxJysOmAicgFtCuQC3+QdlMwXRdMqBZTQY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.31; Fri, 19 Oct 2018 15:21:47 +0000 From: Viacheslav Ovsiienko To: shahafs@mellanox.com, yskoh@mellanox.com Cc: dev@dpdk.org, Viacheslav Ovsiienko Date: Fri, 19 Oct 2018 15:21:09 +0000 Message-Id: <1539962470-10950-6-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> References: <1539784438-29242-1-git-send-email-viacheslavo@mellanox.com> <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: CWXP265CA0079.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:39::19) To AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 68a9cd4d-c434-441e-2b05-08d635d69609 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM4PR05MB3268; X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 3:x8mjTzP5mMcWF5wLa6Jvl14HdRTny4MOcisJlkvDICADNT/3bRieMn+Y1fQMCiogt4KZwKwh38Y+9k3HOxZnd2VPdJYH33rdsWea/ESpFwmjZ7II195fXy+2QEUb7wDGOCJGSQZVlO01Dhmhds7RhEGjX+5+z/I62kYAZPtWx2Mo3ofyNWqR6atf6WD0wedEqiDwRD6wI3Pup2GKKQwCcRmVkbNKVxuOY+NeVOdKzoY7buJ+t26MHoiYTMjmEFHf; 25:Pc34KzckT5tXIGG6U0CBkD8M/8yYsJ1M9a5Ph9+jD4PS45ysgRI0dSAM6MMBq5Rm0fHxsOwHwFEAjb8vE3WDrwm+kQkWv8zT2g+nhNiO4a87+eNs4/Flm63rCw/cfaTN7C7pYEU6a2uOfKTgwOH5je0MtovIAdDGxH4R5peO+UI0buID+Olqs8+MEWHcW5/qViUJRMuji6AvWV4T/BkkEvrUcKJ4uvDvyABn8JY/yKz6FjNahpAxxYmfncE75uIYqvLsGbZRQN8FlMEAFnhPimlGcjGPaSpiglxi24fQGHSRkCEAKoNFHSUfuJZ+mYuYHZGlawW6cGQG7BqnbMFXjg==; 31:W6TvMmwZK7Uq82VzfdSDxfROaJm3vuHZk6+80RSa4fVomfsUvTUiV/qO4jBxoRHZ/bFHIjdMWFa4C1BMakQtiAsho3oNCsBhCH/96mX+VJdkI9jHgIQAYS4XLp6+RVa3fc47yEzD4Ydj9VicOr2ezvqd3CgSi6Bf3vvQrpXjO2M9TdifzdJXvAOwbKokwcZtj0IVD9IYx8sMb9mxAkZy7SJN8KnMExjnbrMYsRRnYNI= X-MS-TrafficTypeDiagnostic: AM4PR05MB3268: X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 20:Zp2X3qesfXzesqzXVppX6XoQ23rOo5kq461/CAmH1opOlKuSPF0u63YDIZqrwi/6d2uUr87VzLvxQGIxuG6q2/JAFlOVsXrP203NnTeUw5FGCxPE2HSj45gUVcHQ/s1ESpsTzlQui9O+nG9AIy1OOdxZpxi1cMc+rqzQOhsrOb5RfEfuhFFvZsRTd88FVaFBdVd5zXUcXdOmYzk+QrTH4ceIDR48aMlDpoi8hAiMO6cvGSGhabN5L9513UuCIP4zDTcGfQMGPSlGDQjPWFyisxm6tY+hwAT+nkxoZGucOVdH4G2E9QLZDqVyEu3xa8KnDcEQ/NhBRN5+WwebPcna7zYUHJ2r7JDoSTRKTwSg4Kh2/h++GLKy4xGCxmebWfEUDKSmtqRQvmWzknwNlMGj6M6R/YgdhrWCwoe0g2QBsi9YkCOJKkV9DJOqoX1UmJgOLOV2C3SrpZRaVbsM9EblydhSZsyReChQKm2zE56NDCperupL/Z4j5z+aR73uD8E5; 4:R6+nF01VRLYPhMqcFUc6tQ2VXoSDngJr2iKamFECL4XaKq7zqdIAOJIoiz+rCWq9q7AK+b2QxfzR8zXKK+WR4+gYQkrEcOOgHKbHsTak/h4eK5BT0BXEUc1HqZ/nKLJB+V++9OHrhM0vDRFntJM7wd+WTIzWAJO1D0f6LRM6OhZpX8vVIZhFes2KFH7cSRKu/BWg68zEI4FFk26Spjfn27EoJ6+DeN2wKa36M8guiVFy21jFD+v2D8cBEY5Nba2KX9dDtloHlkzuIF8mH5yAvg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:AM4PR05MB3268; BCL:0; PCL:0; RULEID:; SRVR:AM4PR05MB3268; X-Forefront-PRVS: 0830866D19 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39850400004)(376002)(366004)(136003)(396003)(199004)(189003)(2906002)(8676002)(50226002)(69596002)(33026002)(6116002)(3846002)(476003)(446003)(4326008)(11346002)(76176011)(7696005)(486006)(51416003)(386003)(186003)(956004)(81156014)(81166006)(8936002)(25786009)(2616005)(36756003)(14444005)(105586002)(86362001)(66066001)(47776003)(97736004)(16526019)(26005)(316002)(16586007)(52116002)(68736007)(50466002)(5660300001)(478600001)(48376002)(8886007)(55016002)(21086003)(4720700003)(6636002)(6666004)(106356001)(107886003)(53936002)(7736002)(85306007)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3268; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR05MB3268; 23:oOiZMm/xUZ4drpk3z98SONGnUhlAsW2uOBPkgZjhD?= Oqof42LJ8QtzIaAgMvnE7uph2ZP0hRkOw8TkkZVPQgCJ996tyEzoQug7vOgZP/lwTQFaRtZi+CmbJFxEpshG3tJWal1jc1zQy+35vMgb4vg2t3qF+cRCgGwBb01kPoIGl36qSYCyigHXOgYA8xsQajh8NmqBgKJ2kgg1VnOprIkLXSYgbwjcd/IQpNyaWWqhInse+6tn4fRMs1AVcpRVYLjWKqMY+Ms0yNDl28Du0YvMy2RPDwETn12Q8T4qWQ5DjE91Tvj3mysZZfBkzOFXN5UKi9rZ4bYBwbdJCQvc5XQQrrcwcsRlhbuV2pyZ7ACWRjFYg+pr30z//NItrAZy/e0gJt+Ke77IgpePuRclOdm7M4CvADKMBBSItO18yL5ePRvFW7DT5jG96lrOOZihvCfQbg8nYmTVWlYk6y/RYo/fNJ3St1q9i7ApohEN+eikntysiHi1rHzFj2jiMIO9OoBvmiKQ2GjUt9M4Xtcj7dJFA4oE8YAsVU9TsxWk3s0hHpPr7iFgZsYHI6IgGfg/6Akx2ljXcr4XfYCro7IqgbN4lMVxZmzBufm7Pht0PoEKK4JMmhc8EKbfwApW27tWV59jjgwNPcLTKtTNjfMj5dczptPjGGAlzNwqghqgxf+mXIscFL598bwlFQxOAi1nkrAraZnEvaleWjJmHyX0h9PsGQ1gwX8o7cRLmVrWU6CV/p2811b5GS0YE0iXFpTbqQGK8zld9skBPypHwxYDDBCWOv8irczVdbjid99KSQJsRChD1Ezv+jJsyVvebXtoviK5xlKdgVSMZwBm4olcDr/yFf7IDkRBMEwtSwHeaF0v7B+qzpwD1i8Uz0pcV0SfRT0la1aCWefne2iT3OPlsuquwrCv2zp+isdyUaaGWbzCgee3OU42M4TE9SwqZMNm4037DoxK+cySAoJt7CSlaNwIlo/YcZBxaHcdpMA16MzTCRn3KpqpNv62Vda58/kBwvGF7cI6UvEvYpl0SHpZ5mg71M2WJww1ROFQ4JBArajdk9ZQuwQyQmgqNxK1xFPM4qD4zgt6quvl2riUH4gJ5zZh7pdW7ySocMfSVl/hej5os25HGrsSREID1WhSwPSYcn1n4FOuEFOLfJW1ksAdT+V+XO3RFe9sebE+GHTD8lajoFOXSiicCgS77IzRs3Rek1zz607Yl/Nmy25rZdDcOAlq34RMkzegUuawa2JDqjyZcpaVk4BU+xcO6PrjYtvHwE+j69Ur/LOvy+PczjqNVvSJ4xtIzpv0LFnK72d779Eqs8= X-Microsoft-Antispam-Message-Info: yQ+NhWHRDtxc6wUbubCpSMA4M5Vgtvxbo2pUDZ+H4jHSoQSRCtOq5uRheVgCe5Lax+26WMjhVcxtmf6brC6Q9hrngUdPFXbEjWrRueVG209PWrRji9lcIRsyUbW/eiA01lad8HmiYWdjpk4RZb/vRdyCg2v99pkySIyvCZu7DdMMoayGVE5FD/Kqct6+klv1+Y2V0/jaffiLTeW66iHs10d4D7/FKStgJw/6vgB0exZCHyykTpELo2xs1hd+/exjkvkMJWIKt5ISeKSdLfY6YA63Pc4DBM11RouaHbXqFG1nFLYDu1JEge243dlp+MlE3Ky8Qtjr6ogVtNYqgqLBcDoqDFsfB82DRA+Xy9n/d3I= X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 6:CEcJ3+ZYQ7fC8rvEfuXkvl/CnKeXwJ3heKGXbOA7KTflQrLDG38dUZJxBjx6VKR3z+AXChznKMqYyRCvwv8DvOT2peBj8fikypA8TzAtrnB0AZWs9S5HsOKjFJDCbxEhbRf0zGqiMgK0ljdTlnLL8Ccg0LLsZ6OgpXvPpe9LWLT39/Z3KXwv58+EWRMH77sS7PMkyJ5fK41O+n30/4L/kQ58PdZtNtqJYPkKZR7alFPyj7p6cK6SpITejwnEcwzsm2NI0p4fNYatp2HFE88mX7scWrT86BrpG6MdeJbJYiI3PcrnevfnNPIc1FFpdiy43MYrajlKxFafjJ+iBQhkXYREsDelImNmBN1zFgtE/ZDjjdxS3Y9D94f7bT6wtkuVhYv+p67ZEuVFw5M70W1dNcE80WSXYo60rc85Ty8VYq+2dRf++IA6oR6qsW34IUG8QcXwrpqNXmX0HTvLOZIrjw==; 5:URhiL8NfqA2WgCLmZEE5Ri8GiOQt0JUtSp5ku114bSEXA9GdYMyGeswj7H0MLsxl6hZ6wx0Bmh655fq0zsYy/JD3UK65zGZVctWWabBhGXjw/xw/TNKBb1i+4NsMoFL56Zsj4Jdg/g5a9q3MhURe4omWHuK9GdMsu6ixfLb7LEU=; 7:GDmkDXFbZYjz+D7YxS3hrmstd94LLmzkQfVVB2KEYrimnzAebkcVhPDh5JeePmR5QrFXbKpNPn4lBDGYLX50cQTqpx5Ar9L+nodo1CAAhAlsF+4j90fkR9yOPnuHbTAunHz7hweOfTlfBPoxZKSnaw8W07xIya2NxhHoCj97XkR0YXahYjOMe0gVQJBDS4aiE6KD84/F/5iECPVcxgEG2rYlLXF6YxH/7EA8H8ggPXdNbqVCbr/CjrP6hIFslmxS SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2018 15:21:47.0804 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 68a9cd4d-c434-441e-2b05-08d635d69609 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3268 Subject: [dpdk-dev] [PATCH v3 5/6] net/mlx5: flow counters query function move and rename 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" The flow_verbs_query_count() is moved into the the group of counter managing functions and renamed to flow_verbs_counter_query() in order to be in unified fashion with others. Also minor function modification is made to avoid unreachable code warnings if there is no counter support at compile time. Signed-off-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow_verbs.c | 111 +++++++++++++++++++------------------ 1 file changed, 56 insertions(+), 55 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c b/drivers/net/mlx5/mlx5_flow_verbs.c index 3d6fedb..f720c35 100644 --- a/drivers/net/mlx5/mlx5_flow_verbs.c +++ b/drivers/net/mlx5/mlx5_flow_verbs.c @@ -110,6 +110,61 @@ } /** + * Query a flow counter via Verbs library call. + * + * @see rte_flow_query() + * @see rte_flow_ops + */ +static int +flow_verbs_counter_query(struct rte_eth_dev *dev __rte_unused, + struct rte_flow *flow __rte_unused, + void *data __rte_unused, + struct rte_flow_error *error) +{ +#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 + if (flow->actions & MLX5_FLOW_ACTION_COUNT) { + struct rte_flow_query_count *qc = data; + uint64_t counters[2] = {0, 0}; + struct ibv_query_counter_set_attr query_cs_attr = { + .cs = flow->counter->cs, + .query_flags = IBV_COUNTER_SET_FORCE_UPDATE, + }; + struct ibv_counter_set_data query_out = { + .out = counters, + .outlen = 2 * sizeof(uint64_t), + }; + int err = mlx5_glue->query_counter_set(&query_cs_attr, + &query_out); + + if (err) + return rte_flow_error_set + (error, err, + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, + NULL, + "cannot read counter"); + qc->hits_set = 1; + qc->bytes_set = 1; + qc->hits = counters[0] - flow->counter->hits; + qc->bytes = counters[1] - flow->counter->bytes; + if (qc->reset) { + flow->counter->hits = counters[0]; + flow->counter->bytes = counters[1]; + } + return 0; + } + return rte_flow_error_set(error, EINVAL, + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, + NULL, + "flow does not have counter"); +#else + return rte_flow_error_set(error, ENOTSUP, + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, + NULL, + "counters are not available"); +#endif +} + +/** * Add a verbs item specification into @p flow. * * @param[in, out] flow @@ -1654,60 +1709,6 @@ } /** - * Query a flows. - * - * @see rte_flow_query() - * @see rte_flow_ops - */ -static int -flow_verbs_query_count(struct rte_eth_dev *dev __rte_unused, - struct rte_flow *flow __rte_unused, - void *data __rte_unused, - struct rte_flow_error *error) -{ -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 - if (flow->actions & MLX5_FLOW_ACTION_COUNT) { - struct rte_flow_query_count *qc = data; - uint64_t counters[2] = {0, 0}; - struct ibv_query_counter_set_attr query_cs_attr = { - .cs = flow->counter->cs, - .query_flags = IBV_COUNTER_SET_FORCE_UPDATE, - }; - struct ibv_counter_set_data query_out = { - .out = counters, - .outlen = 2 * sizeof(uint64_t), - }; - int err = mlx5_glue->query_counter_set(&query_cs_attr, - &query_out); - - if (err) - return rte_flow_error_set - (error, err, - RTE_FLOW_ERROR_TYPE_UNSPECIFIED, - NULL, - "cannot read counter"); - qc->hits_set = 1; - qc->bytes_set = 1; - qc->hits = counters[0] - flow->counter->hits; - qc->bytes = counters[1] - flow->counter->bytes; - if (qc->reset) { - flow->counter->hits = counters[0]; - flow->counter->bytes = counters[1]; - } - return 0; - } - return rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_UNSPECIFIED, - NULL, - "flow does not have counter"); -#endif - return rte_flow_error_set(error, ENOTSUP, - RTE_FLOW_ERROR_TYPE_UNSPECIFIED, - NULL, - "counters are not available"); -} - -/** * Query a flow. * * @see rte_flow_query() @@ -1727,7 +1728,7 @@ case RTE_FLOW_ACTION_TYPE_VOID: break; case RTE_FLOW_ACTION_TYPE_COUNT: - ret = flow_verbs_query_count(dev, flow, data, error); + ret = flow_verbs_counter_query(dev, flow, data, error); break; default: return rte_flow_error_set(error, ENOTSUP, From patchwork Fri Oct 19 15:21:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Slava Ovsiienko X-Patchwork-Id: 47090 X-Patchwork-Delegate: shahafs@mellanox.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 BFF171B296; Fri, 19 Oct 2018 17:22:13 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80081.outbound.protection.outlook.com [40.107.8.81]) by dpdk.org (Postfix) with ESMTP id C9BCB1B276 for ; Fri, 19 Oct 2018 17:21:49 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J45/AOnm5A8rOwz/4lQeLx7L7nP/ek7eOIouUvIr6Mw=; b=r/S4BBXYQg7TCdqM/uzRIV7f9piOWMrvCBaf+bNQPGuZHlT5OwUXcfeP7eq/9N1BvxIBQaIZUKxZ1aPRlsTRZj2O831ly0TKUbRYZtkADH5EET767q+Iw7t2erMQk/wvkPLCMmrrEFJlstPUAmZWVp8pOFkCQlNf4Xj9jM6dTHI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.31; Fri, 19 Oct 2018 15:21:48 +0000 From: Viacheslav Ovsiienko To: shahafs@mellanox.com, yskoh@mellanox.com Cc: dev@dpdk.org, Viacheslav Ovsiienko Date: Fri, 19 Oct 2018 15:21:10 +0000 Message-Id: <1539962470-10950-7-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> References: <1539784438-29242-1-git-send-email-viacheslavo@mellanox.com> <1539962470-10950-1-git-send-email-viacheslavo@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: CWXP265CA0079.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:39::19) To AM4PR05MB3268.eurprd05.prod.outlook.com (2603:10a6:205:4::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 25e2a117-1f3e-4166-d456-08d635d696b4 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM4PR05MB3268; X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 3:sWJG6FrlXZcrBCsb1pyFUZQaGXwFJvKlHGY5b2XPl5tqUaxT1K/SbfuY6b2mFvrn6/dd51Gx05iXWySyCxuKh6Ik1q/1AxvLpdiT1RVglzmTkQ6KMIJ6mFUzuddvawJpgfnIBhem7kXGmbIXTZ71HY5yuINTzr0E9IhYP6PgmqeFd+b2IEzvpifJwbb3peFeCWPvXBvc3ctve0r6ZZoTyPbyY7fwQ8VbGyBYeOVmzoE0lzcH9esaQVMdwaWWZ4g7; 25:OvfsMmUXhcurO282qc6S/O35YX8a3KmCI7BkLoNFuXro9YRuND8tKCFD2a6mo728cMsJn0HhLfBa1sWzoItbmp+E8PsYNVjbtC4YIHFcsY7yYwcDWBOuy+qOwAK07bqBjyYAZUn+ngDH/AXPhgKXR9auGe4G3ZHnL988IiXzcvmqho1wJUWP60V6BFV7WBrTs9ex7uERRhElWU7k9p2IN4F60UCR9GyciaRu/SktabiXYqIlXsPJd8fU4m87QHA9gOCd27BqZLvEATKgLZ+yV8+GsTQWif9wzuLudoF4ur926CpBjddpBch4nq0lttrVag9fLKKRpasRloesFvO8fQ==; 31:dUMLFbXKg/LR0xfvg7Y1UETnK1ZHtkZ0QGQHPYkhMbojlxv4/Ld28Xgtbv4KrjjqH+hMaE5Kp1+wBbs5FWq0+iFgbHUSeo0rxuGaLh9epldeOguc0X2U/+IK1ZVr6ZU9WVuidrMscEhz795FIP9IMhIw63QYbj3TTgGbUZIDbYdtjAFpQIGM5aSIqZDkg8eqqZfmZ0riPf9l85d9ffP3oFiC3o/pBIikqPttRQzU2rs= X-MS-TrafficTypeDiagnostic: AM4PR05MB3268: X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 20:MM8Rs2y2LhOURyHCfzgVb4/HAmFfdp9uC/oNCkDv9Rmf3xBJr0Id6Kc5SMjsPPO7Wcyywta2uRPEcGpAaXFlvwhEBkzj4e7Ul7XGf/7+6HUSj5S3sLOmsDf8w+TFpxXJae4w6slThJ47MQH4KST6BV6wII0Llsxxxzxr+b/yCkNUFklslF9NlIhbkecmg2rFFfsAdQAIg/bSYKS1ppJoojiz9WBAf/JBpM0hbII99ypL8SpHiVwKakdwz62d+IkQmCpiOzbnBpGkOSbvTUANvl3VovTTZ1AMaTmkebJCu7V7Wb4MWWkX58+IzZg9nXINMQ2uZzVeYMnTu0B1d5zF6mFD5ICjwLH+IWt+PuSKkdX3doUkMsZJzYKjiG/1UbeHeukl5LNwaRYsamySzc+wU8Z+GSnPSQmtkBligsuIr1DDJbQamNSqYZP8abT4ruCKHifEY1J97Ky2YAdhsp1DMj2Oxh0nPWL8LAPKeKf0Dk4673KyeFVekbskfcaNZaSk; 4:ptQ+G4GC1g5dcH7SHcCXxQDRI/tNsKS/YRBHFaPfCm1BORU/bVa9tDbg8r0ICEIFLZbfDageEy2KswGYR5IAOxo70vPl3XFL/EKmRK6JN/7yyHILAFQGqB9fd+K2GnRe8KhqrLJFiEkC5WW/4bzrBnKuOLmTMlSCzHcYNartA+Pt9cZ+VxktkKxP5VHJ/mW+Kco+FLmuIstQZ5FAPNhSeXIozj78EA443pJSsnUfaACAtOIdTLdpOPah07W0DIb8nZEnoU1q6P3nlFhlc2WvqA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:AM4PR05MB3268; BCL:0; PCL:0; RULEID:; SRVR:AM4PR05MB3268; X-Forefront-PRVS: 0830866D19 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39850400004)(376002)(366004)(136003)(396003)(199004)(189003)(2906002)(8676002)(50226002)(69596002)(33026002)(6116002)(3846002)(15650500001)(476003)(446003)(4326008)(11346002)(76176011)(7696005)(486006)(51416003)(386003)(186003)(956004)(81156014)(81166006)(8936002)(25786009)(2616005)(36756003)(14444005)(105586002)(86362001)(66066001)(47776003)(97736004)(16526019)(26005)(316002)(16586007)(5024004)(52116002)(68736007)(50466002)(5660300001)(478600001)(48376002)(8886007)(55016002)(21086003)(4720700003)(6636002)(6666004)(106356001)(107886003)(53936002)(7736002)(85306007)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3268; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR05MB3268; 23:8A0Opdx0fozwvRhQgqzbNkjO7TtUQDP2TkKPtsImw?= +4DUtaLHa2gTRzzwMbt0dZk0izSVOrsnknwVcSjk4I42JdO1uXyuAJ+gzGHfc9oaqnOuOqhsvYl+OOgJusZpfI+IkEB4BooJSUqe8wSv8QnGArchQgEiwByzicJR0udl4VMC/OgBwxSFxaZhyu5vFVEf7iE3/23mUMeezkK5bAs/Ke99r3ZOi9WeLf6cZM9DRH/zeeTd2DtsGyglLroeUhihYLHBfLi1Gl6ZQ6rZuNqiEWCI+hqIWciuwLhb0XfReCH2/36RsRhOBVc/UNCsN3B5Dor54fcTpFWIxCu/iSjj22QAEKmzz4HckXEyVx3RRlGoNhmWON6NOZPmAZsQS5TKZxYmOcZXdgkpctM/oarq/PecKwopyG+ENshG4ctc+P/zMhRDLT6b41Dj+ht4ZpZ0eejmB/6RGRGUkyfgOlliI+QALkP7b1byHhWsnkxG+9MP7lVW8la4rhWHo1TP9FhQtnL9MAVlbzulkZ+6TwlqT4rXlLzQYuivPax/MwBNP65rVlW7U7LwbQKb0UOltzWymDMNo9/C9ddP3CtUx2F5NAmhX7SL7eO+T4XWHzq5uA34yipxVpsrt6QFzrPa0TIHnBHm3EypCKwKhZbW5i5nxwrOrEGOHPrEkiklJR0I/a1aGccsC13SThan3aDzjPOpICIHbYL7D0IGjtb3qpsLssxxfLe6CKspDn4M/xt1+/+YRxzspatKiIt3NmjIVQlXjG2KABBWmUsXTJjkLSKLLPTQTak3YMewohWqkTVjM0k9WYhFEp6QIhzueL4ZWLrOB+JB1gguOHRH/UZiMMCfhvqdjcUTw+pkzS1L0lvUxn1e7cOnvd9WSgCxxlFFsm+1Lw2hEKmyHvmH90KC35JZBQsB41s0wqSmCseHKbd+fVkV0I/Pt3u7LWU5y+yVhAZcmNKUFHG4Ajuj7Um5pBLz7g4plqaiudK3EE6EhYw5bCRy7sCGQWRouBHYNk3k0Mp0nQupS9LolNBaTuKo6Y5PKA+W8m8Vtb2m8B0ex+Pd+e4ZbxnDmB/3yPjnIOU1vnN4yA0nO5i80F8MYzvjRBDnq3klMPpOfBvZgHCRzDly/T7fEAlgCM93uI4byN/NXaC+C4SiI6GzHD+0zvj31RGhozZAHowzcBxkBk4Spsxhm7GlV9+OKL546NRV+x7O8m/3KDL6MsDBCecKLQ5sy/HH3J2pdGwdCnkn/KAKgN/kh6btGbEB2pOMSw4XeWJ7L06T8L4uQPQd+8MfWC0gQYqypQVDm/uyHy6NFP0ef7AC9AMYg5p2DcO78lQXhHpWNUWGppMh/hx00CD352AdhOjhAVwA8oVySgl8eDyN54hVQ0= X-Microsoft-Antispam-Message-Info: FhMkIv3bNPSEsap7VqBNDHM3TvIbm1kplTk+wiaQaKj/MRh0UgzDCcCd7vcn9e387ae8atOx/mALoVT/rE3zKRpWWiM4zwanUk+biapI91eOo6eRGHYLoWcHDJiv9z+KSS4IkoB+EFJrTEMvdAfmBq5Rt4j6I6jyat/0sVM1xZgxdVklTJ8rRoOyt0CvbIe/taxEw6nhmqakFU1qAGnIUF3Gqmm9GsIUlzps8YpObjXmdhhcTFlx93uI7rCbsIvIjNmvv4cjstPrmi5pd2hud4/OsMP1axj3IvRGmEkydNtnn9xpPfhDSxUZnUuluLVYcfvYDNpd466CTdQaDr5N+U06ToD+pOTYJo/qywXlXak= X-Microsoft-Exchange-Diagnostics: 1; AM4PR05MB3268; 6:AY9/t7scz81TdFaL05EUzvqo//w3isd82Gvq3mM+cjo/5JwugwKCsTmDJklbHbriZbFZi5LK6wXHck3RqUnNKwGQI5zigKmQxYWuqgg6gad3Y3Zs+WJtX+vyyuqw221u+VKac+G24FE8vcjN5NpH1URKbngw58SB1DbbVWphdWwbMabBkcDYNfAhDoasO0sBoQVISHfy+B1jBclxtPxph7kglLM3Al5XRFVioQ1f1G9oK7qrvIia/M2uRJ5ipL5OozqRKgl4P+l34ntYnioC3KuBKt6Yjz9pvNhfTpclypOTODiTZ10VgbcUzCCagPVp6bbsXUKy3JqfqaxV45pXVW2kGGXQXtcSKBOpE8ijFpsVBgmv4T/PwA1/XPbezxDX476XCvVsvVPtt//CP/DP1/Vr/HCGAkMSto/2YimRfPR3Xa2bbHhZMZuU14iKIBUr0kTdtji57cZkBb6Gmzfcxg==; 5:/QBSyTbWswwNJ2vKvWyDwR39Xep19gkDMVuq5W2f91xnMy9BMnG8TSU3OAH/tgzJlqwm37NeHoh3oVaexvaAW7OeTLuJud978q1zrRxwc9vtmfCbFSmwN+2psJx8/qS7PaZ88oD1xqldaBLQ8NEewQdd5kUR8KWeMxcmJ75S3Gk=; 7:gdH7k0jPlLo+c4rVu/PTnCiCEpl9e+YYc5KbPM9Ww+vJHJfU8gk+CmvVswSxafNqbJgNu4VRFV4/6Gp1BWXIOaJg1P987Ks7pl3NPehni/+23dKQa/O830EfwD1D2X29z580EoLZWp+fLVy0ovnS6OGDkU2TdJ94tqhiEYGjzg7ZQ/+p2L1X9r1UNnv6uyfwM5+0dRTKAXErFkM67Hqj9rXKnxW+nKUoU+XMQIky8XKxil0G+0+szBSA7NyB7J+a SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2018 15:21:48.2054 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 25e2a117-1f3e-4166-d456-08d635d696b4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3268 Subject: [dpdk-dev] [PATCH v3 6/6] net/mlx5: flow counters Verbs interface functions update 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" This part of patchset updates the functions performing the Verbs library calls in order to support different versions of library. The functions: - flow_verbs_counter_new() - flow_verbs_counter_release() - flow_verbs_counter_query() now have the several compilations branches, depending on the counter support found in the system at compile time. The flow_verbs_counter_create() function is introduced as helper for flow_verbs_counter_new(), actually this helper create the counters with Verbs. Signed-off-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow.h | 6 ++ drivers/net/mlx5/mlx5_flow_verbs.c | 129 ++++++++++++++++++++++++++++--------- 2 files changed, 104 insertions(+), 31 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h index 69f55cf..44c7515 100644 --- a/drivers/net/mlx5/mlx5_flow.h +++ b/drivers/net/mlx5/mlx5_flow.h @@ -224,7 +224,13 @@ struct mlx5_flow_counter { uint32_t shared:1; /**< Share counter ID with other flow rules. */ uint32_t ref_cnt:31; /**< Reference counter. */ uint32_t id; /**< Counter ID. */ +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) struct ibv_counter_set *cs; /**< Holds the counters for the rule. */ +#elif defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) + struct ibv_counters *cs; /**< Holds the counters for the rule. */ +#else + void *cs; +#endif uint64_t hits; /**< Number of packets matched by the rule. */ uint64_t bytes; /**< Number of bytes matched by the rule. */ }; diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c b/drivers/net/mlx5/mlx5_flow_verbs.c index f720c35..b657933 100644 --- a/drivers/net/mlx5/mlx5_flow_verbs.c +++ b/drivers/net/mlx5/mlx5_flow_verbs.c @@ -33,6 +33,59 @@ #include "mlx5_glue.h" #include "mlx5_flow.h" + +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) || \ + defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) +/** + * Create Verbs flow counter with Verbs library. + * + * @param[in] dev + * Pointer to the Ethernet device structure. + * @param[in, out] counter + * PMD flow counter object, contains the counter id, + * handle of created Verbs flow counter is returned in cs field. + * + * @return + * counter->cs contains a handle of created Verbs counter, + * NULL if error occurred and rte_errno is set. + */ +static void +flow_verbs_counter_create(struct rte_eth_dev *dev, + struct mlx5_flow_counter *counter) +{ +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) + struct priv *priv = dev->data->dev_private; + struct ibv_counter_set_init_attr init = { + .counter_set_id = counter->id}; + + counter->cs = mlx5_glue->create_counter_set(priv->ctx, &init); +#elif defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) + struct priv *priv = dev->data->dev_private; + struct ibv_counters_init_attr init = {0}; + struct ibv_counter_attach_attr attach = {0}; + int ret; + + counter->cs = mlx5_glue->create_counters(priv->ctx, &init); + if (!counter->cs) + return; + attach.counter_desc = IBV_COUNTER_PACKETS; + attach.index = 0; + ret = mlx5_glue->attach_counters(counter->cs, &attach, NULL); + if (!ret) { + attach.counter_desc = IBV_COUNTER_BYTES; + attach.index = 1; + ret = mlx5_glue->attach_counters + (counter->cs, &attach, NULL); + } + if (ret) { + claim_zero(mlx5_glue->destroy_counters(counter->cs)); + counter->cs = NULL; + rte_errno = ret; + } +#endif +} +#endif + /** * Get a flow counter. * @@ -49,6 +102,8 @@ static struct mlx5_flow_counter * flow_verbs_counter_new(struct rte_eth_dev *dev, uint32_t shared, uint32_t id) { +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) || \ + defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) struct priv *priv = dev->data->dev_private; struct mlx5_flow_counter *cnt; @@ -60,37 +115,32 @@ cnt->ref_cnt++; return cnt; } -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 - - struct mlx5_flow_counter tmpl = { - .shared = shared, - .id = id, - .cs = mlx5_glue->create_counter_set - (priv->ctx, - &(struct ibv_counter_set_init_attr){ - .counter_set_id = id, - }), - .hits = 0, - .bytes = 0, - .ref_cnt = 1, - }; - - if (!tmpl.cs) { - rte_errno = errno; - return NULL; - } cnt = rte_calloc(__func__, 1, sizeof(*cnt), 0); if (!cnt) { - claim_zero(mlx5_glue->destroy_counter_set(tmpl.cs)); rte_errno = ENOMEM; return NULL; } - *cnt = tmpl; - LIST_INSERT_HEAD(&priv->flow_counters, cnt, next); - return cnt; -#endif + cnt->id = id; + cnt->shared = shared; + cnt->ref_cnt = 1; + cnt->hits = 0; + cnt->bytes = 0; + /* Create counter with Verbs. */ + flow_verbs_counter_create(dev, cnt); + if (cnt->cs) { + LIST_INSERT_HEAD(&priv->flow_counters, cnt, next); + return cnt; + } + /* Some error occurred in Verbs library, rte_errno is set. */ + rte_free(cnt); + return NULL; +#else + (void)dev; + (void)shared; + (void)id; rte_errno = ENOTSUP; return NULL; +#endif } /** @@ -103,7 +153,11 @@ flow_verbs_counter_release(struct mlx5_flow_counter *counter) { if (--counter->ref_cnt == 0) { +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) claim_zero(mlx5_glue->destroy_counter_set(counter->cs)); +#elif defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) + claim_zero(mlx5_glue->destroy_counters(counter->cs)); +#endif LIST_REMOVE(counter, next); rte_free(counter); } @@ -117,14 +171,15 @@ */ static int flow_verbs_counter_query(struct rte_eth_dev *dev __rte_unused, - struct rte_flow *flow __rte_unused, - void *data __rte_unused, + struct rte_flow *flow, void *data, struct rte_flow_error *error) { -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) || \ + defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) if (flow->actions & MLX5_FLOW_ACTION_COUNT) { struct rte_flow_query_count *qc = data; uint64_t counters[2] = {0, 0}; +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) struct ibv_query_counter_set_attr query_cs_attr = { .cs = flow->counter->cs, .query_flags = IBV_COUNTER_SET_FORCE_UPDATE, @@ -135,7 +190,12 @@ }; int err = mlx5_glue->query_counter_set(&query_cs_attr, &query_out); - +#elif defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) + int err = mlx5_glue->query_counters( + flow->counter->cs, counters, + RTE_DIM(counters), + IBV_READ_COUNTERS_ATTR_PREFER_CACHED); +#endif if (err) return rte_flow_error_set (error, err, @@ -157,6 +217,8 @@ NULL, "flow does not have counter"); #else + (void)flow; + (void)data; return rte_flow_error_set(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL, @@ -993,7 +1055,8 @@ { const struct rte_flow_action_count *count = action->conf; struct rte_flow *flow = dev_flow->flow; -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) || \ + defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) unsigned int size = sizeof(struct ibv_flow_spec_counter_action); struct ibv_flow_spec_counter_action counter = { .type = IBV_FLOW_SPEC_ACTION_COUNT, @@ -1012,9 +1075,12 @@ " context."); } *action_flags |= MLX5_FLOW_ACTION_COUNT; -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) counter.counter_set_handle = flow->counter->cs->handle; flow_verbs_spec_add(dev_flow, &counter, size); +#elif defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) + counter.counters = flow->counter->cs; + flow_verbs_spec_add(dev_flow, &counter, size); #endif return 0; } @@ -1277,7 +1343,8 @@ detected_actions |= MLX5_FLOW_ACTION_RSS; break; case RTE_FLOW_ACTION_TYPE_COUNT: -#ifdef HAVE_IBV_DEVICE_COUNTERS_SET_V42 +#if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) || \ + defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) size += sizeof(struct ibv_flow_spec_counter_action); #endif detected_actions |= MLX5_FLOW_ACTION_COUNT;