From patchwork Fri Mar 10 14:08:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13169298 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 94C0AC6FA99 for ; Fri, 10 Mar 2023 14:09:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 85A898E0002; Fri, 10 Mar 2023 09:09:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 809998E0001; Fri, 10 Mar 2023 09:09:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A9D08E0002; Fri, 10 Mar 2023 09:09:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5D25C8E0001 for ; Fri, 10 Mar 2023 09:09:40 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 05ED214124F for ; Fri, 10 Mar 2023 14:09:39 +0000 (UTC) X-FDA: 80553171720.29.E1E2391 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf15.hostedemail.com (Postfix) with ESMTP id 23DE7A0009 for ; Fri, 10 Mar 2023 14:09:37 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=WphEF2ox; spf=pass (imf15.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678457378; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YjLkk2c7qkyw5y4hjkb7TF+50UyVGFsleuClk20l+mY=; b=ENtfGVlS7WQfWW4as7iC82ZHlLPiVYg7yyGCQs+ybEfZq2iG/no2x7AgJ/ucUqo085u1I6 JK3Gzr+dtFZ/TG2w/YfMGO3PQoqQ5Nb6V/e0o/dlMStAWx16BviDyqtKWWCU4RM9bnjhaU e4FiSDR6I3hEfLDv8NdziHhlqxEpucU= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=WphEF2ox; spf=pass (imf15.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678457378; a=rsa-sha256; cv=none; b=yi88ujiWJiktooX+QKTeZnNxpEspCsVfSMqfwinefhFL678FiTEBaYWporJDtYpBApbGqy 2/DgqWBXqNBl23Knd/PSidvu+8uP2EQYKbEfGH7cnFsAaO7uKf0xKbdVZxLOw52GujGbq1 ftlf5Ny94M+TWVdCGRm4xaMvJy+v4jM= Received: by mail-pl1-f175.google.com with SMTP id ky4so5682169plb.3 for ; Fri, 10 Mar 2023 06:09:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1678457376; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YjLkk2c7qkyw5y4hjkb7TF+50UyVGFsleuClk20l+mY=; b=WphEF2oxgLVej3eE274fGsflhyHMgJ2dTa8s8OAIbv9LOvuOXfdF5Wd1/NaUe575sO jjgnHjjrsT0jG6nkB6+v3mF6Cr3KhiaHv6c32jK1u5+vbv0c5CRt2ZF0+PVT6Cbh4HTH MbTFqJrcrn9Gkh6LznsP0LnemRqAd0jDgk17BUrm8jORI2Z6HACdab9cSSXcHLhfmvI1 xh1BNcKau3ckNIcS2HIQZc9DrtBF1jIOIXioVCYTSReGIrRus1A7fySebJgKB4nf68ku I+9kznE7YYXqfpkGLKgIi/gzoqg00fpJ4qB1FyA7HcnqhHZOJqUFQ8om/zSdXIm75gBT DotA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678457376; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YjLkk2c7qkyw5y4hjkb7TF+50UyVGFsleuClk20l+mY=; b=eFLK914W2jFCUk7kxN9pNiaxM0QLXQeIyKZ4ttZOixq4czVTiM2fcK/PKjm+Gh01MC 3ij+lGDfx9EoxXZtFpdl5QATZ/6zjcYxX2gHCRUNLJFxkk7KXHOFRp/Qt+mnaYuaInKx yT6CDCrKAIPFoi69tZGYS543HPbmDb0P+rEDnx+GZi4QvUEfoWoarKsdLOnTjVPI7MNt JMxu2Pb8YUjI0cO9wQ8KkjJjYCDKPCeMlvrEs2AH6rceTlUZkfNsln5yAW7TPsbIF8EQ nrqYK3WKe1R8TWK9112ZIJzQRtKODTtmP1T50KgjnAME+oTgXit/Z+uM3eJpQRHEGKZq 5Izg== X-Gm-Message-State: AO0yUKXjf9uL6pnplDoNKRfJB84Q8ve0M1qZAKp5aBlTPzoNX0yWkGsI FM6/6Ty+eLv5AaJwsS43/QCu8g== X-Google-Smtp-Source: AK7set+QrOEa9fTlDbVV5pXLDfDbkYu/K29dJO9b63aMffjgrG9OR8N6Nz38PCDjMG+CznXz5kGPHw== X-Received: by 2002:a17:90b:4a4c:b0:237:9cc7:28a4 with SMTP id lb12-20020a17090b4a4c00b002379cc728a4mr27301326pjb.14.1678457376680; Fri, 10 Mar 2023 06:09:36 -0800 (PST) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.234]) by smtp.gmail.com with ESMTPSA id fu11-20020a17090ad18b00b002375c356b0csm6753pjb.19.2023.03.10.06.09.33 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 10 Mar 2023 06:09:36 -0800 (PST) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH 1/4] maple_tree: Fix get wrong data_end in mtree_lookup_walk() Date: Fri, 10 Mar 2023 22:08:44 +0800 Message-Id: <20230310140848.94485-2-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230310140848.94485-1-zhangpeng.00@bytedance.com> References: <20230310140848.94485-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 23DE7A0009 X-Stat-Signature: tmhpimnw4cuwzfgjsnk3dw6u7kujkots X-HE-Tag: 1678457377-843161 X-HE-Meta: U2FsdGVkX195oDCrys+YgNaXOyvUB5dTZ+o/+fhyVx6QhdMuQSn672ioSSNPaJqvwn4u1ALocdQ1hs0lquKcGomxW3MnoCJXuin0itjmBMxH/OMPMK4BoyWONGXDKEPRYdDBaoqZfcPRMRjCOKcBfYFeSoIjSq/hx8VwzOauiAJsd/xEPTSm5u11An162V/gUiNHM8NrY25pdlXJs9gIBGirUpRdp8AvJhMUW2c5n+IDH663kSPd2K7yMT9QG8NwEM/mL/saZxqPIkQUtyMqk+jHGyoEpc0mdhKx7eTdsaqY/v44T1NQSstuO6V+je4d/T2Bu4GdfA7WiR7YnyEWJ097jhjUNfOqcyTlWBtNDyhRLJjO2wFqPiC+MHWkEZvm75TY33S9on4EIrZBm2mgC850CCEmMie9G1HVae7/qmORuIVBoVwiYTD0n5aMZ69SI7gAhZ42wN94XyC1CX/xQTqVpByK8w3pOYCFlF4b5Wi5L4kebzPdNNV7SIVLnlMigSicq6qvTvio1tLXVUzeaEyYihklJ6YgarwPB6tROyjsa9u2sExrnopTyk4GR40053MWe7taj5IcNvBln7MAeSp22CjyhaWY/imSztxcR9EUGejUbgjAVUD/7CQrD/DKu3Sj9UCAx/iB48xXnK5dk85AkXY/bXmEL34SWKPviBKAWXsGnVhNltlVzCDRDyPHT7IiDUPIU2hbRAckkOPkzsR6Zn4jFdBrxSsyKUR+orzyefWnKlsEq6WcrDz0AbnHOZko5s6pZkhEuBO1OGU3O+57hfCxY7UGdm5VW3NDK3tPoG2Y6zkvUmHa3L0nns+LoZzPQbYiA/Zu1HXnyUaiAVJLkdbX2d/5E8JyQl2067r7k0j9hIHa2SptqL5TWDfUMz/AKCiwo30y/FFYkO/S+qRMWcV8llktl94V/lf5vGIOJdRDcfrx7TNCaxJtpda6aXNu80giHi1lDUGLnWb DVsx5w3I EiRzxjzgmN3GVAneHPgNahSFp5AHc1aKM8WvQDVPtnQDtDJGj1YiDeb5n9BNzRYRI9XRCPH+X7BIADjD5JnBI7n0ICdeD3WQ9efQD7GXWUyn5QijymGN5037+N4OLRKFboFepX8L8YExUVnivvJ1t4rYd4mhbFQPci9EU7PqyqTkZTxt1eFKKINakxkTz8ok06Qw4lAqlUIu+ukOFsB5C5bBQ20AVJiWz7rIqFYKwm/D88cPqYUxP5jnAYamJloNPs5Qa3mIaPZgFIOTLEzlac7bUuQrRrCcbGBn5ht3zGKfU8/sUtDeecuG7La06nFxPCDKYngu/lwPT1BG/kGBhh/pIyWYVCYv7XHY0yNtHOTaQQ9qDgS8lQEfcP58sa3QY4AD6mQkWlV3Tb7kFlTzdJRKTD7kdkpZwh8u5C9x1d1/Y44k4LkN1cD/NhriCt2nB2wLO2UqXsd8ysqG7lwwFDy9rIQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: if (likely(offset > end)) max = pivots[offset]; The above code should be changed to if (likely(offset < end)), which is correct. This affects the correctness of ma_data_end(). Now it seems that the final result will not be wrong, but it is best to change it. This patch does not change the code as above, because it simplifies the code by the way. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 646297cae5d1..b3164266cfde 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3875,18 +3875,13 @@ static inline void *mtree_lookup_walk(struct ma_state *mas) end = ma_data_end(node, type, pivots, max); if (unlikely(ma_dead_node(node))) goto dead_node; - - if (pivots[offset] >= mas->index) - goto next; - do { - offset++; - } while ((offset < end) && (pivots[offset] < mas->index)); - - if (likely(offset > end)) - max = pivots[offset]; + if (pivots[offset] >= mas->index) { + max = pivots[offset]; + break; + } + } while (++offset < end); -next: slots = ma_slots(node, type); next = mt_slot(mas->tree, slots, offset); if (unlikely(ma_dead_node(node))) From patchwork Fri Mar 10 14:08:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13169299 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6296AC64EC4 for ; Fri, 10 Mar 2023 14:09:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C035B8E0003; Fri, 10 Mar 2023 09:09:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BDB678E0001; Fri, 10 Mar 2023 09:09:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A08228E0003; Fri, 10 Mar 2023 09:09:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 8FBDC8E0001 for ; Fri, 10 Mar 2023 09:09:42 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 5AC4A1C5B4D for ; Fri, 10 Mar 2023 14:09:42 +0000 (UTC) X-FDA: 80553171804.29.CD15B2C Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) by imf08.hostedemail.com (Postfix) with ESMTP id 6ED1516002B for ; Fri, 10 Mar 2023 14:09:40 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Vt7HmeQi; dmarc=pass (policy=none) header.from=bytedance.com; spf=pass (imf08.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678457380; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=f7DPt8nqxS2DR8+B+9WtRvCdWF3m9pKFBEKjw2IVbrY=; b=rTZd64gf0PGtsfvJJR7OhRT3mAarNr7nfXlprjzihy2cLiySInIRr0RpyRea87C9gxs3Bm 7cPiQI7pVJUFTt83K79PuQFzMzRU3kN/r4gU0MM+vJIsXOd18ZUcpxCDELQh85NYSelcls cT5thmoQwbP+3TRgSmzeJR/MDawTrHI= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Vt7HmeQi; dmarc=pass (policy=none) header.from=bytedance.com; spf=pass (imf08.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678457380; a=rsa-sha256; cv=none; b=t3TRTVdCBwcP4WCFJf7E1wpaYU/VIYVl5iYkSE/P4ppr0ExRxFxC/siXyCQug9CB2C44JD nezf8yUHvmwwTNQDeXGmPeGIPBn3dx/TFQUgNUO2W+OhA11Jqep7iXQ1Uv8VQmGeSux0wV K1UdqceGpechJ6rzyne116VWhFBWnbo= Received: by mail-pj1-f48.google.com with SMTP id m8-20020a17090a4d8800b002377bced051so9936625pjh.0 for ; Fri, 10 Mar 2023 06:09:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1678457379; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=f7DPt8nqxS2DR8+B+9WtRvCdWF3m9pKFBEKjw2IVbrY=; b=Vt7HmeQi/0l9PcitJbwAwTNB69hO/ue7yLU7cQTTmP4tGVuY+aE3gFyEMp8I6M+gd9 0vRhsPgpGy9FkvxG682ngJXJVQ8h7Q+tFj6pxUci1n4a90DrWTeC+BFdbqiLiR1QES06 8Zh5WuLrsn2iRx4YmU07ySYLIt08ka0rV7cMvePtiLF2pelRlbmHOFUpl1w4eow+HBzM 1NSEFkEOZT3RNO0m7kXJqqJiUWLffAlSDZDnSXEMmqRGz4ZspmHHeTzNUzH/X/BrtwDi vCxlaVIW0PhyKotrrKPuxWcz0ee1nfXSCt0hEtD0rmaCWbI22gsK/jKBS2RXZ0mSAr6Y Ikqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678457379; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f7DPt8nqxS2DR8+B+9WtRvCdWF3m9pKFBEKjw2IVbrY=; b=EN9KTt1gxhBJVm0D3yPAK1jfKyVEdORkxBS0Rrvj7C2O4zSycLK19Tl5xzFychPpuO KSZpMXF9vgTRggZhRr9EbaWVKBI03vaAxqRShXnO59QS12hOqB5AUVtIiIsXbnnVqIn+ jBYFXaLhiYLIoBiOCunoSsOdQW1U6fUKrM03di7rV41qej7pER4rDUCuimbx85Zx170v xsZG5BFNRe9vmVRaF8tRxGXeEhN5gQEhCmGnI3OjAabB9XTk0IermSw/yEeTCPzofW36 BJf9wZ+J1Jd6sfF2+hYC0RF7euRBIclSjXMeOAStKbjR5nvXOn5rdeWWyyPVBivyRvDX G8dw== X-Gm-Message-State: AO0yUKXLAISRBAGlPw4uXbCh4DeJSBJ78PK/+bkZlO/GpVoEVayLKUIw VWAy3hgkmWR4zF6paVfTVtW/yje9DPcn/SaChi4= X-Google-Smtp-Source: AK7set9df5/U3LQZqScgLIUjh/W7HucX2b8VJSDwe4PpGG5DxpP24J4aztf92cED6W3fDEZYoI0TUA== X-Received: by 2002:a17:90b:4f42:b0:236:76cb:99d2 with SMTP id pj2-20020a17090b4f4200b0023676cb99d2mr27006601pjb.8.1678457379677; Fri, 10 Mar 2023 06:09:39 -0800 (PST) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.234]) by smtp.gmail.com with ESMTPSA id fu11-20020a17090ad18b00b002375c356b0csm6753pjb.19.2023.03.10.06.09.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 10 Mar 2023 06:09:39 -0800 (PST) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH 2/4] maple_tree: Simplify mas_wr_node_walk() Date: Fri, 10 Mar 2023 22:08:45 +0800 Message-Id: <20230310140848.94485-3-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230310140848.94485-1-zhangpeng.00@bytedance.com> References: <20230310140848.94485-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 6ED1516002B X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: 4ng9ijttuhz4uh144iwanm6fg91cesft X-HE-Tag: 1678457380-915746 X-HE-Meta: U2FsdGVkX18zTWvcOL25wB7PhThYweni6gs/coZxpteXYjyWfBd2YB9OZzixCeyQohWPCLdYcZWHUHnIvZVDydDCD+ul/yueSQCpAfp1ufplRkwJBJ+5QNn0M5TxtCz+tkGh11nAYtSXa9OuY5vxAm/P4zEVrs6l+BkcjATGVtkG0T7aOI8sl0BQBJLtOEhZ796t5N/MbdUXapvdTqD3HMrFgik3/i5a0wkVkZVd7F8Owh0glm4Th4POZfDXnHtP25lFflJiEHcIcq4A89Hw/vydoIDCDYeuF0+lIqfb6kNFsPqozA2NBiBUUh25BMumEVyXzfthdqvvrwBMDVzdtuzaLOcidzYKUrMSc6cWCNOnnLkb2avDdnW4tnLrS+wgW6pI/P4t9+eFZ5gIiN3ie3af4WoiYqMYezPvCzSZacE/0tYKMGCDpcoOWb1bWFQpXcNqQlk9i5/J4wRBrR3MZSvR1QGgGZekcSUzAB2wU/ZPgXdtSxpUMhwoDNPFdxifO57zS70mOdwdZWW4AGfVKf64TDgTrnLnAF0xKciFzu+BVPYvc/caLN+eq6fQTqsK3Rk80nDNEqKdF++dlstb3jR99z4z4rtJW8W5IXNeRhwem4FmaEFKd7hQCeF74uVuD1oNUq2qOkYWSfygA8p+hbKWDB/HBounntj2DmOvOULx14ojsxygmNGI3zJNIxJRX4qpfPEnm9nomdF0vMoQomgXGWczglXoI+JvbbAYSrbw121PdMpecGos0lzN1YOUOFkfbC39VTf2Tn10Pjpe7PKByGfGYr2JOe6M0I6lA9O9oGImxDHCQg7QWNPpB1Q7BL4uNSwygI8ORVm+Ey6WGfqpBTdzLLJ3l0PZZaBc52yRc8MsUbhP09b8IdWvHsrcJ8YQF0HznqsAQ+gRXzXjfeJfMTCzR+73PI3wBDkn+iHqE503ujVegEjij35wOZwbmTNXO9LxOt7Qb2TnjgO G6PiQ27b kZs2ExPvSm5fPxNMwCKprT3oL/jzZvAlJJb4AdE3s5/Ssv82n75PbcLWaT7r9mB11rylhjIvT51HQPrRiV8Za0biJGnBS+R87DspTJQZLp8vR0kDFqq5pUn0OzFnJPY5GF2ucBI6eIvlXkw2G78G6gTOiZNks31QQeqf3b5xLsDyyMNYvuschgjKL/+NOpqUGuli76FDxtp0qd13k1E7j/2ljqev8KZ3hK9OxK26hbW7qRrUQU+ZruoS1JLcGqoAHtKjkoPUxQxpnaSCLbL6pMYOArKCdqYBqf+C5e5Lm+FI8uMsFDX113IhYyr2YHqfsHY1cX3HPfKQhchaODQBEU7w7rPwr7CsnGCzIlnX47mNu5o36WFGJvEs4P16V+A29cFRmnmAjqqz+4wCoXBmfLJf/t9Fog3zGXhW0qXHbL5io4dZx3vKduqPco9hfgW0gIyt/aPiL+IQvBngkR3z7tDNsVA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Simplify code of mas_wr_node_walk() without changing functionality, and improve readability. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 34 +++++----------------------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index b3164266cfde..4d15202a0692 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2251,9 +2251,7 @@ static inline struct maple_enode *mte_node_or_none(struct maple_enode *enode) static inline void mas_wr_node_walk(struct ma_wr_state *wr_mas) { struct ma_state *mas = wr_mas->mas; - unsigned char count; - unsigned char offset; - unsigned long index, min, max; + unsigned char count, offset; if (unlikely(ma_is_dense(wr_mas->type))) { wr_mas->r_max = wr_mas->r_min = mas->index; @@ -2266,34 +2264,12 @@ static inline void mas_wr_node_walk(struct ma_wr_state *wr_mas) count = wr_mas->node_end = ma_data_end(wr_mas->node, wr_mas->type, wr_mas->pivots, mas->max); offset = mas->offset; - min = mas_safe_min(mas, wr_mas->pivots, offset); - if (unlikely(offset == count)) - goto max; - - max = wr_mas->pivots[offset]; - index = mas->index; - if (unlikely(index <= max)) - goto done; - - if (unlikely(!max && offset)) - goto max; - min = max + 1; - while (++offset < count) { - max = wr_mas->pivots[offset]; - if (index <= max) - goto done; - else if (unlikely(!max)) - break; - - min = max + 1; - } + while (offset < count && mas->index > wr_mas->pivots[offset]) + offset++; -max: - max = mas->max; -done: - wr_mas->r_max = max; - wr_mas->r_min = min; + wr_mas->r_max = offset < count ? wr_mas->pivots[offset] : mas->max; + wr_mas->r_min = mas_safe_min(mas, wr_mas->pivots, offset); wr_mas->offset_end = mas->offset = offset; } From patchwork Fri Mar 10 14:08:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13169300 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7897C742A7 for ; Fri, 10 Mar 2023 14:09:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 17BCF8E0005; Fri, 10 Mar 2023 09:09:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 12CF08E0001; Fri, 10 Mar 2023 09:09:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EE86B8E0005; Fri, 10 Mar 2023 09:09:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id DCBA38E0001 for ; Fri, 10 Mar 2023 09:09:45 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9DDB0801F8 for ; Fri, 10 Mar 2023 14:09:45 +0000 (UTC) X-FDA: 80553171930.20.6A3F864 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by imf03.hostedemail.com (Postfix) with ESMTP id C699020018 for ; Fri, 10 Mar 2023 14:09:43 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=R7ouu0Wk; spf=pass (imf03.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678457383; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ZI1NTxNQsncsBuSARtQ7gY1qx/Kaxg/acZj9mrc75oo=; b=8NeHoi2bVPwe9/gcCC1z6VslmTCPOIO0M5GTHgTkozqMtkgcf/WFwVkX/9cMEauVgB+xje HqHeukOck4uTJEYMAITiQ7CPcUVBZW6rF+izupnPIPsCCW6SYTCLpwEV+9Yutfr17FX0GI tNanawKfKUq2oxFfP1DryR0I1RoX82Q= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=R7ouu0Wk; spf=pass (imf03.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678457383; a=rsa-sha256; cv=none; b=mUsyn5MDelm1hrBTbaI71xtEYeFsMIa3OAATEqyisNyWPloMrnoEZ9iDrEPYL9E1E+gbTE RNELY1Cxd+oRWOE8TEV8AxH1UyycHKe+91AoZdAQUf6Bgl6m/8AZgbb1sL7t8CwHpji2MU xPz/uHcLxFyP4a7uRBjBLfLT8OA06H0= Received: by mail-pl1-f174.google.com with SMTP id p6so5713165plf.0 for ; Fri, 10 Mar 2023 06:09:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1678457382; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZI1NTxNQsncsBuSARtQ7gY1qx/Kaxg/acZj9mrc75oo=; b=R7ouu0Wktvvy/0biANU6/CsFYdvyqaelWm1/tm2k3z1xn1E58V6YQdhsRRE48Ukl0D xouTlAcz47ET0Gx71OmdRdZ1QQB46Fe9vBCaiXaGfk/dAdNoNJMwJmdyFhZ7pV/S7KcT qq/41cVbpI0VXpk7WAC/xbEO208+6SIYdhxXL+q7/v3/pnmJ5yey3oRrE45ykNAf9O+h 86/msFcANeTG0J4YQf4v66JfUdAcaAPu7V0w346WgpHPq+5Ozy9K7ywU+iLrHj5ieiIP /YBouzChgTtzGJRoD3jWioB/xzQHKJGT8lMCdNM7tcG+wvmYMAxcNNKEWgFrBZeD2ZvQ Cx/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678457382; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZI1NTxNQsncsBuSARtQ7gY1qx/Kaxg/acZj9mrc75oo=; b=BtIprtdNKEUIGpugFoHXhqw6jw6RdqHBxFCrA0x/YyuwE1DoRrG3iVlvJMOCXnFD9Z 86VdIj140bq0xG+l1mFJEqRBtjXUTmEjwoIHJqNt1HhZR2SaHr1byc/TYBKM1SrSaUtb 3/oYn7Eb/N44kp/uBvAJ5ZgVNBVDarjBvYi8ai7m0UO/b9aQGP+2SLKaOwL9sPNSc3iS FUVz5TkDNtqZ38aCxOltHUcVHOUJ9ExChZkEv4Kp/Ps2rNLwhuJt0b2JMUkgmmmEcvIw of/WFCaDbVTt+KjR4ASNOLJehyE4NNkqnT23Rn/gHWH7HIndMNtaNcLSsfGaNXgAZiV0 U7rQ== X-Gm-Message-State: AO0yUKVP3sGPC9fMVMydPAAkQ5Wdd3qju+1Uq4EyBwTcqv+pH47O5zkH TyObyKDsDdbmRKSv1GhRc1scYA== X-Google-Smtp-Source: AK7set8Z8bAhdNtk0KoMAdSO1/VatXK5WhDtaRNgSmexkSBtrCjRc8k4A5zuJ+DkJF+bE84k83di4A== X-Received: by 2002:a17:90b:33c4:b0:234:bf0:86bc with SMTP id lk4-20020a17090b33c400b002340bf086bcmr25736949pjb.31.1678457382536; Fri, 10 Mar 2023 06:09:42 -0800 (PST) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.234]) by smtp.gmail.com with ESMTPSA id fu11-20020a17090ad18b00b002375c356b0csm6753pjb.19.2023.03.10.06.09.40 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 10 Mar 2023 06:09:42 -0800 (PST) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH 3/4] maple_tree: Fix a potential concurrency bug in RCU mode Date: Fri, 10 Mar 2023 22:08:46 +0800 Message-Id: <20230310140848.94485-4-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230310140848.94485-1-zhangpeng.00@bytedance.com> References: <20230310140848.94485-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: C699020018 X-Stat-Signature: snsgg1h5byaijf63yu9x9dzsd17ifdf8 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1678457383-393170 X-HE-Meta: U2FsdGVkX18oI1ul2vkr+/TK7s0JNE3lUNrkQaSfkucg8YKIdq32VYMekfwWGbZoEh0Oy0a4c84bReqWyuMIDrfYVVocrKZD9z4sx87P88Vjybk1IWQtKCL5966niDChog+M8VBK8pvdHQ0UYZpLjNm0aPBT2vjhLCRmSZrRCXOxG0kxVx7N5EWyoByojrP2r8iJdCO00gEpOEBif11KwuAu3zWMq777+owrgwZZVOUoAWy9wLkOCHxc3ZtfuqUAYt7QzrxLTGUJJqZFIKUUH21aJL8KKlN4zLh2STNAOaX9thyGBIccYvNyzdKmLVWUm2S267ErSkjt6lrSoYRjUrLOATJ2z4xQ4HPUD5brp8sCoy6sZXDNtsbTSevccichuWnidVcFbaRQ8/SkyzRI07OxnCdawpry4VMHHLiCCKHlE2+j1eA2xfkZeotFD404G4kcFVsxeHYz3Q/T7GaAttP/Pi8EaG/jfvxipjpjqvrJXwn/fTKlo91XFFt4eD3MHIxblFNi8H162I9/xCtRss8lJMbmxpBcrj9YjknpI1+m1fO+msKsy6M4U8umSbfmjwnxCQB/j9UP7zTjlYAGKU+s2cQxvbr0FkQEuTW5wGetCYQY1tguJ4s8HL3hHceQlu05ABSvpwiGneYbNZYnBDPpKoYVdEovsOOXISyU2ZobVmo8/bUILyoVPrernYZnGuQ5mt7y9c5BEkzK/rijO1EW+bW684Tsrqu06xi+cVR2znOGgEZfZzPRHQbf1oYzw9QNRM8+XTL9rFd1li4g8blf6Yd6/K/geDEecaHS0c9OgQgZEiBDtS1k3nd0gSUmwk8TBpyu5PfVW9QlQiW32HCsuQy94kiuvp44HGRReYeRNmNweKzHTdHqxkO+qLzUhCnL0TDPUwiL4J5EdBaeJidtaBzIhUZ2mSk2WuxhhaVzw+eDGocnoXRhCF0KCLBtSq/K5GffnYuZExYNhkr S917KSiz 3tk7C4YdaWAFApNfDahrTGe6p86h43UE646x+8Ny9bjBcMLsQEsQ1rX4KacV1tWmufONl5ixAWz8YNlsp9DKNXJxMHrLKBXEAK6LEs/BLP9mDcrr+8aad87IuKTcfcucjuHql4+cYtCuzj66uStaVGO/c1OJZzPqAihbVVKCYpsj8IbWjmMeNDk7/7++FO/ICv0xrX2gG+p2Bu0ZiLs+2U9dyO6jPRDY8AfUjr4Ik2A/d752vFhkjSwfNBjW2pAPf92Fi+yzTYQXjNZZfKv5yF6z8E9xXKRcbFW0FM8sEBJ2UqzPxPHR2R8dD2LZ9VRErdiObqoFGQ1J8VmZKxI0K34S4SQNZF2EOTs53TUchrm1v/+F1I7SCND5fUu12ctIuE6XojF4CW5ZeYipMsBvfLYpsLZDms5g8OvoPY+hj/wp8V8O94eJMGsnmrqEBbACb2c0Pj9HJ+dSSV7BfBQtObWkQFw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: There is a concurrency bug that may cause the wrong value to be loaded when a CPU is modifying the maple tree. CPU1: mtree_insert_range() mas_insert() mas_store_root() ... mas_root_expand() ... rcu_assign_pointer(mas->tree->ma_root, mte_mk_root(mas->node)); ma_set_meta(node, maple_leaf_64, 0, slot); <---IP CPU2: mtree_load() mtree_lookup_walk() ma_data_end(); When CPU1 is about to execute the instruction pointed to by IP, the ma_data_end() executed by CPU2 may return the wrong end position, which will cause the value loaded by mtree_load() to be wrong. An example of triggering the bug: Add mdelay(100) between rcu_assign_pointer() and ma_set_meta() in mas_root_expand(). static DEFINE_MTREE(tree); int work(void *p) { unsigned long val; for (int i = 0 ; i< 30; ++i) { val = (unsigned long)mtree_load(&tree, 8); mdelay(5); pr_info("%lu",val); } return 0; } mt_init_flags(&tree, MT_FLAGS_USE_RCU); mtree_insert(&tree, 0, (void*)12345, GFP_KERNEL); run_thread(work) mtree_insert(&tree, 1, (void*)56789, GFP_KERNEL); In RCU mode, mtree_load() should always return the value before or after the data structure is modified, and in this example mtree_load(&tree, 8) may return 56789 which is not expected, it should always return NULL. Fix it by put ma_set_meta() before rcu_assign_pointer(). Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 4d15202a0692..de43ff19da72 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3635,10 +3635,9 @@ static inline int mas_root_expand(struct ma_state *mas, void *entry) slot++; mas->depth = 1; mas_set_height(mas); - + ma_set_meta(node, maple_leaf_64, 0, slot); /* swap the new root into the tree */ rcu_assign_pointer(mas->tree->ma_root, mte_mk_root(mas->node)); - ma_set_meta(node, maple_leaf_64, 0, slot); return slot; } From patchwork Fri Mar 10 14:08:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13169301 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id BB9D0C6FA99 for ; Fri, 10 Mar 2023 14:09:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3ED408E0006; Fri, 10 Mar 2023 09:09:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 359F38E0001; Fri, 10 Mar 2023 09:09:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2180A8E0006; Fri, 10 Mar 2023 09:09:49 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 1269C8E0001 for ; Fri, 10 Mar 2023 09:09:49 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id C00F014124F for ; Fri, 10 Mar 2023 14:09:48 +0000 (UTC) X-FDA: 80553172056.13.6ABB75C Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by imf13.hostedemail.com (Postfix) with ESMTP id A907B20026 for ; Fri, 10 Mar 2023 14:09:46 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=asKUtiJY; spf=pass (imf13.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678457386; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=u6SczCfFTY/KJFxBt0YFVietITxxXbodBIi134Qsi0M=; b=LE1kNFfkZhUf3/B5v3UBr7oJbDGM+eqtFw5T9yrv/x1H5vjlfz3WRnSMcuMiOc4awt3gnd V0pHR+93GyZR00JrbF+yi+DrMtaQASAhDHNFiee56VLqP+53sAXBSF8Jg6eKcor9nhw35X +mxA6CRntX3gxM9Lr2DjQpSDnJCR3hg= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=asKUtiJY; spf=pass (imf13.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678457386; a=rsa-sha256; cv=none; b=Y18+k9cN88HyYlSwLvsOLKeShNtKm1zSy0M/0qbqTQgTwAwSMBDwKMfgpQjEye5C8Zd4T6 6KJtRhjMEbnmTMGyyCxdcSqc39IrAL9wIwSMapacdjof1CFiMi9D7vUNJeqo1LP++8p23c OmCbNngtKft8+qALQXPnPToC4LsuidY= Received: by mail-pj1-f50.google.com with SMTP id u3-20020a17090a450300b00239db6d7d47so5259542pjg.4 for ; Fri, 10 Mar 2023 06:09:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1678457385; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=u6SczCfFTY/KJFxBt0YFVietITxxXbodBIi134Qsi0M=; b=asKUtiJYwQqgvMbN60l/bVTcYy2W5TZi9AcVU4FhwMRejoM8MKEoTejGDXrB4L5qRb apETIhrKGJqUxZte8/van/OhvRDQPA6LTjZdPQYxQy56FIXwSfYtblPmPlJaMseRJfCk /yfIf/MqQYjQt0TQom3v4HX7d9OQO9QM0TLMhqyOmcyJNEW9vYdHhWIAHfGXKlMTIJG8 33aFH4rBUKRtz1XBQmXjUCY1FGm6mtprh9lqOS/mAuq0AE1VUTJcJYRCp14hiDaJ4m1/ bHLS+N/9p6xMEGCJSRATQivnN79niKr7Z/zt+6bOH/T7hEOAme9agNB41jtnTSqcXhxy msag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678457385; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u6SczCfFTY/KJFxBt0YFVietITxxXbodBIi134Qsi0M=; b=bN14XCP7hA0LGCDya9aoL+rALuPetQopk/nOXHvKxFlUdjASbybgm7pmERJQVuZRbd xdf8g7QwGELwEk9Qy3uWR4j6PCJWxV1P+12+kqg3ni6VlCxrONl5O+BU4hIXnBcizhkL 629R++nfbjHOX7mgAYdQ0FxdHOlts+Wa9Yja0vVG6Ans57jgCmWq5q5sRoVud3GkxuEf /HxkMBU6hEOwgoeD8qwKPXBbJzeKNUL8HJRx3kzO53fv36scnp1QjWl9ieMMIwOoQNVl 4jt/XXUciyfpWZOS999ES84twMDq3uMHyGGZnz+rw0KECRlojdJY2AOSRG17+sq1IV7U YXtA== X-Gm-Message-State: AO0yUKW1qOqso3fryQxDTQ1pBI0W5aQ2DFqrYNTDLqiiyoj7knbZAwTw gYGERQor+pWFePj2nh09+MJgiA== X-Google-Smtp-Source: AK7set9+KnLDpZhKt5A/OsgVVC228AHdamUX5+ieIAuoF72IdXUgpKu58Km7GNjqb3S3CgyDiWDx5g== X-Received: by 2002:a17:90b:2353:b0:233:cea2:dac6 with SMTP id ms19-20020a17090b235300b00233cea2dac6mr26150338pjb.47.1678457385677; Fri, 10 Mar 2023 06:09:45 -0800 (PST) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.234]) by smtp.gmail.com with ESMTPSA id fu11-20020a17090ad18b00b002375c356b0csm6753pjb.19.2023.03.10.06.09.43 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 10 Mar 2023 06:09:45 -0800 (PST) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH 4/4] maple_tree: Simplify the code of mas_mab_cp() Date: Fri, 10 Mar 2023 22:08:47 +0800 Message-Id: <20230310140848.94485-5-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230310140848.94485-1-zhangpeng.00@bytedance.com> References: <20230310140848.94485-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: mocr8fipibmpdjs5nxkqiyw3pptdsaz4 X-Rspamd-Queue-Id: A907B20026 X-HE-Tag: 1678457386-811763 X-HE-Meta: U2FsdGVkX180xmvrLWx5Zukh8Wxm90Fb9R5EMgq3RqZzK5pGznOMbKvf1CMDDIrwn/szz1xINR2AA/n8F17I7DDadPfkRZIDoc12PUo1gPYDIFvb6j63+zIh3E1FdCHeNVQTA54rxnppV4TDDrkhMs2KkwhI7rh+8FpevcrNQcrCl2wjza1fnoaXt6QAas+6Fc5GvflawioMRsXaS+3qbUnvHVVqtfUcJIk75Q6HKI3SX+j/t/+9TKzmfMyQDgs1t/+ZDoGBevzJcckisDN7M0SUB3gwdj9gOv+cxtvRW5yaZTIVx+EJtUpv/sgvpg61GDmbRhlo1qXbTsoqbFTAEgjPYsVvbTr8Ycj+q3oa22bHJrMOepMx0/SSMIKrRwBJQxD4biBSmPvX1ZzhcRS5prcRFi35xTfYKns9M+xLNSZwRSuK8/8WnCl7xkG7Iyn28RTSZ20c1mM8QX5cVIBkXMhStT35ksawcBv+R72b7YNxNZxZQi0NkkbeuupElhSPRJuPEnJUURijcJXMqs8QSyRda33Wj36s2nUJAxbMa6f7OS4WQ7VjJtkselrUJw0KDrXCu9gpCDUvrPm0mNhAv8mdrlm36L6ZJCII+lb+A//DSbSX4tITA26LJTPkPFOUWYC6tjO2yVzSQeNQS3sZIydQJaEchNChBCNI3A0OiUqrAK3Pz8DfhtBf/jT2uOLRyEssNEovXnrCaxil5hAPHz3U8h/gofdAbNhM9daSGvWUNCOi9mFoIAQGwssz52UOG/49KsFjbCcyczNCr6D9xjhpdEcEBR023tpbJvEw2iygu4HWRwg+OEi2FgTXiPvnvqjICqYZfGco5OYzqH/81cYj0XKIaJkK1MVaq7FPUCOrafLPvfTTH/hRmAc6dgyipIjQ6GEq79l/Wn0kbT9vBtQAtz5HwQlT/ehFATYcwx9Xh/BPxxN/rfyU9MUAuOUfpToPl7pdgbUd0jFz0oQ /abIOEsP 6kTSS3/lxKLzC7WeT230LWG69Dfp84k2NYIex8Dmn2Pqvrl7zeHnxRpAKIHPhRGa0kX3xyeLfFvMa+ZL1VBkbSJoEqj8liLXZjN32aYHyBVheBZYFSG13jIZf707bqEBQjWn0hfl87jyD8BtlDLrHizQqITnI2Cm3va2Bs38wrzRix3C3JZvoj2l0rnenGF1d8YNYioz4QZRbZw9xX00uSNCCX00xvp6ZkzZB+swebU47HXcJTI0qYY+tgZk8L2Kpk5KvlTi/4Ly+LuHFZ4Hy/3Cj4IDduOx0eaTPLSP/kp6zGDDlff1GUxGNl+YbT2c+ZMuVYzbe2boUSsbJCRPvb7Pui1kWex/JECEXIqhGocgTvjOECe7ulnHKsD1GaD6xPlkxwU/KC+gL05i1F4wZSIzQnVQga2FsPhtDMlackqzvCncIPyIHsLGT6kSbrMVM4/7xjwA5JvvEcDPaC+zddZwz1cznkd/TM/IcYMzzfobBpCfWA1A6Ek1wjQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000020, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Simplify the code of mas_mab_cp(), and improve readability. No change in functionality. Signed-off-by: Peng Zhang --- lib/maple_tree.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index de43ff19da72..688b062728a2 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1914,32 +1914,18 @@ static inline void mas_mab_cp(struct ma_state *mas, unsigned char mas_start, void __rcu **slots; unsigned long *pivots, *gaps; int i = mas_start, j = mab_start; - unsigned char piv_end; node = mas_mn(mas); mt = mte_node_type(mas->node); pivots = ma_pivots(node, mt); - if (!i) { - b_node->pivot[j] = pivots[i++]; - if (unlikely(i > mas_end)) - goto complete; - j++; - } - piv_end = min(mas_end, mt_pivots[mt]); - for (; i < piv_end; i++, j++) { - b_node->pivot[j] = pivots[i]; - if (unlikely(!b_node->pivot[j])) + for (; i < min(mas_end, mt_pivots[mt]); i++, j++) { + if (unlikely(!pivots[i] && i) || + unlikely(mas->max == pivots[i])) break; - - if (unlikely(mas->max == b_node->pivot[j])) - goto complete; + b_node->pivot[j] = pivots[i]; } - - if (likely(i <= mas_end)) - b_node->pivot[j] = mas_safe_pivot(mas, pivots, i, mt); - -complete: + b_node->pivot[j] = mas_safe_pivot(mas, pivots, i, mt); b_node->b_end = ++j; j -= mab_start; slots = ma_slots(node, mt);