From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0089.outbound.protection.outlook.com [104.47.1.89]) by dpdk.org (Postfix) with ESMTP id 664BB98 for ; Fri, 27 Jul 2018 04:32:33 +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=5XRQmjVSE0+OCRWrw70PDHjOrVy1CZdJvHIWLlc2bz8=; b=KPTt2thO7E2HV+MJD5TB/y8EdnmLSJSmiQwxERcf031lPYRSJ8oTbVDyuckswuuVWMgBUnMCJJGiOQULszf4qb3IejdwU8neshpkkuU/hIWaahB/eqxoaO5VOcJVDouQQK7fCWd4fDKTswO+ZUdrHTpGfg8lpQNcZG9bVjkU1+Q= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (209.116.155.178) by AM5PR0501MB2035.eurprd05.prod.outlook.com (2603:10a6:203:1a::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:32:31 +0000 From: Yongseok Koh To: Pablo de Lara Cc: dpdk stable Date: Thu, 26 Jul 2018 19:32:01 -0700 Message-Id: <20180727023205.38767-6-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180727023205.38767-1-yskoh@mellanox.com> References: <20180727023205.38767-1-yskoh@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: MWHPR15CA0056.namprd15.prod.outlook.com (2603:10b6:301:4c::18) To AM5PR0501MB2035.eurprd05.prod.outlook.com (2603:10a6:203:1a::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4fe3b8ec-2f57-4b56-35d0-08d5f36934a3 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600074)(711020)(4618075)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:AM5PR0501MB2035; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2035; 3:urFRHuD3NcwfpPHqpGU8XJx0ltZyefR99FAZWzSvt3pcdC+2vlmUOinoUieF4MRv5DA8tauTaqdOIKfFAjA3vmAJ9fZG/Vgj+2dZMBWSjyU/7cLkd29UDv51W9tvZxjClSKP7nGyNrpIE1cxvtecMRlHT6IfLOdTUZGhLSwNfqfhZPlf8vVQfAoydVeWD4MMWbhxsIxmakhp6MJ93ba/nREvHeOYRLkjRfyQNRNpY1BYE5g5EaVbAFJxoEQTTKhI; 25:S2E/loKotscOYRdxxTy6vtnMJssM4DeIiAVfgBs44e4yXNQeZeP7PoaqXAJUhFvzBVAQ6YFChIIkkviJ5LvTNyJwB9PeoQPx9FJWca4of3xzmHtSlEhRQzy2iTwwey0x2Lk75VNu6jTRHD2LWta+pHVbhXh9EBgaFM8TPbB4LFWgnFFsPNSfrH8toTAP+2h6MMHsymxNK8inBWRg5Bctb3E7crFW5VjNyhhN3m2o5aq+g76B2v/gbWr2gnGc1G/wOxlj95YWWXKSEPxQPjZSdspYkX8gMRQsdoQ8ZdsE2/lNWCPGjIkKSA0m/6Gmm0jZ5RkrqCUevNzP7xltKMGK+g==; 31:g8oFaruM2CFRJTj0fQeMTTjlv7Gmr4jZ+O7nzqzxUjQbploa0hNtjikv9VtiqybJuTwa7aUx6SsyQmUNy5/4U+95PaCyfs8jL54n+XwCMMCDGYUCyjxuCyw82Fc98Yh8Yd59Y/diKNE50S5ylpGa/wqzVxlWjSAnLqnzb8Ey0Q84RAiUXYZfc+uc9zxhYxIm0m/JfudcppJYyeNdlhLltiNc8MNHhdg95Xq9OEaa3EI= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2035: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2035; 20:9onBNG2h6p6t893haaS+LoRu/8NfcXe0IVqaoIO5iNDAWbtPslBALONp2b80zuCUS6QY8wP4GkxMcOh0qxX6yRxXOnXdKUJ7KEkQg2XQWI4AkAugIjp68s5stlXT7HV7badVDrmj6dfx4lvZKdYY1pXt3O6J7hTOx4pMkn4fKQwIpAHJKVkR7/52HAK6m9uLsA3tisvgHLqw9tOsH7TQ3wVVF9pIAowd4Fv+2/PAAhXCnXeXKuSAV9OETqpFiJp1Yk1Mk42jv67F4nAJ9ufVsyDABORK6sr4B25ZzLJcEYbCEoNo5gxzeCpISsxZ4xmbuvJFKcAjVhBhLaf9F8FeuycTdiohRl7rWKVHhwL/laWKCPMbPrpRlXwF9u5s4GUgJjkpnffrg0MZkM23EudKLentZ9ZxoFjhQ7NmB30Kxq273TxOk7YtGnXw4pQTNLSXNhJV5RWwiuDpp7L+udRhQFbk/IqjwXSvPmDUb+4hq7xvegsf0utotEs2JBiohDCi; 4:KYTSpVw9Dsp2tUezUwZQqvRdG0akyiR3CiO0PhlML/3cgSR9tKX1C6bHRdam4uentQW6MQidY7Z5zL/aP3g4w2Rmx61lny86q48q0ib9xTXsaByPwqzMf8RWKLddADpPBxuZ3SuTHzsud0FF+MXFu+tSJJRsGga4LUDZKa7e8X95iStwVMUi3xw5D6exajBy0bRw/9DeXkzujdh/1uJ6yRgIWhhgw2LDAZmzHR5CXdH7fypuzCO3tA+BbHTqvdlFTYBhFi8VlZbzoSM5uMjK00QTancgMakDTmXXZw/kMYr7CD9Txo+n+E5Mb3xs0KGj 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)(3002001)(10201501046)(93006095)(93001095)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:AM5PR0501MB2035; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0501MB2035; X-Forefront-PRVS: 07467C4D33 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(136003)(366004)(376002)(346002)(39850400004)(396003)(199004)(189003)(69234005)(28163001)(4326008)(50466002)(48376002)(1076002)(1720100001)(966005)(25786009)(6666003)(6916009)(53376002)(5660300001)(66066001)(47776003)(105586002)(86362001)(106356001)(478600001)(575784001)(51416003)(386003)(53546011)(3846002)(7696005)(76176011)(52116002)(6116002)(316002)(16586007)(446003)(97736004)(81156014)(305945005)(26005)(6306002)(55016002)(11346002)(8936002)(68736007)(186003)(81166006)(50226002)(21086003)(8676002)(36756003)(7736002)(53936002)(476003)(2616005)(486006)(69596002)(2906002)(956004)(16526019)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0501MB2035; 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; AM5PR0501MB2035; 23:j05FByDqa/GOeu8TNXANB7VNF6K/z/6p35WOE9X?= =?us-ascii?Q?OHLdxJYFP1ZClvZz0oQWARAA41B5SxBHY5e7X/V+tDtJxdfolvZdYZe6916l?= =?us-ascii?Q?eEJdyPer2UEajvP3p23ZdWBCOeF65iHvRjKN03eTuDP6QxLViTZ0yTwTZtSo?= =?us-ascii?Q?5DWv6hBpNQ6kuB4VdBpiw0ul8yAUtq+cwxQc4qA3sMwkhMxPxTd1PYeAGaZA?= =?us-ascii?Q?JoslhraKVkQx0dx0WAFoemWFnQzT2wLSGJMKzr3HGnUwU7ZfilOXpuedRAks?= =?us-ascii?Q?60V0gXRrKnkZNOyH1g+2Oyctibki9QBd3j3wPO0lf0B2h32Z9uWB/vx1poM+?= =?us-ascii?Q?XzkhazH+lFdP9JdHVYdUNfixuplSCNANJQ6VqS0zM/LV/9+YGxNK/FLAuITl?= =?us-ascii?Q?LXsJz3rM5hSt3L+zO9MMWgPw0dJXzBpcpNzhsGcjvQAybtC3EiQFyMaPZWbb?= =?us-ascii?Q?2XETBogV56nM6lW9ALEvICP+SRT0cF7hBdX3ZR/1e8q3ofFI0pb1aRhly25u?= =?us-ascii?Q?Mn7hTf4CfXfqHrKmUkU84E65ja77Pe49Azic3/Mudwx/Si6Gk2ex1vrw3S+y?= =?us-ascii?Q?UHCta2MgZea24W7CASC4Qs2AjClsL+f9lJ0VKvjvngzN0z3wAmhylcFV7GY0?= =?us-ascii?Q?oFAkynHEmfy0ELAOOiNUZ8zJycpy8W91VB/gkG0dSoOJl4pAXmq72sB9+EUv?= =?us-ascii?Q?FH9j3lfiGRG/++jFRhOreM21RVYLUdolJfKgxW9SIsk/OVZ0gVVbqvVCH/BD?= =?us-ascii?Q?4/ZA4aRjJm7Aw9tz57Jydo/OjwUWHl9YbyEHiZR2f/UL/xMc5eGD8n1fL/nK?= =?us-ascii?Q?VsAjetKCPlMnz2M3SscjBo31HQjGZrlhrSRRw2iypOqVFvSa4ws5oOE2vPjR?= =?us-ascii?Q?A6JgSRxjcTGCybJD0ulO5a2Tzd70k3tJ7uuSNSmEa7NnevhC3xrtycoUV8NX?= =?us-ascii?Q?uXCyn/0E+eirdXL+wrWFLJrgQYp8mmHp1yqhzqbskJH9+k94EUjJqUfNzd3W?= =?us-ascii?Q?rQWDWxX8r+TOtmOD8VmpOLmbBAblnJ5mWzRxmB1/x9uNXy2YVc04zXPY0M/9?= =?us-ascii?Q?hkYbIadKE/pW80DMVcbK5x4S1J5EhGKVtzf2XwUmuvGrkwhu/nBVuKuNHf2U?= =?us-ascii?Q?9b3ou5CZ+B9v54xrrMjBg0I0Ss/qrjVPmvlcet+KPnLWVmi0MeN/dUvukGgs?= =?us-ascii?Q?6LHGgBH/REbM3+i0npvEX2TvyBzM/VBH0cV62y4A/lGAK3BKAC6F6rm9zCQe?= =?us-ascii?Q?uR0P2lnFfvCakY3QAA6SagsEN/NhVAN57ojvB1shFvr6flt1c0f1sX8BOB6N?= =?us-ascii?Q?4ZPJw5qxKkTv/zIU7fjg+j9IZQ6Q3Gd9JbWBmXd5BkpW0B0RFJGsuKyNh/Fy?= =?us-ascii?Q?YoiBeD8JaeLFgvYwNImGf7XCW1KRwoAo3BfGQfB+185SmBZowj4XDDLwlpjB?= =?us-ascii?Q?9nQsfNuSEQoRjZJ3vZDr8xYcguNUkbJKV0clmuZeROVdjsSdtrLa/3LRItNf?= =?us-ascii?Q?yFVFOYsJbsofafg=3D=3D?= X-Microsoft-Antispam-Message-Info: 7zNHnI6mWNLjJ583clawAplwRC0j5P6pbAYveQIEdN2TMYk3Cw4dLt/qaJ5RKMRtYYIO6VeVcnwOLVsvHcmgzy2Qe3VnNyhs9TFyx0gqneosQpB9DmgHmQHgfi+HyrrHOgzDG2s8wz2W0CPNsCp3hUhM8E9ZBN4EIoPBCWUGGV0cC8Mkop01V3Hhq13fQ0xSKfuFroRQVcktGU2Aje/VBoVPts/sV1EW+g1MXdQa3dXCo4QkX2q+rVdqwijogZVHi2Ef3SMA2id2jijnvvriAlASahDj40VF1jvs1ZF7jRZfs0HzIsK+S+oJX+885ZQqPrbgc+ZBUs/cZtlaF84arRM515EEoPWc3ChzppfQQGo= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2035; 6:5MCPBnEWsXwinNxqpNBSXCceCofaQvH4Sqo6jm5CTjuRgIZXFj1vX37C+R41anKGInBcBo/XU7Kpbp+W2k492p0qpaVMCfPMSys78nLSiCmC9MTq+7GnWv0nVQL9AZtofr9JUGlLTqUEqVtSV9L3tobzmoWV98F7TmL3ImZT470BctCUdKMzlq8YgDDxGdnpR7Y5NuZPUc5Y9M5bW3xckMfwHXrJVUuMrzmn8qQsm102eMfhp0JrTSTFBcl2GOSBnuy8UoWZYzGCzspskNSV0XdysWRCdKfjzn1VcUVeebaMVX+NxFqw98Jji8KQJmZlQeE/tDr7yihfia/roFlGYrvRLi06FZuIVjCw6cZXne+nrXDEGDuNbC0/9l8YtD0UtFmjPL/5U3zAd7FU0jOxKyM75/WdQesUYdpIV9NdxYljXSvWVkSySnArWhmChjStspj2m6K5O8uaoRa6nUkCkw==; 5:YUxF77td2FmtEEtX5DQQUQDBditXgxIRAf0oFCPILELHLywU7gDMPk3ZIBfeSgU/qAPTWkriuBAEEil1j+XCfyZxoOObYRyD25HQF88/sm1hNVVc/2H63yNPb3qu4u86QeJm2VBzziRafARfoNLfqWT0/QxLqtx9e0u3zFZGMZg=; 7:Yi2dlhi7rylKDiMmosfGYgr7EEedL3qrVUERowXehFAWu5b23Aae5m+m34m5+tkInn/nqReZEPcpOzy8XXVQZyedt1oE3kH/DYnULnC7aMBXMHpFxzDqPDw+25OGyFL0xq89ojWxtE7X41Ju1gaA9zadV8JA1qGjnZ+DriYxWlfcxDTbBwea0hW3FS1RMVc2d8HZf2rVLGaWXViBeY1tW2XQdEmrpJ3dG7E7dStOHjFV4a53J0bbt1ZYixooJ/r3 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2018 02:32:31.4242 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4fe3b8ec-2f57-4b56-35d0-08d5f36934a3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0501MB2035 Subject: [dpdk-stable] patch 'test/hash: fix multiwriter with non consecutive cores' 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:32:33 -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 1716698055dafe82310c285cf0c49fbfb94dc8bc Mon Sep 17 00:00:00 2001 From: Pablo de Lara Date: Tue, 17 Jul 2018 14:31:50 +0100 Subject: [PATCH] test/hash: fix multiwriter with non consecutive cores [ upstream commit 0c992822901464d440534d337838fd08acf233d4 ] When non consecutive cores are passed into the test application, the distribution of the keys that each thread needs to insert is not correct, since it assumes that there are no cores skipped between the master core and the worker core. Fixes: be856325cba3 ("hash: add scalable multi-writer insertion with Intel TSX") Signed-off-by: Pablo de Lara --- test/test/test_hash_multiwriter.c | 41 ++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/test/test/test_hash_multiwriter.c b/test/test/test_hash_multiwriter.c index 4dcbd9d56..951c3e743 100644 --- a/test/test/test_hash_multiwriter.c +++ b/test/test/test_hash_multiwriter.c @@ -76,18 +76,29 @@ static rte_atomic64_t ginsertions; static int use_htm; static int -test_hash_multiwriter_worker(__attribute__((unused)) void *arg) +test_hash_multiwriter_worker(void *arg) { uint64_t i, offset; + uint16_t pos_core; uint32_t lcore_id = rte_lcore_id(); uint64_t begin, cycles; + uint16_t *enabled_core_ids = (uint16_t *)arg; - offset = (lcore_id - rte_get_master_lcore()) - * tbl_multiwriter_test_params.nb_tsx_insertion; + for (pos_core = 0; pos_core < rte_lcore_count(); pos_core++) { + if (enabled_core_ids[pos_core] == lcore_id) + break; + } + + /* + * Calculate offset for entries based on the position of the + * logical core, from the master core (not counting not enabled cores) + */ + offset = pos_core * tbl_multiwriter_test_params.nb_tsx_insertion; printf("Core #%d inserting %d: %'"PRId64" - %'"PRId64"\n", lcore_id, tbl_multiwriter_test_params.nb_tsx_insertion, - offset, offset + tbl_multiwriter_test_params.nb_tsx_insertion); + offset, + offset + tbl_multiwriter_test_params.nb_tsx_insertion - 1); begin = rte_rdtsc_precise(); @@ -116,6 +127,8 @@ test_hash_multiwriter(void) { unsigned int i, rounded_nb_total_tsx_insertion; static unsigned calledCount = 1; + uint16_t enabled_core_ids[RTE_MAX_LCORE]; + uint16_t core_id; uint32_t *keys; uint32_t *found; @@ -186,9 +199,27 @@ test_hash_multiwriter(void) rte_atomic64_init(&ginsertions); rte_atomic64_clear(&ginsertions); + /* Get list of enabled cores */ + i = 0; + for (core_id = 0; core_id < RTE_MAX_LCORE; core_id++) { + if (i == rte_lcore_count()) + break; + + if (rte_lcore_is_enabled(core_id)) { + enabled_core_ids[i] = core_id; + i++; + } + } + + if (i != rte_lcore_count()) { + printf("Number of enabled cores in list is different from " + "number given by rte_lcore_count()\n"); + goto err3; + } + /* Fire all threads. */ rte_eal_mp_remote_launch(test_hash_multiwriter_worker, - NULL, CALL_MASTER); + enabled_core_ids, CALL_MASTER); rte_eal_mp_wait_lcore(); while (rte_hash_iterate(handle, &next_key, &next_data, &iter) >= 0) { -- 2.11.0