From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80073.outbound.protection.outlook.com [40.107.8.73]) by dpdk.org (Postfix) with ESMTP id 47614288C for ; Fri, 27 Jul 2018 04:28:10 +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=h9DXKCLXopTq5kz15yTAqAVBG+fo+kkqYd+vb2vbilg=; b=bI7f+xCJotBriNGC98u3Tx57FEa/A8cO9ZXUKMR6AF/wUpwQk5e2qRUIkBHg2ftmybX3fifFeR2t37kzps3AdL0UG9c3XoklIbwiw0CerKxJf+SsMUAtW2gqpoNkX9vx9yVIt/3euPpqS45gm8zglb2MjKY7W0XEADY2cwLE6Z0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (209.116.155.178) by HE1PR0501MB2043.eurprd05.prod.outlook.com (2603:10a6:3:35::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.21; Fri, 27 Jul 2018 02:28:07 +0000 From: Yongseok Koh To: Yipeng Wang Cc: Pablo de Lara , dpdk stable Date: Thu, 26 Jul 2018 19:27:42 -0700 Message-Id: <20180727022746.38457-6-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180727022746.38457-1-yskoh@mellanox.com> References: <20180727022746.38457-1-yskoh@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: DM5PR21CA0034.namprd21.prod.outlook.com (2603:10b6:3:ed::20) To HE1PR0501MB2043.eurprd05.prod.outlook.com (2603:10a6:3:35::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 20b25e22-3073-4993-7b5b-08d5f3689795 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0501MB2043; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 3:xMiYsblFLVJ6/aqT2D9He21bybSBA6pQEsjHpd3VFUD8b6YksuGt9/4FeIitcJsGp9oPiXlOKC/20QCynhv3Prl1nXblCZrOV6vr6IGElPuSlJHBBBK0Fr9vj516zpg1UHaFkxKJ9I4Pkx80pTAK0dZaAXFMDJtDUdxyzkdY2Prx59out7HRrY/yw0OnpSUPHNbeqodWKJRc1f5A+Czue5nzxTHn96Vq0AX/2snivgustBtbHJhoL44xjmtO8KxZ; 25:wupSMl2WF3UGjkCdCyMAgJmp+jV0YmFeipb7hSXQ/YYCMV0uX0Wzk7HIqNEh8Cl3ptw1STzidtPiSWh5VHuAL1XqrgK+01CqRHV+2B6WaACMkJ5iEyHqv5n/sF+pCYkOQ6YA0fJDqlt6x+Ka7a6C4E0GMbz2myz/bWOJVUQPKvf5RDgAMhkuaRXBzBba3zaIk2+73ezstbq1b4A4VUovqo4nul2h+p/pE5uj9Q10pn905wDH+3ZRDpTZIeoANDyQxCJBXZVPbV9Lgil5r97bni/8D2EasIC+dhrh8HuJ9+5gAhay3oZ3sr8Ee7VnjefjVqcps7yo3RMIH4UAz/o0yQ==; 31:gIGP8qQgFjF3CCR4kvY6cLZ7d1uy7NVDusA8MzUrKz0uFIhGZyxYCFTWEZZyKqZmArYIY13boP+WsGv3o8QFYPKVaC12TgjObJYDQy86XS+yi5H+3OsNJ7nx1ISYNWxE1fXMVC98+xVAQ0cFiy260mKifidLte4OTM+G4+0Rfa8QyhBzz0WZzXS1ouYu2UOnF+YXE1YxXpgo3gUDvq3pDqf2psMlEVvYJQyMaXF1pm4= X-MS-TrafficTypeDiagnostic: HE1PR0501MB2043: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 20:4FJnTGrO4yEmdl6n7vB+wHx0HCZc2cCt/uZG1BR2rQBJZCmnCA+tB4EKGf0fLeZNRTGK7kXAuyMo4wrnXUBVobYuty2BfivOtQ61rjWigTdaZwCJ01QTj1Q2BB0dFeRolokAPSIZoo8DEFgqpAD70P1z29YMUgYrunZXQJeGEbqd5KwfrTcnhX7rc5L5k4Weic0kO+kb+rJnueFLE2FknIw9cR6qu50p5cqqlYuvT4ote2ESWFUcdc1M3y2/4HGOCgJeKC7NXXXinDthpzjyzH+qPbDXr4BoiflB/EiOTI0y8jWhnwLDSEE+95MCzSOxx9alBQMuO0XDt0YlAM+wtzfAcOO0XPIZ24u7XULqdArbVhZ7MvL8TmwHKX0rJl/fM0u4Ow/jl61FLdsm17ulXrsq4kqeP3a6ylItCdtX3Xa/BwUq9Zeb7YYOKQ0pLtTv3EzBSjo8ArhUTBFCMmdaVmJ03PiM6jaoazXtGxTZoX3Ml2fZ82wI5r6GCzoewowt; 4:CtuG5oJcHhbhWdIuoInzYpHAL+I6+b9TlMgSoN7F3uFF6EmA709DzcaLmseyn+hP10bduu9GnHSmkK5Jwvc+tWlWIFUgusr4ubK7u57gqfRNh3O6xig6nDKqwi/yxuicDye4xit9+bWCO4U67lfAOP+JJwbVo3PYeTc1BXfmG6mEYnJXHukZEJXky8Jf+PGGZ1T0pL1HGhTIi06xuGGlUmUOIqL2/H3qwYR+q8up71hHCtIvseW+Y+JzR/m5RAWR7cFraaRhQ5gpWqMEVCsOdyA2X4CtMx72U8+E29LvefH5LhSp1Z5gbEWku88Mc4qR X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:HE1PR0501MB2043; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0501MB2043; X-Forefront-PRVS: 07467C4D33 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(136003)(39850400004)(376002)(346002)(396003)(28163001)(69234005)(189003)(199004)(478600001)(16586007)(68736007)(6306002)(7736002)(316002)(1720100001)(53936002)(54906003)(47776003)(55016002)(6666003)(8676002)(966005)(4326008)(956004)(476003)(53376002)(81156014)(21086003)(2616005)(8936002)(446003)(16526019)(2906002)(86362001)(5660300001)(11346002)(106356001)(7696005)(50226002)(97736004)(66066001)(26005)(186003)(52116002)(6116002)(76176011)(486006)(50466002)(53546011)(3846002)(69596002)(6916009)(386003)(305945005)(81166006)(1076002)(51416003)(25786009)(105586002)(48376002)(36756003); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2043; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0501MB2043; 23:HhDosXkplDZT3UjzdZQwm5CgJMB0ZQsszL641ny?= =?us-ascii?Q?hIAm+7UwNaXJSwkQzix148GkvqyeZUOjW61z17UFJwnpxRR91qCKscOgH2S/?= =?us-ascii?Q?1FZLlP0WvSiXTVCLF+FbTjFQmnLttDNMBPsTcyeq32lMvXe0A935DQ3BlKuj?= =?us-ascii?Q?OB9O/BD6e+lZrInkdhsi1ip/jG9vaLdelWSKtzakqW3/YDSjjoamyXbzJo6U?= =?us-ascii?Q?pOriN/Rk9Glfc/XhCh94gWoL3WDkxihh8UjEfl4Z35UjbKFATzoeSdd50aBA?= =?us-ascii?Q?cU8aG2jpjS3EZTi3TrdzOWocupFyQyu+8ag2zHLiA2+ryxtEJjilZokKome1?= =?us-ascii?Q?Y0K7JcdbBKqjtNHz5ReSc6ZXVFMB/c+bO5aKbI8Lg12MU38mvscXZZw0opds?= =?us-ascii?Q?8tDjnq2fMf+YcCDxpA7+FeBJGGYf1BpJFjDq/L1u9485gxFDi84qzvtxIiU9?= =?us-ascii?Q?Isi2RBLxdONg7pmjkKxrFBvFdL0IJ2AGMc2sisI9g5S1Cj3bfDKGeWiTfxbq?= =?us-ascii?Q?en6HXDxMKsbxWfglEJ+D3vffsbCkyx8wsPQG6wId1iZuU+vbI/UhYS84513u?= =?us-ascii?Q?ypYpznxs1LFnhqkIZ51QmfxFDcxkaCvtc/a1QugEff+HQSlRHPEKGCcnqj5T?= =?us-ascii?Q?OjfM6ucHnuD0/Xc+XVi8OPmtPOitWat1saW3vr08Q6GGvMC60gdhJIlB2eAQ?= =?us-ascii?Q?kazUBCrEwVrcEg06lqPOQT1i0bgKD8ot95H6ce91u+7VDkFVszvGS7OWeSnb?= =?us-ascii?Q?D47V/8T6ALGCxr0HM3Qc8tsfbnUZEhlPdYn2XBdPN/oPNfii8x0HA186oSJl?= =?us-ascii?Q?d0W0YaDl/4TTpdHgCN+6IaRD1NUj3XsQkwtvaNU22YoFS7W4taa7MnWk/IOj?= =?us-ascii?Q?EKAUczDnkPmFpA3cHE2cIsprNRCqxBPmYbDtoiDNdXU1GQUy/mk7K6mGdWfC?= =?us-ascii?Q?AVMxa+E5lI+/umCRXWoi1Z5QlWx/jegBjbaS05njSii5ZQxaGvISASamdPpL?= =?us-ascii?Q?czOZc8aDtwlI5vOuFYTL/7aIWUhEOgjmtTeV+fRVKCKZXMtfoUfF5kM1LHu+?= =?us-ascii?Q?VME6Zd8AyTd1qHL7PIPS4Toom2mIFdXZBt0TRjnb5J1cHZDSNcwp7zBP3bGs?= =?us-ascii?Q?xlAeZlcHzWm0xcqAglZoIPCT7WeCYpXJyIcxeteUGdeR37bcXJOMnmgV3CvQ?= =?us-ascii?Q?i3eZYfk7LP36CkDsMDqA68usXGDW+Ms5PAm80KeWfK5oAv02nJnfSdkMNL94?= =?us-ascii?Q?uIiO4RRbbdqVIl97R8YVBeJGKsc9xRwxoXbLA0A69FrdKp66NvX/DKyyoK9G?= =?us-ascii?Q?+1fUXVQHiqq2ozXFZJaMiNLaTR0Dcl0rs1PNSptLheUBHL1m/3CkSmiXjbz+?= =?us-ascii?Q?vsqKim8KF+p+cbd9mmNjHBvTaXxs=3D?= X-Microsoft-Antispam-Message-Info: MHlcCX/yjp4kRolC9IV+gOs2RQ9UGq0Ju1ZEr/k9/5prhWkai6ws5rpauaTG9Cb31vociR1pXvNmOmsXbfz1LElG82ifr0a2vpHruXfXTxmBkPLUWXsnqfgyTojW2uyD1iwYLCIGU4nOQY8hbdOIBN5DzPM/gwlwWGwBn9SHsriMK0PiPEm/pYemjFH2Yjl8eEJ4X0Z7s2vTJ1CQyHu6mK0IfuYISlopDRB4DUPBVQQc7PyGCK465SrQcGJCciKKAZvJhAZuSVivVuG7/ZG/C9I+hUgo0T3U9TcdTllMizYpZYRLMxxbO85mw2TqwSe4dJUeswMub70iMEDVjI8php0N4yiT7Wk4dXUVK3DNkDE= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 6:G8zJKI93QvD1I9aquoNvDBuT3qnw5EXI9obi5f0etbxBbciUUEvi0T24FNr2K1at6LMU2zh1Jp4pWljTFekEtK5ZBcNSn1naEXIIWIUdVQEy/LdolZZskGNUmhYW4RG4dz6wENxXzQmNBba81Q8UBndUkcS7xxci2tpf2TxYFM3vI2onVPch60j6N66ChcsEBERzZllp52qd4FnWOhJJIUwMXJLHZbU4BaWaaxc3qAO58Fk3QQxvVGrkfxLhhvZu36NEeHLNyIjBOOYZepVFSjefqqMQRmEj9u9abPY02urp+h3mLYKnNRMdG50FUqBeJ+inJ/JObJq/hYO68/qST8aeTUVA7uk3nwGsDBnAidQdyoS8N200vYEiyf3z2DwGH9Y8lj0Wv7p2wtkijz4fxrOlBbMSExSVqL2DmrScC6rek+mJakxC5IAo6B2dZ7LJO2vyGNmy/jWzt/fkXlC+kA==; 5:XbeAqGMHSIVR+ocmebZ/65KKo4RTtNSQ96OwzvIBYXcMeznwlnvMmpP1gMkNSSqhJ38pFjIVpAF15EF/t2FXfkg7IKUntUqYPmQ/nF2JLWXF9/PD3s1eFbsCH3HC8JVLDam1hRZ5dhT8Tk45ICWDa1+3Im0aAn8R8+lsnKXSwOw=; 7:Iv6JBt/V4anuk43n3xpUEysfthPvF7PoHpa7lx47kMDB/dK07gnYQWCnN9y6MSCLeitLjM+upvMoTtQ+zOMqnxAKBP8mMTvegxFqWdva7wSjoO8A9zqgDsHLRSuLJopGllPJdqtPTWwL2BkWIFl3MhTBRhqftcmjngVoy9RFWwNnu2g4OnNtyyVUpHCveGvTKCbsN5Y/VKAKbDiv+Q6DvtLOgLIBZdhp/NM895uZ4/Fkzzx4blnbrXDzqaa2Tfze SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2018 02:28:07.6691 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 20b25e22-3073-4993-7b5b-08d5f3689795 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2043 Subject: [dpdk-stable] patch 'hash: fix key slot size accuracy' has been queued to LTS release 17.11.4 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Jul 2018 02:28:10 -0000 Hi, FYI, your patch has been queued to LTS release 17.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 07/28/18. So please shout if anyone has objections. Thanks. Yongseok --- >>From 9dc73dd86775a6c5980f5c9cf69398c292bd920c Mon Sep 17 00:00:00 2001 From: Yipeng Wang Date: Tue, 10 Jul 2018 09:59:56 -0700 Subject: [PATCH] hash: fix key slot size accuracy [ upstream commit 575a48c961f47f1078bd1ceacf8484fb1038f7f8 ] This commit calculates the needed key slot size more accurately. The previous local cache fix requires the free slot ring to be larger than actually needed. The calculation of the value is inaccurate. Fixes: 5915699153d7 ("hash: fix scaling by reducing contention") Signed-off-by: Yipeng Wang Acked-by: Pablo de Lara --- lib/librte_hash/rte_cuckoo_hash.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c index bc7a9d998..9be514dcc 100644 --- a/lib/librte_hash/rte_cuckoo_hash.c +++ b/lib/librte_hash/rte_cuckoo_hash.c @@ -154,13 +154,13 @@ rte_hash_create(const struct rte_hash_parameters *params) * except for the first cache */ num_key_slots = params->entries + (RTE_MAX_LCORE - 1) * - LCORE_CACHE_SIZE + 1; + (LCORE_CACHE_SIZE - 1) + 1; else num_key_slots = params->entries + 1; snprintf(ring_name, sizeof(ring_name), "HT_%s", params->name); /* Create ring (Dummy slot index is not enqueued) */ - r = rte_ring_create(ring_name, rte_align32pow2(num_key_slots - 1), + r = rte_ring_create(ring_name, rte_align32pow2(num_key_slots), params->socket_id, 0); if (r == NULL) { RTE_LOG(ERR, HASH, "memory allocation failed\n"); @@ -312,7 +312,7 @@ rte_hash_create(const struct rte_hash_parameters *params) h->add_key = ADD_KEY_SINGLEWRITER; /* Populate free slots ring. Entry zero is reserved for key misses. */ - for (i = 1; i < params->entries + 1; i++) + for (i = 1; i < num_key_slots; i++) rte_ring_sp_enqueue(r, (void *)((uintptr_t) i)); te->data = (void *) h; @@ -394,7 +394,7 @@ void rte_hash_reset(struct rte_hash *h) { void *ptr; - unsigned i; + uint32_t tot_ring_cnt, i; if (h == NULL) return; @@ -407,7 +407,13 @@ rte_hash_reset(struct rte_hash *h) rte_pause(); /* Repopulate the free slots ring. Entry zero is reserved for key misses */ - for (i = 1; i < h->entries + 1; i++) + if (h->hw_trans_mem_support) + tot_ring_cnt = h->entries + (RTE_MAX_LCORE - 1) * + (LCORE_CACHE_SIZE - 1); + else + tot_ring_cnt = h->entries; + + for (i = 1; i < tot_ring_cnt + 1; i++) rte_ring_sp_enqueue(h->free_slots, (void *)((uintptr_t) i)); if (h->hw_trans_mem_support) { -- 2.11.0