From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80079.outbound.protection.outlook.com [40.107.8.79]) by dpdk.org (Postfix) with ESMTP id A1C57288C for ; Fri, 27 Jul 2018 04:28:08 +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=bIXD9B/dGZdkVTMBkHbVgFzukmbRILyfAwg3umFeflw=; b=XA8wkDifYw7I+xYplkvxuPCbjoOHTfABsp+DuRUPYwSHXseJ3jC0zJVbGD8O215XDWHMjBn3MZ5KdXvuPCnELXNDk6PkDs7ec9ZobuUmzpEFadXk4iyY/ccB4Z06Pkw8JISdBJWTkW+gnwfSty6iPtxsg5m8Jq0ACzJswJbjIPQ= 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:06 +0000 From: Yongseok Koh To: Yipeng Wang Cc: Pablo de Lara , dpdk stable Date: Thu, 26 Jul 2018 19:27:41 -0700 Message-Id: <20180727022746.38457-5-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: 937759b1-b26f-4b12-8515-08d5f368969d 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:jtOGoAD5mjGjyow5MCqAFFaq/jmWO9yE0jPHOyEueXrWgp/R6/dm/kbfUN9dXwAu2fdugCr/hKbXJqsVS0ZSSI2fuQSQipj0uLItmGIm7vuZN3HYyFxpi4bsMIwDkcUNX1xPDoEPTVkBTbCGNWlHFpJSfc1TXUBklAa0/ALwau1chSuI1BbJPqne5RIqGAjRSSCVX0bzGe75kfx4LSx2z4I+sGnOeeiMMs5UXcdWR94dzATc1DruYeSpxVRkTQ8q; 25:QvadhsOeDon93GKQ3XivSPLgf/9lMs/aNsc6GKINuoxGRQURbwH6Oq6H/R3Ys/zmlj7xPfKVAnMBsrAjz1WZjVcKJaaS36GCQTdxBa33Mt9JkGYy8B6bDDUjTw+B49aGnRADnXka8ImSPIL3J5HGltFlAIaLf2njXyWakD8/ziirsbAk0G+8EIcqjU9OPlV6EMaTzoSdMC5S4Btk/hKcPYadvlvv0LOMlindDK+lO+aZk/N/rzer64H1f8GGK/N2/DmvCJLp+mcpc+r6uQiETYIO/ZOC3KyMfjW2otH+YSDCC5pRHEMHaJjnUsxpydy7V/cgtPz9NObeernxxURJyQ==; 31:CK8GowugjyRH20j2a8hqqneeviWd3k4uQ8hFY6KuIYeny/X/e2GbI2rBLiBXjq0EwZu/8rY0gqxoT3LZqDrLQeKhSPbldqx1aIMC8G8a8nfq1An+Fjib+MvSYV+zxoPIq/ixVvbA4h0kfR34Jyu/O7DFaJlKPhk8O5LitisCRYrHrA+J5DJXA5org7s0VdHpSoHPCi22RNnPj6hVeLP1BWqlQbv2w7TJT3gtASS7Nvg= X-MS-TrafficTypeDiagnostic: HE1PR0501MB2043: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 20:Go6F5HHvDDT4aJvaRlLmguFhKzAP2mZux7mN213axRSKq4Gy+Bijbdh9i0nYLJjZn5hvFb2ZEuD8eQJF/aIiHCmKlW1tWARyg584m5lcutpnOpLRW5QwXfG3aV/Z76zhK+NVlgdIeMKyq6HWAvvc8ddOSF41K/Br8jnTH9UGd3bXrhPHA6nDrPwfLG+sTRrrbJNThK6fysfldYd4q5SuPZYA88lcjHkEdPSRPH7wtmBi/Banfe55hZIJvMuEZFn499W3DZHkJMFr9qoBgMOSaX3iiG6n4v/akIL8FeheXBDqffUYk2FfUHs48emddUXK7/AIwrVKi7XjD+OTQqRv0b3qTd82OMlcl6fnubUHw+IqFcWMaLz+m4knyi+RWKpVNJtVHTMj6ag4rjf8FEqwOWxT2wOcGBhtxgByhsT0zvt2p9bFtHMMZQs1SWjNSwQ6ts0uECJCcufU3obzOlJQZ+idhRs97RKzQ+f29EGVjUYpXbTPV4CJAc8d8FJrWN7t; 4:sXnbRTQfFmIIffMZJurhkyaRD/EtmX7/8imZ6E5e50zhf3W1tc+r39FXfstRIaPDFUUQcvcSb848HPMM6a1xEfA/rnvhBgysQHQ8VaB5b7kHMQCciBk0f6lURpVn1CK4ssPlCGdgmmMIb4uDzFy1jcfF0TiEqgbwGT3eHLEIpwXEyzTElZ23SyEXF7aQsgS5ct7O4uVUs+RHwQj7n/Aopf+bWnVxtJqm2LeQHTXQwIEBP8YjHHgFf3BHcM2swYxyGeoxhuNLtwLjv9SOd6lEUmCPGjAy+22Z7Gav0tKc2yvHqPcu2Oedk32cQdgaju4V 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)(14444005)(8936002)(446003)(16526019)(2906002)(86362001)(5660300001)(11346002)(106356001)(7696005)(575784001)(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:yApGyxiqbyqyW9lYa/tGiRY5bPHlHnEIen9GV7u?= =?us-ascii?Q?adWfAOY1zV7o8etmXDlC32cSXhsqFAVZI0z3OTkpy6GfGbtcXiHt6d5bEnjS?= =?us-ascii?Q?riLv9DET7A7yK6jR9bJGM4B2MFFsc64EJN136u14/XS11GWm0QTcqzL/o46W?= =?us-ascii?Q?8gsKsIpV0faQPZW0fkmqe3yeDA3DotBLj/UT3k9zS63yLJ3csPIlsgWv5BPQ?= =?us-ascii?Q?ienQTeESEmY37kq10Tqcegy2YyhrZtCeTJOMJZCRmIZxX6uKm5BJelE8lkEr?= =?us-ascii?Q?a9WjGKmrMdbngwzcAmBocVnEpnDiWWfu2Y2XSaU5pjmg/LAgEBGVJBdDP+3s?= =?us-ascii?Q?OTCUobKBeVKiySEM4DqfZqMj+zJtilla8Ft64sINAZx8XLBlikhAH7GN6zLF?= =?us-ascii?Q?7t0s2EacKhFB46fkrt4t6p6+5ceN7AD93lKDZwyV/PT6ykARE4xzV8YSEsSI?= =?us-ascii?Q?lLwCONVZnp3DQaj6jFBziTJcEI9KwloLFGXXo0KX+fJOrV6gw9Hf1Iz6x0VY?= =?us-ascii?Q?apCDoJA3QdjLqDxjQyzlicx2durdsZBr/c21BobskaLZNesLpkDlNfF/grIO?= =?us-ascii?Q?cIRsLZx5Lfhe9HomJUaAaM8ANv9pTTnq9soIA4IlSlRzBjj0TYi9CmTbUDR6?= =?us-ascii?Q?itlM3nhdsL9aw8TCBPGvcPpdxwxh/pg8XG6FXKISOZZLIxubo2WYH2hdTVBI?= =?us-ascii?Q?oXPozORUTgE8gjotoiDV+DcQVLEfLsnUYs/oXnAhcqlGXH+eKuLT3hcFZzc0?= =?us-ascii?Q?iW64+kJrB790BD5IYx9wynYPd3xjUirR2mMW3tBWQWvp9xc7UiaIJLrbR5le?= =?us-ascii?Q?vHFOjFk7wGmbEpyAmR49TxcslsqPw/w6ClObWJYCOmJ+vEWJ9U3fifyWxNoV?= =?us-ascii?Q?A4MxS0x9sJcf+KtdKoNrkgYpt+2IFrKGtJCYiT4NOqkGpZAR+yVld2LekPcn?= =?us-ascii?Q?50owCgRJa0jRP+r0ZlZ62wkYBl8GNaGrpdxJG/NTIHo/9WZXlNse6Zt2I05B?= =?us-ascii?Q?7miWwikfVtP4Jk9ZOnAOiIrjBhdck9DMFhg8WRs8vxkbvYcNwWbbwLOtZwfy?= =?us-ascii?Q?ulDPpH/L8w6GtPuf4j8LSAall10HTIMsheJZ5eA45sLs4ghqHvcCPEKmMvvP?= =?us-ascii?Q?mk6V0f3WJCjhSLHzCXnVwIYQLKPrgkEiJyB8Vr64WCRUcch+c/6k+SopL/kf?= =?us-ascii?Q?Wy4PKrqwr3cr/dAFrC7QFPvf7zZAuJeRh/k7PGOQUQEs8M0lxPajHUbF+bIW?= =?us-ascii?Q?xPQ51v0AFcvOVIfHWN/377ic7QSmFd2WqrQUCbeFna4h1YGbWiF4E/SZZx6y?= =?us-ascii?Q?Bg+KKjTnMayjCEiwYMqXpJ8PNqX+YQKjOMU+Ni/+kXnHOiRFh3+bR4D269ej?= =?us-ascii?Q?m4Vv7wjOQks4x4g67WCY73fwIuYyPb/jM4C7kn1WmyKuhlVThH5Np+ILCKAK?= =?us-ascii?Q?yf+4R1OY+PQ=3D=3D?= X-Microsoft-Antispam-Message-Info: Xzv7Diab56Z3GOSAWRUuRCZqQvDpIfe5ufM8WY1Vs8BnVtX7aLRvZGaLMmOtUTmJIj0IaUllaDsLyWUtG7nPVdxRDXZI+y6W19CA1k9Dh+xzJO8hi91Ga5Ou+bkUYMp+Xx9Ns0gjgkmMxU0n5rfYul3o05x5SSosNrOjKL7SDvWgaHNg21YJLEOMH3G/vg6cA28+wCQ0/7N+r+Z9BPGYD29yf8XoTWdjSh2hrS0ZxMHZz6cFP/Bsncaw/aA84IXtkrQ2r9YjEXBDUiSi1Vxc0yQeHiiFWOtICrj4X+gtSk2CJdxPAXrPVXTBSACj0t6adZMcpAmEkofyxZQE0pkBay7L47746HMeUAzDcyc1pYk= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 6:RKEiNRtTk71+14l4mEMFJ5iGRdcP4VSC96toSP0fpAKBR5rTixj/8AC6toPBTvdpp8CK/9kq8XtEFNdFQ23F2/4LkRZOidslDMQrQHsdZaZg5Ufo9U1wNWPteLYgWeA8GVwA/PUmuP3FHElOtjKTmA6CoKmyXG2uSPke99Xzy9lRwodVzBFJLcbJWBGMEY70IeIKXUKLPmdP434J3YGtrIpj+HQi+toOcGh4PkiF769OTRXM5toUF5jd92Q/dNtp3og9WofkNMcz3n8m9GEujP7i38aTh9kyCo92RxC5fHMoVcPuzQfQuyqbyjS9hGe/FjmZxR2CKn4bEcBGrfutoBLkWCNRlT9xQsGmBN/fvhw1oFtfsAxJvje17QQ0kEaN8qwK+lQ0XmIrSbSfls7uhaW4jfqVDsX42/D4hx5/hqKTmeZ96w1DijKJOZBSerxEnXStEsfy0cq+0E523jKdIA==; 5:XBKCw9h+Uy5rGOJZeOM/0eMjxTp2k/oXs87+VPxPbfF/ztw8JXwYUUuLv6iJJj5/LnpzDNquC5isMe+82YbzxrOOucbkQfJ0F5Jb3c0tgJ3WiMr434E6ANcmdTQ85UtqfiLBg0p47mt1irwDL4adfcIAVyvEysH/RS/mrTMajdA=; 7:U5Cos7FkJATzaTdOJQc/IEVPjzp3oLZNw78Ug46Ithnb2A3PyTVU9ccYwUVrjIHL118rBpggJHftmpsquQ+TG0QG/irUVUsk2wL007607ubYIivz2qisGTAc7yLMcjJge0HJ3/E005i9gJI5zknPT0eh+bIUmCS0Dew47shhX8Nj5/ieAtN8mldLWUN+SQCZWRT8dRiWB2Y2IrHNoC8Ea3SWij9jRigUjPF14WoW+yeN2ABsN1n6h/W+BTBYFqOY SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2018 02:28:06.0440 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 937759b1-b26f-4b12-8515-08d5f368969d 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 a multi-writer race condition' 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:09 -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 dabc158fbd4a9d581811dce0e5a7272452ba7f9e Mon Sep 17 00:00:00 2001 From: Yipeng Wang Date: Tue, 10 Jul 2018 09:59:55 -0700 Subject: [PATCH] hash: fix a multi-writer race condition [ upstream commit eb067d431d9411a0054bc3ec084b0e9eadbb0a16 ] Current multi-writer implementation uses Intel TSX to protect the cuckoo path moving but not the cuckoo path searching. After searching, we need to verify again if the same empty slot still exists at the beginning of the TSX region. Otherwise another writer could occupy the empty slot before the TSX region. Current code does not verify. Fixes: be856325cba3 ("hash: add scalable multi-writer insertion with Intel TSX") Signed-off-by: Yipeng Wang Acked-by: Pablo de Lara --- lib/librte_hash/rte_cuckoo_hash_x86.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/librte_hash/rte_cuckoo_hash_x86.h b/lib/librte_hash/rte_cuckoo_hash_x86.h index 0c94244a6..a2f1663ec 100644 --- a/lib/librte_hash/rte_cuckoo_hash_x86.h +++ b/lib/librte_hash/rte_cuckoo_hash_x86.h @@ -95,6 +95,9 @@ rte_hash_cuckoo_move_insert_mw_tm(const struct rte_hash *h, while (try < RTE_HASH_TSX_MAX_RETRY) { status = rte_xbegin(); if (likely(status == RTE_XBEGIN_STARTED)) { + /* In case empty slot was gone before entering TSX */ + if (curr_bkt->key_idx[curr_slot] != EMPTY_SLOT) + rte_xabort(RTE_XABORT_CUCKOO_PATH_INVALIDED); while (likely(curr_node->prev != NULL)) { prev_node = curr_node->prev; prev_bkt = prev_node->bkt; -- 2.11.0