From patchwork Wed May 24 03:12:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13253234 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 5836EC7EE29 for ; Wed, 24 May 2023 03:13:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CA6A8280004; Tue, 23 May 2023 23:13:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C2F54280001; Tue, 23 May 2023 23:13:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A5B02280004; Tue, 23 May 2023 23:13:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 978AB280001 for ; Tue, 23 May 2023 23:13:20 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 58DF4140869 for ; Wed, 24 May 2023 03:13:20 +0000 (UTC) X-FDA: 80823677760.03.D777D4D Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf05.hostedemail.com (Postfix) with ESMTP id 854B6100002 for ; Wed, 24 May 2023 03:13:17 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=lvWQ23Bp; spf=pass (imf05.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684897997; 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=+8PHSao7q3toNyfgfjr7peVeEA2aTJ4gzpmYB1pZW+w=; b=fWSUbIcQqKwIrq9p69zY0Uwq9dvFD/hiOxeLQIJ3oRRrJSR3LfQCDfYUhRo1Rc7vwqNjpg uu6k1qgoQ/79JnSPi5ccgmeznGgYsvaeA0y0RKhsXAxIiKUPlLfYbNtyV3+jIHB4MhE2nR bCFz+wl8tDclZlpY9di3UA3a1Xeqsig= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684897997; a=rsa-sha256; cv=none; b=aczUqh8sK8TwAHZinq0piEAX1JR2AJJTFqbaKUpoz4pI1XZz7XCcTvHp0WbW5GRkCY04XB J3KkWI8IRoJZbeLmImX3nRl7knSFppfLcbNx2SZgQY3bZJ0buiaqTwE19+vdcjGNl1pmnA sIZ51bhWtd5UW/7pjJ+IcSQi8eXAh3k= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=lvWQ23Bp; spf=pass (imf05.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1ae3ed1b08eso4755165ad.0 for ; Tue, 23 May 2023 20:13:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684897996; x=1687489996; 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=+8PHSao7q3toNyfgfjr7peVeEA2aTJ4gzpmYB1pZW+w=; b=lvWQ23BpbzUGv8Zz9/yKEZdWIMbq0jYsYpCHZ56cKx0kJhaKWwF205CnjY3IkxCCJr iu3xlmzbS5NbILPOR4ghiN6amtNLE7rfOQxfT9kCTsZrrsCJzDh4sAs/ZmKS1YVHNBDV sQRAARUoLgmmXZFaKaL2+iGAblKqu8h4nUjiL0a/LccDoj0hZJPvCS5mDR4hdvex/u29 abdcRkd8015H8mVC8SwPJkU6PqpbrDecMAQ2ablZP0Mo3e/MNE1M7EHu0R3BYqQ3TyfM 6Px2inQsZ8JWLtKaWJZJE7A+4FIV92vW425mtC8QbsKsDRhq5FEi00jIUGXn7tYZyiB2 nglw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684897996; x=1687489996; 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=+8PHSao7q3toNyfgfjr7peVeEA2aTJ4gzpmYB1pZW+w=; b=CZgg8Ns/6zJoo7wB7NZa4iMbYnPcmy1oCZPvD4CLYHVUGT3jd5HTZ02BwubYqtst82 /ftRhLzLI9p4K+MhouGMfJihmRQS73gFOt8U/0yR+GlFAjVELwWyuj6no0xYuW+7X5VT xDQPGUMudBv5buuisF6CTcye341eX9WEfaUH+SLNzTTIaIuRsbvBw1ZdpvHZrv8Hh5v4 ED2tSCzABNn55IhC2cf2ze4mQ7RLtkWgmVnbHFPXWqGsDxIChobnC+WyjHcwDS9PDx2b F2vSriK2uHRNfHGJQUnvhW4//KBdzlMBYoVqHl02nIHdjQvw50mF2nC1bZ4r5cowk8Kj 0iuQ== X-Gm-Message-State: AC+VfDw413gn7k4Rj7+PnUwopicR7TIPbq/zNldXLAxDSkOM/z8isrXx YVupdTBTO4uTAv+oHD6GQyY1b5elpO3FOuiB8B8= X-Google-Smtp-Source: ACHHUZ7j0UxgU2ZOy6gHnTDqmqwnIXVHfKLzJA1Vobgw72Vp5WdQV0HuqrWnsJiyojh+PD4OhbkqaQ== X-Received: by 2002:a17:902:ecd0:b0:1a1:b3bb:cd5b with SMTP id a16-20020a170902ecd000b001a1b3bbcd5bmr16741760plh.62.1684897995955; Tue, 23 May 2023 20:13:15 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.13 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:15 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 01/10] maple_tree: Rework mtree_alloc_{range,rrange}() Date: Wed, 24 May 2023 11:12:38 +0800 Message-Id: <20230524031247.65949-2-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 854B6100002 X-Rspam-User: X-Stat-Signature: 7zfgeo5puox7z4yzdgahif9egf9i1gxk X-Rspamd-Server: rspam03 X-HE-Tag: 1684897997-42317 X-HE-Meta: U2FsdGVkX18YODSYTEUTlm+8gIl4fmm4CFrnlaGKz9XuRNjKA6sEqFGgisEb7dg0xfcUqXSsAyrwZ0gvOKKZxcCwjwyjfRvS0zU4o0k2gD5diaUERqWHnlmCB/thqBwouQvYEtc0SivJbPGW1s9y3WKCFRVadf8zwWTj4z5SpELFp/nQwkxfKMb02wWSvTrbFuNZNjhTzn2t4n8JERU7vCjsabVY9gGc8qyC+Gj/EJJmuPQvOxsCxREch4WpRTEChgVeAZUeUOrThHhAS799801wQGGWGHN1p/2LpX3k8nqrNQnz7nJshhRlxKOUPsTNA67wARJpVwjRU/UxLdKgXkqNtmFXMuhZOci5Sc56+tLsvfWBDB/5E6OAVrSJ0cfO3W00cnOCgKzZs4n/grGfyI/GEmPPG/Mr+1aYHpDJQ/PK1W/eo1wk8iW0GINIqdkk2YraK3ywC+izlFNBUkM312GPmswI19s61az+lFsVlvZP2DOgzGsLZFDuDv1YVDf4qOM2Spcf+ELIiX+YMZ4bjAA1W60Cjlqt5IokCnJWCxlqyYm+/YWfIS2IOhsZE/GO+I+QdouhZKfNEjgu+tD8V9pec63XPnCPobp+sm4Brm+Ek0lgg5UUBAzPR/reqoWKs3uvryCNdzOrfOJlwJnxg0pO7q8APaSQ6EavGFXaPCL16Q8ROd+ILoPye/ThPUyqwGazM/rdtE0Nock08e8FKjfsVNpUVJco8of0DCGBT/09rLpgst3FwV1F0CgIB/Ju46JglnrjcZZYGEJo9gQJHY0pqp0Y+2mtFr1r7B6Em8XaWoehyBK1jnw1HHmP/pjK31mqb3CqqWM3rWoQ8q4EHZJaeEDd7DySgwyV6BZdYs4hCJktp1wihu1jBSoBBSMQKbQiC17IiyAeN7/xMxkHCTg/aP5DSjsPRrD2GRnKZ+MTMmF/RiH4RgGkxb/qeQ37UTqXqPQnJWJjJ1rKDbr PiEtOXff iDHt7UMdUvWXYDPSbAH9QKTa6yGEH1SiaJAOvr+Da0LycwiQmFwa0RBaozN6+8TPVoim5yIIUKeSfJHUCYYOy9j6y9oJgTInASOyGz+00Rt1dm0ehOJPlYd/KIW+Oy1rinYR1+Rq/Ex0reaFy7r+zckpuPURn4h/a/uv74wKHQ9N+ogJMxfctxzsPzU6YFjr1wZDc2zq4/LZpd9qORqJq+hUcirhWiPtqEQHDhapzpTKaRzAeAv2XTqvnOHMT70iPAFduh6YE0B0Hr/NUmW/Vxqwjvax8W+RIjybr+ithsDcgx5VyCuvgj8HLSoWRI2f9/z4mSoANM3jWm7tHVJ+djMaNeETJEjMRglOynCOG+DsDyBXLkP7g4h5u3DvgYdpSyLjmymDdUEvD6NNBh8OywZl7a6UHbr/8MzIeDaV5XJdTpM7v1tCtPthwakaJIGPYjz286zIXqTf1ULS7JXT3iK57hGLzUv6bmNgK 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: Use mas_empty_area{_rev}() to refactor mtree_alloc_{range,rrange}() Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 57 +++++++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 4eb220008f72..96d102d60b4e 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -6493,31 +6493,33 @@ int mtree_alloc_range(struct maple_tree *mt, unsigned long *startp, { int ret = 0; - MA_STATE(mas, mt, min, min); + MA_STATE(mas, mt, 0, 0); if (!mt_is_alloc(mt)) return -EINVAL; if (WARN_ON_ONCE(mt_is_reserved(entry))) return -EINVAL; - if (min > max) - return -EINVAL; - - if (max < size) - return -EINVAL; - - if (!size) - return -EINVAL; - mtree_lock(mt); retry: - mas.offset = 0; - mas.index = min; - mas.last = max - size + 1; - ret = mas_alloc(&mas, entry, size, startp); + ret = mas_empty_area(&mas, min, max, size); + if (ret) + goto unlock; + + mas_insert(&mas, entry); + /* + * mas_nomem() may release the lock, causing the allocated area + * to be unavailable, so try to allocate a free area again. + */ if (mas_nomem(&mas, gfp)) goto retry; + if (mas_is_err(&mas)) + ret = xa_err(mas.node); + else + *startp = mas.index; + +unlock: mtree_unlock(mt); return ret; } @@ -6529,28 +6531,33 @@ int mtree_alloc_rrange(struct maple_tree *mt, unsigned long *startp, { int ret = 0; - MA_STATE(mas, mt, min, max - size + 1); + MA_STATE(mas, mt, 0, 0); if (!mt_is_alloc(mt)) return -EINVAL; if (WARN_ON_ONCE(mt_is_reserved(entry))) return -EINVAL; - if (min > max) - return -EINVAL; - - if (max < size - 1) - return -EINVAL; - - if (!size) - return -EINVAL; - mtree_lock(mt); retry: - ret = mas_rev_alloc(&mas, min, max, entry, size, startp); + ret = mas_empty_area_rev(&mas, min, max, size); + if (ret) + goto unlock; + + mas_insert(&mas, entry); + /* + * mas_nomem() may release the lock, causing the allocated area + * to be unavailable, so try to allocate a free area again. + */ if (mas_nomem(&mas, gfp)) goto retry; + if (mas_is_err(&mas)) + ret = xa_err(mas.node); + else + *startp = mas.index; + +unlock: mtree_unlock(mt); return ret; } From patchwork Wed May 24 03:12:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13253235 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 9CA26C7EE2D for ; Wed, 24 May 2023 03:13:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3A62B280005; Tue, 23 May 2023 23:13:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 32F84280001; Tue, 23 May 2023 23:13:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 15D93280005; Tue, 23 May 2023 23:13:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id F3B78280001 for ; Tue, 23 May 2023 23:13:21 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D16801A01AC for ; Wed, 24 May 2023 03:13:21 +0000 (UTC) X-FDA: 80823677802.22.297C626 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by imf01.hostedemail.com (Postfix) with ESMTP id 0AE3B40013 for ; Wed, 24 May 2023 03:13:19 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=R9RNnIEN; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf01.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.173 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=1684898000; 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=ckt2ag3ZoF3mgkuxNjyDxYjsZDgVbwKu3RW+Fb2CiD0=; b=BfzEnbmpouL868Wn1vjhZR+45RXM0Jy3v2aP7nu5r6803nTd6IS6PGy8eMgzrA2TGazvq6 DvZ/WlcqOzhqdwj59yBO2jfjhGxI3pSaG0/MhfgBeAADrTwn/rCffD8jA5GqykNEMEoSD0 AQlpm+wg8mDVYCuLKjiB0Hx8NO2Wqx0= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=R9RNnIEN; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf01.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684898000; a=rsa-sha256; cv=none; b=8b5zIVZqXOahbXAuWQsckpP3vntHtQTVeSzB+rz9PWLo+RbfAYZfDs2iyLwzdIWxaT+9E+ /pgBd8CV3C5+pI31os6QQyxL2JI7XTumadzydn+kA/WcYYwHMQ6Nqe5sYEqaKSaMuv1r0z hfbtnHv7Csc/mIRUPC5Zr93zzU35x4U= Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-1ae875bf125so3278845ad.1 for ; Tue, 23 May 2023 20:13:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684897999; x=1687489999; 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=ckt2ag3ZoF3mgkuxNjyDxYjsZDgVbwKu3RW+Fb2CiD0=; b=R9RNnIENcm151VyqYa/nqwjf1BhewhDeVjq4hnYK2ZCJ9zYTYaDCmfildSu8xlJ29P 87FyT/a7va4k24YfyPPXmQjaWvuZRn47kTxvSRFCr6VnmSc2MtDTqImDn1eMPL8CNoHy cA3eyqxHaCcIxQLKKxtJDN1TLGOrfTooLKwS/4QF73ztb6i7qhrfqyAjaFvdSjm0B1rN UsNuaVxpBWAvHSMVQ1mHnSLHrEYAcgRFS7FQXRgDKwceWjRlB5ov0JaaksFOfmy1TlyX jzd94++aTxMoXfMtaax3HspHd/jL4wyu16QSUWtc3Hs5i0VfMgI3savoY1uOx4KEgXYy uRAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684897999; x=1687489999; 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=ckt2ag3ZoF3mgkuxNjyDxYjsZDgVbwKu3RW+Fb2CiD0=; b=mBx59Kvx1Y5js0tTh+iJSeqvwSpr4KHdbcZBmVit3Jk2qY7Kr2NpiSuwdvE6HUwf7L g/2P+FzZtuV8ECFCQO+XshVfu+nTiipciOzE9gbzS2Dmeuafy2qsyH7yQxe/qIIwJq/d L9FWLKl5mBjhPRhSKXjMwzH+OBNysbhSX8XJspB+3GCFUn6X5KTWwohWrPMtHWEmwl5d +ZXhdz/+Vvr9jQhD6xor1fzB+pddqg1RX407vkR6A2VInVehb5JNCSUdk4o/twOL964N K152K66y++UXi6hLzULHxzjJQunilVUL2dwpnYavncnIPVFsdVBnn6jCVz73sOB7kOpN ix4A== X-Gm-Message-State: AC+VfDz92bxJuYHI3ennk/b+l15c/jtQnvgOrvoWnlHOzuydHZgiWC0V FjHBnLJuzkO6OC1WKuQTR7+2nBi1JSGNSonTbp8= X-Google-Smtp-Source: ACHHUZ4xqpvx+J6/8q6bDUGXkrIfdgSfVg+6S8HYltONtfrDCgiX7zHvArLeqYXpbVbXCwHuRTRBng== X-Received: by 2002:a17:902:bf06:b0:1ab:1bdd:b307 with SMTP id bi6-20020a170902bf0600b001ab1bddb307mr13560839plb.51.1684897998911; Tue, 23 May 2023 20:13:18 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:18 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 02/10] maple_tree: Drop mas_{rev_}alloc() and mas_fill_gap() Date: Wed, 24 May 2023 11:12:39 +0800 Message-Id: <20230524031247.65949-3-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: 358cemmqbi67r67decmjzb1s74suf9pq X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 0AE3B40013 X-HE-Tag: 1684897999-325781 X-HE-Meta: U2FsdGVkX1+HM3/PuRxdo6zjFVyndNdw/8+t+coWDZfF+z1+TVSUdbFXEcH3DqyudtDwxQmkXKLc+M4+ZjoslN+47CXBM060ynDZH2oWlUCN/HY/Lc95cDvlY3QOYv+su+dPUHYlG5a4JMIGNYq7HMLZ7/+WMGYsR0w0OY1lsrWAQ7R9mF14vjopdz4lql6Tx0KzoYHxXkyiXWe3GP4M4Z0jM/McCkpYxR4fxzs7ixiFyRAqfa1gpAwZosNELA+QM047FwAFmBipTjinl9B3lRhyMW6HmYmrReactIMpNly7qXXJN79DH+E1SyHX6inMkx4pWFYLtmWsA3KA70dH/Zo1Z0f5hYafmEm29D/wObmbJC/cJ5bj/d0r7XC6QRZ/Cw/pRKXazfl8B75/4giyb4DcI2p7dPRLv5W9FIALiy9eUCx1bS1FyogGv75EVT9AeA6YhmpRo5ffktlCg+ip/1cmx91KUSqimO8LUU+Yc2iipVS1AwX/IEowua/mj8/RhONMqMcuqZ/wH70x8no/DbVcuOLL0JRp4Islqc5UOK8oBPsEKYyW0uZB9rCYcvjAiOLeiwa3pT6ZG7Iv0n2DDrt6VKwc+P+4IOLPq9fxqOlVRc5WAxzALZHbzOnFFAJzxqHeCf/sxPguQ+qGWzfhJKG3jn/sIa2GEoHeZB5g3MZzGWirPzGihzd7oTfvuDsU71azmMhjbbYLHf8aTajmZAiFmfSUGbx4HouoSFoNFxTacpHHTDVU3mLChwALHLhKuqObQz+TAmaTaaPtYTveJGY+SxqhKIgTctsguxEAfv+lV3oUAKUP9pm/klfpNntKP90irY0qoQJXwI4euypkchH9bHdKVwATWOL6CR9ve+6XcY0IyGjb10Zzq1NFWzT4DE6NDgOz4/iPb+fb3JM6/Wc2jqOH8OkvFeG0Pw/UvClDIjc9R1OQX0wmkxa7vi5kB9A/xFLgrovLnuuVXv7 X4vM/l8c 9mP1hW2eLwZJDIvUe7YG1NmohK+zqNq2uB+nZU0NNnkqjEA5U0/Yj5zH8EA2qPiM3nAZttHvxjkTKOrrCCEpgK0hwwhbcwsjbCNmT0cupU1utmP1F0VotUSYpDNxeWiPKVeckUVm1drLdnYiPQHMPctsKD1e5hcPNU5ae/IIOB7LIXx95aDT4rQoj8NS7WvS1K2M++apuFoZ2ifG6r8g/TYrzlnbCyajDTO62wwVqM1PmTws6ofXU52QG/0HbQYk516ah4xFAgRv/ULn6RELGvHDkJJGe3795n7PNg5F5Xyy5lYcXyUBMc3TfPqkO4NCnThqbp+KfisA8+eqYy0w3ZybstOsuSEvpImwtovpmYI5YrtAbzIdhf1hsMvhhZEWgQ00tjEQdxHjZeBPdaVbmcxV6o8XhtYmQBZQeXbUy2LBHKLc7JuemsPtK8eO0pjRZNJW79n9iLKKSHSLuvTWHAEXKiUC4KOCePaGg X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: mas_{rev_}alloc() and mas_fill_gap() are no longer used, delete them. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 108 ----------------------------------------------- 1 file changed, 108 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 96d102d60b4e..263bd0ccc31b 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5120,46 +5120,6 @@ static inline void mas_awalk(struct ma_state *mas, unsigned long size) } } -/* - * mas_fill_gap() - Fill a located gap with @entry. - * @mas: The maple state - * @entry: The value to store - * @slot: The offset into the node to store the @entry - * @size: The size of the entry - * @index: The start location - */ -static inline void mas_fill_gap(struct ma_state *mas, void *entry, - unsigned char slot, unsigned long size, unsigned long *index) -{ - MA_WR_STATE(wr_mas, mas, entry); - unsigned char pslot = mte_parent_slot(mas->node); - struct maple_enode *mn = mas->node; - unsigned long *pivots; - enum maple_type ptype; - /* - * mas->index is the start address for the search - * which may no longer be needed. - * mas->last is the end address for the search - */ - - *index = mas->index; - mas->last = mas->index + size - 1; - - /* - * It is possible that using mas->max and mas->min to correctly - * calculate the index and last will cause an issue in the gap - * calculation, so fix the ma_state here - */ - mas_ascend(mas); - ptype = mte_node_type(mas->node); - pivots = ma_pivots(mas_mn(mas), ptype); - mas->max = mas_safe_pivot(mas, pivots, pslot, ptype); - mas->min = mas_safe_min(mas, pivots, pslot); - mas->node = mn; - mas->offset = slot; - mas_wr_store_entry(&wr_mas); -} - /* * mas_sparse_area() - Internal function. Return upper or lower limit when * searching for a gap in an empty tree. @@ -5307,74 +5267,6 @@ int mas_empty_area_rev(struct ma_state *mas, unsigned long min, } EXPORT_SYMBOL_GPL(mas_empty_area_rev); -static inline int mas_alloc(struct ma_state *mas, void *entry, - unsigned long size, unsigned long *index) -{ - unsigned long min; - - mas_start(mas); - if (mas_is_none(mas) || mas_is_ptr(mas)) { - mas_root_expand(mas, entry); - if (mas_is_err(mas)) - return xa_err(mas->node); - - if (!mas->index) - return mas_pivot(mas, 0); - return mas_pivot(mas, 1); - } - - /* Must be walking a tree. */ - mas_awalk(mas, size); - if (mas_is_err(mas)) - return xa_err(mas->node); - - if (mas->offset == MAPLE_NODE_SLOTS) - goto no_gap; - - /* - * At this point, mas->node points to the right node and we have an - * offset that has a sufficient gap. - */ - min = mas->min; - if (mas->offset) - min = mas_pivot(mas, mas->offset - 1) + 1; - - if (mas_is_err(mas)) - return xa_err(mas->node); - - if (mas->index < min) - mas->index = min; - - mas_fill_gap(mas, entry, mas->offset, size, index); - return 0; - -no_gap: - return -EBUSY; -} - -static inline int mas_rev_alloc(struct ma_state *mas, unsigned long min, - unsigned long max, void *entry, - unsigned long size, unsigned long *index) -{ - int ret = 0; - - ret = mas_empty_area_rev(mas, min, max, size); - if (ret) - return ret; - - if (mas_is_err(mas)) - return xa_err(mas->node); - - if (mas->offset == MAPLE_NODE_SLOTS) - goto no_gap; - - mas_fill_gap(mas, entry, mas->offset, size, index); - return 0; - -no_gap: - return -EBUSY; -} - /* * mte_dead_leaves() - Mark all leaves of a node as dead. * @mas: The maple state From patchwork Wed May 24 03:12:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13253236 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 B6E04C7EE2D for ; Wed, 24 May 2023 03:13:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DDF7280006; Tue, 23 May 2023 23:13:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4671C280001; Tue, 23 May 2023 23:13:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2E21E280006; Tue, 23 May 2023 23:13:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 14459280001 for ; Tue, 23 May 2023 23:13:25 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C3F22160557 for ; Wed, 24 May 2023 03:13:24 +0000 (UTC) X-FDA: 80823677928.12.83BCD83 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf25.hostedemail.com (Postfix) with ESMTP id EE311A000D for ; Wed, 24 May 2023 03:13:22 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="i5/jXr97"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf25.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.178 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=1684898003; 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=EQslJb4TTQ6f3QnMShcvH80xJECcy+dWiloGaRtjezU=; b=C9atDGZSAg1ozR9/Sovdhiv0PA0xY+8voyOTHc1L9CifJOV+sp+a0tWm+p5KF4/FkXWoEj AjfI2ADSj7rjMhOzN8nlPKLZlDfq+hV8b2fYjrJr5VQmNK3Z7ZqmEsj0HE1zZASDcJ5Yob E4eDLNRz0GB2BVkgMrKpGGwS9eaXweQ= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="i5/jXr97"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf25.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684898003; a=rsa-sha256; cv=none; b=LX95q+vTlVmpmZBfaCxDTrsmOvuGZdB3uoDBVHkLyWFgsh3xPFCeFcQgWPPc4wUtextbjA +VBCuC5S6zMsSi3uXwMdjm3NyRWJMYkQ/tbvPK+fcVqgsLtDqrpsu5LCz6e639a/UuWmbE 6KbgpgJV2IYGa7GzggOrLtlGfC3ZLrU= Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-1ae3f6e5d70so4043995ad.1 for ; Tue, 23 May 2023 20:13:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684898001; x=1687490001; 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=EQslJb4TTQ6f3QnMShcvH80xJECcy+dWiloGaRtjezU=; b=i5/jXr97UIsdHU5etmogFyDj7C2w+qodiIstyuPmozbpYtvlWbpyrBC35aIkuQPKWz T48K+vdaW1bxGnZvnRg3yusdz1FeUyYztH5umoQf7+8NEMw4B70AsUa9lwjGJYLS1KMr 5Ak8I4VJpurMBrvbJKEHCdlTz2Ij4qCE92GL/Kr/B+XuVl/EtInaS5I7YIVMjD/yRqwM 26dxR3Xnoyt5A9f+asTG065uQc/ezFzj/1eGgwED/64LZk6iQWjVzpyw/nwBX0xtIa8h rnd7xldyaw6azZ//jr318c0sorc90X5wtNPgLeeRyjjuIuzWAOFrLzqSi4N2GmqsSyxO wRkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684898001; x=1687490001; 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=EQslJb4TTQ6f3QnMShcvH80xJECcy+dWiloGaRtjezU=; b=Vy/KNLekRzHF+eHzxyRgQ63cYZXvIe5QsZ9+I52AXbT8O8G287O/wIur2W/xc4QZ7J gyR37DlPRjc0Of3xxtjDw96faj5/kUsUKvPat9UmveFc0Y2Zr1d/J+6mQbc6EBOPvM3f Vf6Ili0ECGnir08QJ3ba+HlU413lwMo6sCVw2R4scOzcBjZ8FBEMlrww6Rb0u9NjiA+z xchk5gWusC17jQxFM65zyejfX/Ns7n7vgWTvxIU/49tJAyVe+ZTSndBlWyoCrUbL3BFf Xou46whn/35pXJ7OXMotahWZ4HEYQNeDcEbu5JZpwTnJbbGDqiYO8jU3ZJv0s1NTv3kT hFQA== X-Gm-Message-State: AC+VfDwTxPG1Pt+cd3OrHme8lalr4EdG9kwNFAT/yig1ejWNiiZkd/3a 1AntfaKnxc/5wV3qhXuecszm/A== X-Google-Smtp-Source: ACHHUZ5qQNihL3luGXrPNDdY/XEvLixGhNnqd1Xi3kMKq3IJz6WAsLBV2qTKgrCJTB/k05AHToVxbg== X-Received: by 2002:a17:903:11c9:b0:1ac:750e:33d5 with SMTP id q9-20020a17090311c900b001ac750e33d5mr21405280plh.15.1684898001677; Tue, 23 May 2023 20:13:21 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.19 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:21 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 03/10] maple_tree: Fix the arguments to __must_hold() Date: Wed, 24 May 2023 11:12:40 +0800 Message-Id: <20230524031247.65949-4-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: EE311A000D X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: bd3w4anzhrc63tac9dyqa5cka6wrebkq X-HE-Tag: 1684898002-86587 X-HE-Meta: U2FsdGVkX18hCOl+pYmFjIukdsKWPeYGxhq7glnbU7E6LMkaKgW6eG+dUhzR0okfD3VE6VkhJocVcyj6z/r8pJSURroLWp/EOibJU+BqxAipwQ4oRe6K1NWC5jrmYioIHvAMKO0KuhymEfHKiYn1369lh1RvYAWFpv27R0JpNGpSqPq09kQRcMWmC43tP7SCIA9XyNlTFNYDoGMH0stxfC70i+uVEiuZrapKDraWyEbhdreXXRP4M4Dbw42+XmEzhocPJBXIsRlBKYzAMJUUxXiIUkNX3My/f6r+gpTKo/lM0aCs4dAlh2GCXIQ55UoGn6f0pmcAknPIB8Bl2l7sotqELPjUOldDTOKm7bEd1H9MZJa+aV7XwZAZTeT+zn3Qw5o6V9tFqnEkMmO2tSUpYjdUdiwiCWXhuvlXXeNPrFQaJhZulEy0TarmNX17NnIsi93UpOySK6Seuu7ywZ+uhi2oa8ftLyxg+12HIzShRZIb/aYSu+BZpQK0vBGQfeuln4T4XyI2rGeNNcIpEZkbFfhyh8HE4zwPwEmsmIxUmEQ6sP2nkhtE4KaUBc+1rrj52iI+kBj7wAV7VM5f9O3PexT5nPReQV8mCKW/kD3kRzc8vp1wYswvXeycCuGXiuUWfE/T9idXVHVI4CEMTAV2B982yBqks3UYqF0Y60cbpBYnjg6pXwoXvJ0oUa0e3bCFNafs8mgeAvu222QmChmYXmbZTI9ipNnzdK3gEKZ3ten1hoYqaePmPMr+C+z+LWoUVO7vk1+3L93O2EREB7ZoITfYFPH9jnq4eZj0WoXznsUipx9fCoj0nk0WBo67nPGWURPj57fYzeNoJtOhwC690wgClVt0ZwGu9TCu1DfNK2ktR34tnREpFEWVo/hQ4w1Uu3DHMSYhpXJMeA7pl7h6IbJb0P4G2/0ONGms5yM21cOUDSYCPz7wJv0S6Aju7RAaNi2y3Swla+9tsQfi528 NPrcPxO1 Ta5cfWrfbVdVRDCnxvLYB8CIGDOeSrZ0kYAIYqUSAc8mv+vz1mdMROEMEmO7loI8Dfa0hbMxOAnOkmst/+Pi6ghPwp9XtIYAK3DCZsyM1BU0YEqCGKpqZTX5DOp1eHjlojud2l++6u4Kh8GsPK4CYu6kdomzurgM++VipXV1itrOptgjPjoG/8bu3KIfnBkyJuiVJVnySZsxh+IsGN/ItGOz4WTOyyWZcPN+p9G/CN51672nqTK3wt2VtJHK7SJ7z9poCMQFxgPk2iS1PTtgaX3LefvZ+5EMwohN6zh+j7bNFQ2QUp1Jvt4OsidcrJTmuCZhsmkYuYdUZZfC/OCWXck6BfYJtGQ1nx5fhAOq3z74tBwLhLp+6IPEMMRZx/6aeoAmvVyp9wZHlX7L6DZb+6/6uZEG6iFBrwWpEVPbiv90yoQIZLYvIuCg2OVYR5HzhclprMrL0/l9SelrSFqUvRIDFCZWiCgr+pYoT 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: Fix the arguments to __must_hold() to make sparse work. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 263bd0ccc31b..3fe6a6685384 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1752,7 +1752,7 @@ static inline void mas_adopt_children(struct ma_state *mas, * leave the node (true) and handle the adoption and free elsewhere. */ static inline void mas_replace(struct ma_state *mas, bool advanced) - __must_hold(mas->tree->lock) + __must_hold(mas->tree->ma_lock) { struct maple_node *mn = mas_mn(mas); struct maple_enode *old_enode; @@ -1792,7 +1792,7 @@ static inline void mas_replace(struct ma_state *mas, bool advanced) * @child: the maple state to store the child. */ static inline bool mas_new_child(struct ma_state *mas, struct ma_state *child) - __must_hold(mas->tree->lock) + __must_hold(mas->tree->ma_lock) { enum maple_type mt; unsigned char offset; @@ -6204,7 +6204,7 @@ EXPORT_SYMBOL_GPL(mas_erase); * Return: true on allocation, false otherwise. */ bool mas_nomem(struct ma_state *mas, gfp_t gfp) - __must_hold(mas->tree->lock) + __must_hold(mas->tree->ma_lock) { if (likely(mas->node != MA_ERROR(-ENOMEM))) { mas_destroy(mas); From patchwork Wed May 24 03:12:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13253237 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 5A913C7EE29 for ; Wed, 24 May 2023 03:13:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EEFA6280007; Tue, 23 May 2023 23:13:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E7901280001; Tue, 23 May 2023 23:13:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CF381280007; Tue, 23 May 2023 23:13:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id BF7AC280001 for ; Tue, 23 May 2023 23:13:28 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 89E84C05AF for ; Wed, 24 May 2023 03:13:28 +0000 (UTC) X-FDA: 80823678096.04.120270E Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by imf10.hostedemail.com (Postfix) with ESMTP id AEDF7C0014 for ; Wed, 24 May 2023 03:13:25 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="MAXMrwd/"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf10.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.171 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=1684898005; 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=E5ruzeEGnj5CNT1/L3jtI3wslKiej4m4uvmLFSF+fv0=; b=wmGQbryOh7ZW0CCHYPwbnNfqKZy1ZWyt7FrlxsmTHfeOKpzrgod/jj9RovkcguZb+m2lUh jH4eyFERfZOjSkvqifVh47aAdzFV/zlYYK7TeddjXWtGaXFE5A+I5IDPTiQwxSg4tneTvc iVQxQnEFChEL0pRRbr8xebPtyTNRl9M= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="MAXMrwd/"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf10.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684898005; a=rsa-sha256; cv=none; b=rozfM5R6Az7WhmEOGocGPIH0dzKYYJUO96eGmQ2NmrDbT5tVaimJz3HTl3YsEUOBY78XYG N9O/bBiej6cGjyfAljW568X/OlC5pG2MPyPN0oWWS6hkLlqKHo2u9qDMBwlRmATCJlw//V Xj2A3Wc/ijh3cGyHTW7U65aOPDm8hyI= Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1ae851f2a7dso38794585ad.0 for ; Tue, 23 May 2023 20:13:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684898004; x=1687490004; 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=E5ruzeEGnj5CNT1/L3jtI3wslKiej4m4uvmLFSF+fv0=; b=MAXMrwd/Xszur0x1fVAw7betXZi6Nv6iEeLRVE5rWFKAKqojhanpmq36+yY3jJQzsO M9EaO7RCl07OPXG4T0XWZ9VSsKYxu0A23zt5ExwuJrHR4zwdz4j0AmGa1VSOUMO6wVYw qbhvNZyU6dI9n7coOrUlXhim1BD85Jo0/sUOOUpXURBnyIkhz77RCwKkEwgBBXh8yi4h lupqDHDCc8iRhYj0YQ6830133yOLFDVOMIx7nBBQEQIABrD38VhOK6s7jpcSWBsQBTYP IV1HaE09ZjaHvHuTj90fgQdS2QStLY/pP/3jhoEO7eVxczLOyNTW1OWsR4ZkoGp1yHNJ r9VQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684898004; x=1687490004; 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=E5ruzeEGnj5CNT1/L3jtI3wslKiej4m4uvmLFSF+fv0=; b=N2+jURBiE1g2wMkstY4OsJ9YwolhOcn1J+AgXA82DQm9S2s3YRoUxQMKZ68I6rVQju mo+6RRa3Z5Ltlr/0gnQAmHG1DdtIfDKXz/DImSyGNp1QbDpB5a+4Z4WxbuBYtgk75W+E e+smA8jI/IucMKT+efzQhnxC9aB0+ciL8eJDN3EHCd0SkKuRWCpuEjj155wOy+2vnN2N y+l47n05QfuzAQyXuQQb96j0SjayPNFjwDQqL3iJ9yqF98sDKuqWfSJGVZxpLXEz6OYw 7GVq4b0WlD/LADX9xgaNBmp2nMT/og+ETNZN+VdBvER631sGbume7KVvhN223tcsL7lT oayQ== X-Gm-Message-State: AC+VfDyeAxIzRk8dFg8biVBe+8q/6zn23crxcPQ7SpyBRUkDjiTXfwjj ZCbI7m7A7jumC4UIrmLINsgq3Q== X-Google-Smtp-Source: ACHHUZ6DAmE3MeGOc5YNkDegpteBBglHsp+EtBuDqz75GpGc17B78j9ExHKLk63janlv3Z40tdQw2w== X-Received: by 2002:a17:903:8c4:b0:1ac:b03c:a58e with SMTP id lk4-20020a17090308c400b001acb03ca58emr20956735plb.25.1684898004536; Tue, 23 May 2023 20:13:24 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.22 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:24 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 04/10] maple_tree: Simplify mas_is_span_wr() Date: Wed, 24 May 2023 11:12:41 +0800 Message-Id: <20230524031247.65949-5-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: AEDF7C0014 X-Stat-Signature: ipq53dxndbsa4fz5m7gsf1az84iqssgi X-Rspam-User: X-HE-Tag: 1684898005-210384 X-HE-Meta: U2FsdGVkX185EvTRgIT7DlLBFg2wGxf5x6nGyZTzHIgxxcRAgvzfWZzpTl0bgnisLSt4xsyLC5W99QLFIvkV7GWW0jYB1NVAbrjdB1hfKCwHVmwgnoQ7v6PyJOwH4kaVq4+2WNSStZRIpbmBBHCzueUdtUdrA2/9q0c3Vw5T581x8g7dm4GrEK/4DK4Z3Ni5DV4Hr+g568EGFEl6hb3sTTLmRFZuLer8FNADGQZxgk5hVj2LZzGWVxv9Cyf/+6jPXzwz8RJzSS/mKFnXFZr1493+RKYwStleAfX/eURYMdZm4huaAUn9KRSU4YTg1UcrLDIZHAC06WjwW9CI/jBsDbyCy+caQakD7cy3mOhxi62bXgbDNDdF8WdZMAgZRQb3YtmZ6o5/K0VVE5qVm5TRLEmGv/vr2Iymy+QL0+zcjZaZzIbmHM3ocLWuBo/Ppdd9PVPPc3ED7sogbBGt3VBVkihl1wK89HJQotBfzry6ltoudDrh0RL4n2IRYvmk1pHXbUQ7Ek3SabfeSNvQljslf0YGACPCdu8P4ZAjN2ZsjoSEYuNoFmS4uRG0felS6Mk3jQVDM2yVMNOJ19h/c1eqGnk1jtVXgPPorGeOp4K2Ci3CEpTy1j4IiVOdhJz9KnCBhBC94hR3GWFGBMxPWJGLFdDj5buVQrEvWtH3VJC/+REDillvzSmZoGn+sXrXI/cEMj0Bjfaej+2fVxfztw7740vXBWnvqjrcn03YU8kZv0LLRmDzwLBqtZLUA9ZBxyX8WFgJW2rFo6QuR8lyYNV6/nuP+BqrUrRGS7khxeaxB9hicxu8xdpvA9iUgKzskLc4BaC74qQ3SVHq/qiqyPTUc+V37mN2Kknz/50aA3Sslj2heaRUEes4VzD6Yb9zhWZtROlfGZ/1yCxtvIb9Zf7jTfVDValiuZgmVbJ3B0dhlLYsh1SCJLT1Yl4LG02GO/I7gDrwmBOLdYDINgBDViF JDF4kjMt fBQC7e8XIdK/MfrAe6h06/TMGl2m9N0PIFqdzqs6fmX604c/okOZkrXAJoWjjxhHhQF8qgt57m1+0hMSg48bYd6sbp4NZudxPaBqGY751libBASVuWqdmj5mhtBs9/7z4EPPi7Ytu97BfnlWmmUQlj8YM5EChr9ylaKigMZrf/e++CKP3144spKmuw/hTKZJclNfFwKIQQO8rOAyrt4EaYSAw+szbjrq72JQmu9U7JEqqn56cRQZtOkQa8gsnPS8xzNsbEmG9TxMlPJt8j+4d2Vwq3JFBOuxEveYV9VBMnaQGTWhlv6UhHjc+jVYLwaTsqoM1wiZlFz1Jcl5Ody5/cFxL2HwmHltCkVLC+M5Em0E2zVC6/gBGxQyCG8YnrP0/dt42S2OuUdVVeGEvQrZvSBAGbKkQvkRZuTlN7wtUXKmXIEzR6Qm8BRMv1qS8xT4X/PTcAzT1Eo3gU+nttswyl0mq8/w/VvbBFL+tHVIUM1PfSxWWMjDuvvun7LOgYtC2vXtF X-Bogosity: Ham, tests=bogofilter, spamicity=0.000009, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Make the code for detecting spanning writes more concise. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 3fe6a6685384..41a105e76e22 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3728,43 +3728,31 @@ static inline void mas_store_root(struct ma_state *mas, void *entry) */ static bool mas_is_span_wr(struct ma_wr_state *wr_mas) { - unsigned long max; + unsigned long max = wr_mas->r_max; unsigned long last = wr_mas->mas->last; - unsigned long piv = wr_mas->r_max; enum maple_type type = wr_mas->type; void *entry = wr_mas->entry; - /* Contained in this pivot */ - if (piv > last) + /* Contained in this pivot, fast path */ + if (last < max) return false; - max = wr_mas->mas->max; - if (unlikely(ma_is_leaf(type))) { - /* Fits in the node, but may span slots. */ + if (ma_is_leaf(type)) { + max = wr_mas->mas->max; if (last < max) return false; + } - /* Writes to the end of the node but not null. */ - if ((last == max) && entry) - return false; - + if (last == max) { /* - * Writing ULONG_MAX is not a spanning write regardless of the - * value being written as long as the range fits in the node. + * The last entry of leaf node cannot be NULL unless it is the + * rightmost node (writing ULONG_MAX), otherwise it spans slots. */ - if ((last == ULONG_MAX) && (last == max)) - return false; - } else if (piv == last) { - if (entry) - return false; - - /* Detect spanning store wr walk */ - if (last == ULONG_MAX) + if (entry || last == ULONG_MAX) return false; } - trace_ma_write(__func__, wr_mas->mas, piv, entry); - + trace_ma_write(__func__, wr_mas->mas, wr_mas->r_max, entry); return true; } From patchwork Wed May 24 03:12:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13253238 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 46B81C7EE29 for ; Wed, 24 May 2023 03:13:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D913E280008; Tue, 23 May 2023 23:13:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D1A65280001; Tue, 23 May 2023 23:13:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B93D7280008; Tue, 23 May 2023 23:13:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A70D9280001 for ; Tue, 23 May 2023 23:13:31 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 1B4B4140888 for ; Wed, 24 May 2023 03:13:31 +0000 (UTC) X-FDA: 80823678222.26.8240491 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf04.hostedemail.com (Postfix) with ESMTP id 43CD440010 for ; Wed, 24 May 2023 03:13:28 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=kvoX8rfQ; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf04.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.181 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=1684898008; 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=ho+8AxwCMUO1UZDPlZ+RxzprWSmT0wiRibYRYtQid4k=; b=GEUjzY45JsCFG03+s4pw7uz6AuwRyMBgE1qCP6cX3Uw7AHE6I1yfbZhJ8Hlekb+Un3nn34 q5XJbDDujU9qsFJAydcS+fJVfvZhKanU12J42zw2pPSTiZ7xE8hZrwZJP0eAlD0KPGisxb sC+Pp/dktrlWwBLS1QGJnYa0EZbyjRg= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=kvoX8rfQ; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf04.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684898008; a=rsa-sha256; cv=none; b=cfG2IytDEhQhLOTXFrfifsRqLTPMo4itvKgf1cWjDzHMO9fQFkIpBjTa0qCsaoQTqJTIOe 8986Yea9deT2XBzcn/xi94nWY+DqKr3Nuka72A8yI7XfcXJKMhsocPPl8pneKanydRZS1/ ViupRO9NNmTxnHG+e7PfdX4X1sgLOjE= Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1ae615d5018so3668745ad.1 for ; Tue, 23 May 2023 20:13:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684898007; x=1687490007; 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=ho+8AxwCMUO1UZDPlZ+RxzprWSmT0wiRibYRYtQid4k=; b=kvoX8rfQyN2AB0Gr43+8rZLVHFEmrrDTqutZAx5YmjW/kGuQGJ0PYvltnv5oe+C2Dz 5qJCza00ybILWo0O75SnzamE/deaG5NaRNh5OG1IFwsc87i9gFW9INu037TjJF1yAJNr iKqeDs5Fp+AscJaCq4eKX+NBdfovr1pTO1C+zYi0UA+vOAW7Uvs4emRsWyygLkp27mAF Fbpqj8PxnSGvAO2m8iSuM2zxRZIZL0nARH7uV4WpbZ5mrUUSxTHDwmBAevUUz6oEWcPc IrnFnja7kLA1sl5ZZz0CUVqI6joBnhibcFuTnaVKHI+e0tnVt9HoS5U4VDbwvQOLyBDy AVAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684898007; x=1687490007; 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=ho+8AxwCMUO1UZDPlZ+RxzprWSmT0wiRibYRYtQid4k=; b=DYh1M4j4GlCziTO54zgnotn++fPdMCUTSnn08yqRE1VWmge1PTsmh2/Y3oiQpEtHK2 Q1kpPotiu0ndDrS96arPKG8VGpomELjued2qtDlLhaBJFegYN+ER0QCZllPshphZOZrI ualbeBIUSf6DoN/tF1JEDwBT97BbDM4wdQ+6A9l92ysX1Oa7X4i4HvtxqKP674fRz9eD 9ttT31mTjn8O8gG5QKbwkfWtkjCXPXSIEZWbCGWV40M+kjMkpyccQwW40QV5VDyiZv4A ha5zkWCLRNkb0qTJk4vtMIlEMRHgz9d+fWevM3vPCa8ORNbAQRzvv9pTlMXpg/9ttAIF fNsA== X-Gm-Message-State: AC+VfDx8coONUBS73xsk1C3stof5ajudMiUZLONhHHgLXZUxRGA3xaeA VaxGvtp2xKR/mM+uobeK0SdkbQ== X-Google-Smtp-Source: ACHHUZ7oy2RxbbH2OVgkUE1oxd5jsYJ5LwKzXtkdSfTzpZc/wJao3zk8Xe6ywUfA6Pp9flLwKPR0+w== X-Received: by 2002:a17:903:2287:b0:1ad:b5f4:dfd5 with SMTP id b7-20020a170903228700b001adb5f4dfd5mr19242735plh.32.1684898007229; Tue, 23 May 2023 20:13:27 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.24 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:27 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 05/10] maple_tree: Make the code symmetrical in mas_wr_extend_null() Date: Wed, 24 May 2023 11:12:42 +0800 Message-Id: <20230524031247.65949-6-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 43CD440010 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: s5re8mmcyeyosajuqb3rj8pwn4xmmxu4 X-HE-Tag: 1684898008-69370 X-HE-Meta: U2FsdGVkX19wqkcxOFY+xLfrfe8ixFnC1eLt/9OSnvLqLfEtBS38C0dCBR69jlAnxhCCS+Q/nZs5JbPvRYVYAwx/g1/DWC2zElV0rI1sukx2ZKsa4AhU9JF/IsaoA/DHJOxhiUNpuEvjTQdDZHmA2iiB9koquaImttQEMd4Kf3O3iZIrtrkaD5fncVyeB4ZvZietZVb/+iMyezjfvCANvwonY8ti8UTm1fWSMZxtNhE4YJjY65wsPEbXhMDuvSNwkakIhHx5axRg2bFUZFjS+7JMVo4dRY1cnilLqLTM4ZN/r1BKi0cjaG7zwqPojNrzaJ6FHA0WDIpHAGOi3wxg7V37/s8rrFHP0ql7g0gcM/0PIpG7h7ZgNUxgy8M3u+BI9EbXaqqDNCDCkThgCd3FCfUTpbgwT0MnIYMIXDKuv5DBO9hHGyVZSgTUgasW333vj20+KU/kOIsuFFTSJSBb4Y8A2Arfh3pE82mwl5rcrsY9a6xNlrNLD9EXl/C9NSxQVZtLtpAgBoghI6UFNwTsqX2wwSCcQpgo8tm08jexIW5fPLi3S/NDsVq1OGno9kv+MUj57kyPZs8HflcCH/ja5J6ABYm9mBqDI9WZToWcncc7xuw2YUkJY2FDQ/v5LZsYHQMtbTAFzjNwv2zhbVmTkrdyc/R1imM4oshWFafvjq20H8GKlS8J8Xm2mNueKprpH2zoPyovJBYKijepu4n8cyS1j4LslSOrFPHGCX0olvMXmOH922G56SpblV94y/dVXfox26vTUFFKElLyJpd5FgfWC7x0pZiZcChhKY50FTj4wNGDIrXyg6R7A7Aqe8jr3nQ0ZvjecIzNT1cBlank++Gi7YutJUd3XpatmykkMg3wEk7w0mSEYdS8J8vcQp0FRYZrGYNaIXOvrE1wmH4ow6Z/8vAN5sXNh8YhesaI0XfwY/itQfbAX4JIhKJa6DQqZsNGG3Qiot6vVX+acw8 jBI5/CCF YPIBI2x/FCJ3MP8IuPssKnkuxv0QfLkNVC2J0WAWQml5lYb5Rpks+MFM987KnyZSbM1YbXNsH/7WWVMswLJqVsLR1fjnc0li1qiThz7fG1vyfjntz/tTveb/0vo1LxZD37v80DsT6aS3MN/b1J+ul/bcEQkiZy6rIYwzA8Vv9weS3id3H0YAPWXZutd8L9jdMkLq7pwk6ovGF9G1tUoZVmoEWYNFjhnT4YjPJkfVdYrG2I2HZlPtBBeQX2h/oBM5XO9yZ2tDQFE/eQ0wdHnEFbpIIKKv4VZ2k0B4om0AprDcac6uwc8I1aNWU6ztFP8q0ha/zMLwlW1vBZHNL4VXv4d8Umn/v3hkGmGn2bGCnUHI2eW/y+0z7UZSTcVGAKQ/7FtMGDs34lyRd5JSdDR1okNWUo5YWAYOB9Ybt6zG9T0FBbxa2dFoSRKHeYmGWa5FNlO5J2rOY8Z4hRziiqKCk53F2ZQjXWq9c0U8D 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: Just make the code symmetrical to improve readability. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 41a105e76e22..e6e42e1ba44c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4264,19 +4264,21 @@ static inline void mas_wr_extend_null(struct ma_wr_state *wr_mas) { struct ma_state *mas = wr_mas->mas; - if (mas->last < wr_mas->end_piv && !wr_mas->slots[wr_mas->offset_end]) + if (!wr_mas->slots[wr_mas->offset_end]) { + /* If this one is null, the next and prev are not */ mas->last = wr_mas->end_piv; - - /* Check next slot(s) if we are overwriting the end */ - if ((mas->last == wr_mas->end_piv) && - (wr_mas->node_end != wr_mas->offset_end) && - !wr_mas->slots[wr_mas->offset_end + 1]) { - wr_mas->offset_end++; - if (wr_mas->offset_end == wr_mas->node_end) - mas->last = mas->max; - else - mas->last = wr_mas->pivots[wr_mas->offset_end]; - wr_mas->end_piv = mas->last; + } else { + /* Check next slot(s) if we are overwriting the end */ + if ((mas->last == wr_mas->end_piv) && + (wr_mas->node_end != wr_mas->offset_end) && + !wr_mas->slots[wr_mas->offset_end + 1]) { + wr_mas->offset_end++; + if (wr_mas->offset_end == wr_mas->node_end) + mas->last = mas->max; + else + mas->last = wr_mas->pivots[wr_mas->offset_end]; + wr_mas->end_piv = mas->last; + } } if (!wr_mas->content) { From patchwork Wed May 24 03:12:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13253239 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 EAEF2C77B7E for ; Wed, 24 May 2023 03:13:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6DA4F280009; Tue, 23 May 2023 23:13:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 66DFE280001; Tue, 23 May 2023 23:13:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 44134280009; Tue, 23 May 2023 23:13:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 32089280001 for ; Tue, 23 May 2023 23:13:33 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 0E8BBA069A for ; Wed, 24 May 2023 03:13:33 +0000 (UTC) X-FDA: 80823678306.19.E87F69D Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf14.hostedemail.com (Postfix) with ESMTP id 20E8C100006 for ; Wed, 24 May 2023 03:13:30 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=JB3kp4BJ; spf=pass (imf14.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684898011; a=rsa-sha256; cv=none; b=YbWu/eQAdo0oHEHwfYzNw+2eePA+aRqBCck+A+cfZ8QVXeOKVnbRjZk+XNQdAJfN4pTFxW SQbRxG2EoWRUI7c22DLxO8AXfEwPEjJEp9cL00SZwqM6gVYZ7pogvoGz8MBBAqHHi2gYPZ kem0zo1Xk38souLTviPlk8XuVFc3d9w= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=JB3kp4BJ; spf=pass (imf14.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684898011; 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=Sfx1V5T4mPIwVqP+RrJR35TgWmrm3iAxbhRMi/Gcd/w=; b=MttQHWxHKO3f1I8NbCXuiVediCHMbBYL96+kf1O2oJ9Vc6XBwWyJRYTBxVrUDr+HNbKlfK /ZMwkwk8Yiqyuvp05ohXgvRJqwNmIF9b0YUt5aT/2PTSEtDzFke/Ztvg2BQs0p5lxTIQbq uhb2utdc0fLjsPiSHtUKntwVThhh9o4= Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-1ae4c5e1388so4345425ad.1 for ; Tue, 23 May 2023 20:13:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684898010; x=1687490010; 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=Sfx1V5T4mPIwVqP+RrJR35TgWmrm3iAxbhRMi/Gcd/w=; b=JB3kp4BJlOTs+7cy33BIr9gKo327JK5pA7ulU3SsjOpt3OCFJdJD7nK6aH5tKH88dJ rFNBih93HAFSgVUwvO50dFWu8MWGNidvUluFSfNOqUZpHn6gautW+XcY602ivtqiQmOd DHaviW5bqiNIiZr18jVVyRGEvqNQCnp2SPyV9uat+WK4D/AHQ4dwM2H04pC/D3F41xcv gUBrRudDRolPnEB+3e8vALOAFWlf6PovASzbMUtuHxm32FFhN4tq1uzAtRRQKIOo2+Fc En7/cwMNU5GHxKFqTz8+PyPf7Md0NP/OSjUlmMq5pNdNop7bHIIHzPJ4YWnVZKtXiwBL rHpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684898010; x=1687490010; 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=Sfx1V5T4mPIwVqP+RrJR35TgWmrm3iAxbhRMi/Gcd/w=; b=YqNYe5Z4fdN13fca/vd1EY4e7xON/40F4t0G9G5mRtldiO1j0uKdBAY9hpdJlV177V 7XXfcWERccStgTqwtKk4EnHE5JHbl9HXMd4i0F/BQVW0/8F9X8P7pG5RuwxLdh12C1xN 1QqJP+2xQOungknCrmuIUig/jKrZ0Pye5MltvAAcLzlj65mDFx2FpWSPsstMXwkrLk/x 4Mpb/8vZ8a4Fx3BtLUAU86jwoUhoJL96qRZ2dmEUUC9ZbVySPsEy9jR4fW4PVqzNC2ZI FGuwwAn1UlATNG0+kc0tGpEvE6I/GLaMN9wlEtCEiiPugV9ueshkpsCeWyZTo4VT95+M ajXQ== X-Gm-Message-State: AC+VfDz+RXvnr0rkoGc+wcmuYT5OSqT5HYyD4nWQNPJD1ySV9ilAoVi2 W/bGjcxa083F/WA5Vef/GXbcfw== X-Google-Smtp-Source: ACHHUZ6KdkbBdG/NhhrmPGJii84sxlUGH4WE/c+JtFzlhs/OksNqs2HD2kzrCPZt4nc2+TgevXB2ww== X-Received: by 2002:a17:903:120b:b0:1a6:d15f:3ce1 with SMTP id l11-20020a170903120b00b001a6d15f3ce1mr19866697plh.34.1684898010071; Tue, 23 May 2023 20:13:30 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.27 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:29 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 06/10] maple_tree: Add mas_wr_new_end() to calculate new_end accurately Date: Wed, 24 May 2023 11:12:43 +0800 Message-Id: <20230524031247.65949-7-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 20E8C100006 X-Stat-Signature: y9eg71kxqhykgoojzhjmj4yfg7sm9bor X-Rspam-User: X-HE-Tag: 1684898010-43683 X-HE-Meta: U2FsdGVkX1+UdJ6tsJ5fkJ6Jm/2fbLuIo47L3bh5vHEtLEvEyQF8tFF3rLOWOwyDzIMYRYc7RPCK5U0UEL17LyRSNmAr7HdiPgEXTJqKZpgdx3p+M2mdLrghLxAAlj9eCGSdRzw+tfa6HYWJfvqmczt4Ur7FAGmZdZ0l96/ZUOtfAb+i+u2r3335VCfFV2TMWdpHMDrmbwozI+TOJEWwPjOTI9UtA7ZFo9joJFC98BlvmSvJcIZ+nrYW6wu9OhukNXAXE8h/t2PB8eMCv+52Hot2s3ALg5kQC42YkWn0DScpj3mo3vVG53hqVxDZXhOTbOYhTywiCtotaONV1lKIcGIySRrcC1ihp9lLPrL3Gk55MqZb4xcETRNJOAjbGt+iMT6hKrxLB3IIoEmaIlddn9GcGN4ZG1pDBRZJC7UPIt+xTp08gbPVcVcPfGvI21WUyDcsjLlJs3Ry1Jt0JX1zQZ58uh6YnQpBnYKpTVR9C/IzVSKCHO+Fc1tx/byuW2gu+CHdwDNGn0hZQ5ULmeI4ci5Drega9YXezMdJnP9E3hVHuC7uFGoi2PU21H6QOtcAAVI0aDIucb+SpAjRYTVwlJzY1L2JQjSg3ihgU0t/dGFoRC9kR+TVyzuradxtLez2kjccwksallRwjG5u24QFij0yKJijIKfF1i7sLrd51PMng3nlMZRLcGGal6IF/r3oQ6i0C1apXSpWw/Ev6XTxqyIV7yi8Z5SR2Cu4j5k7pLxD18F9aqunfRHps44AxBbPPTEcHypMQ2udmf7vGiM5ftawYi90DtRwNW3wiZLnPt5ACpyuFB4df8Mzh78igXPdbQcDYV8a46GMdagdpEdlwd54ft8jWis+xzI3UhY7XYrHCvO8ncAMyxuYDbz/8BtIMki/Tcp4xP0NROOuEM+uVGR7QEnsWy8XgyyRSFHHTX4OwwqqbjI+Zqo56skJ7liUCCk29HF3rTeiVVphnHy ocV2QZd4 ueHXWuAbOTWu6RFvr3C2keSiAlimv6TQ/+7xgPwUOTOTyHkPaLLRfMbTT81gY1LN2tp/n01VJuPSApE6sbsHncbm6KugqJ1QJ7xndiiFPTIfKQrykmXSPb+JhpssWXW0h1MTnxGhecDq++In6VoQyARF5pd6pFeJeM73JhDhv6r6fPSvtHRdOnhS+/6ap8KyqzCz5J48k4H5ZpUdDy6nWUtiyW4NueoFsIsFAbyKuQizuMx/Y8SmE7ZD4kRc7IqHsisJKRKj0jgHkHdQfYQmPiTEPlkyhxVYEUSc8F6pDvzJNxyOwQM6y0P4lA//G0k+Klw4saZLExnkNuNrEr96FlUNqGCXxSYLKftMcfbNQ+b5Fqzf1+7Bk6lE+9UVbKpEpkcq2jiWBsldBeNUbKDgjoXVZ2Wy5Im6lQMUor66S3yzHCxa3rsVA0OU2/iPJzwQ5RgK4gEWywxh2csHgO1pf5Yxkh/D5lBVxKwuwERfGdYeHKHI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000005, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: The previous new_end calculation is inaccurate, because it assumes that two new pivots must be added (this is inaccurate), and sometimes it will miss the fast path and enter the slow path. Add mas_wr_new_end() to accurately calculate new_end to make the conditions for entering the fast path more accurate. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index e6e42e1ba44c..07c5c7afd415 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4296,6 +4296,21 @@ static inline void mas_wr_extend_null(struct ma_wr_state *wr_mas) } } +static inline unsigned char mas_wr_new_end(struct ma_wr_state *wr_mas) +{ + struct ma_state *mas = wr_mas->mas; + unsigned char new_end = wr_mas->node_end + 2; + + new_end -= wr_mas->offset_end - mas->offset; + if (wr_mas->r_min == mas->index) + new_end--; + + if (wr_mas->end_piv == mas->last) + new_end--; + + return new_end; +} + static inline bool mas_wr_append(struct ma_wr_state *wr_mas) { unsigned char end = wr_mas->node_end; @@ -4351,9 +4366,8 @@ static void mas_wr_bnode(struct ma_wr_state *wr_mas) static inline void mas_wr_modify(struct ma_wr_state *wr_mas) { - unsigned char node_slots; - unsigned char node_size; struct ma_state *mas = wr_mas->mas; + unsigned char new_end; /* Direct replacement */ if (wr_mas->r_min == mas->index && wr_mas->r_max == mas->last) { @@ -4363,17 +4377,15 @@ static inline void mas_wr_modify(struct ma_wr_state *wr_mas) return; } - /* Attempt to append */ - node_slots = mt_slots[wr_mas->type]; - node_size = wr_mas->node_end - wr_mas->offset_end + mas->offset + 2; - if (mas->max == ULONG_MAX) - node_size++; - - /* slot and node store will not fit, go to the slow path */ - if (unlikely(node_size >= node_slots)) + /* + * new_end exceeds the size of the maple node and cannot enter the fast + * path. + */ + new_end = mas_wr_new_end(wr_mas); + if (new_end >= mt_slots[wr_mas->type]) goto slow_path; - if (wr_mas->entry && (wr_mas->node_end < node_slots - 1) && + if (wr_mas->entry && (wr_mas->node_end < mt_slots[wr_mas->type] - 1) && (mas->offset == wr_mas->node_end) && mas_wr_append(wr_mas)) { if (!wr_mas->content || !wr_mas->entry) mas_update_gap(mas); From patchwork Wed May 24 03:12: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: 13253240 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 26BA3C77B7E for ; Wed, 24 May 2023 03:13:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B953A28000A; Tue, 23 May 2023 23:13:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B1DA9280001; Tue, 23 May 2023 23:13:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 997D128000A; Tue, 23 May 2023 23:13:36 -0400 (EDT) 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 83053280001 for ; Tue, 23 May 2023 23:13:36 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 4C79DC03C7 for ; Wed, 24 May 2023 03:13:36 +0000 (UTC) X-FDA: 80823678432.04.6FEC4B6 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by imf15.hostedemail.com (Postfix) with ESMTP id 5E85BA000E for ; Wed, 24 May 2023 03:13:34 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=dAbDkk4G; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf15.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.173 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=1684898014; 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=z8kX/CacLzRcOeiRpI7Mv6WmATX8iDuuhOGMVtT6UnI=; b=IfcqEvV2miQQep6bxYYiII6N+nDIB42yUbfRiBXcqAWy+w5bQWsrDeFTtgUzpXk5DBv5Xu ZRwHXjGgVK0p4yxAbZKETL+2h989lrKP863188VywMlEKywIBvTGGTMecby5IobLDFqs25 +wx3eJIC99m0hVqoznWWxVmTgwntams= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=dAbDkk4G; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf15.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684898014; a=rsa-sha256; cv=none; b=J8qkBR3sdeqeBcPdB+jCKcbpp+qiXti86HRDWuTurXOzUn5Sk/JLf6W0yKP6DSfhoNBX/7 kLhgFEaxXZcqykcYHJVnx5rtwKfARrQxCW32UQFgbto1fIctZG3aJkDuJe2RWj5TznqR6V XtWrNDPuSc+eUfE5iaEybmJltPsH10U= Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-1ae3ed1b0d6so3177165ad.3 for ; Tue, 23 May 2023 20:13:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684898013; x=1687490013; 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=z8kX/CacLzRcOeiRpI7Mv6WmATX8iDuuhOGMVtT6UnI=; b=dAbDkk4GiJQU/jxOkINNRJlaXfIOp/R5R+HSQgwpzuH8eiNMPj5AcakWbxo//h8/ay vQ0LArP/qpZgWTAmJpZlCArJFNRl2XkUK6w2jHsLhelCYpaZdm9oTP1m/7V6YEkbfS/8 HyO/Rgus3f3DcI+iFxoHe57XLFmEVK6IDB6Vuy/ehe8mv87fHmjcb1CG4LbntXuhzelG GUw90y//GDnqabcNqlyMLV9Tzj6SLCBwyqtaMmEYllBHBw4OjOeOTJWYzZMRR6xifs+6 GsvQusvycib3LAyIrKaTtOVOZnKOODZ4jt/bPIFoElXPLkj5oRsu0mS/qZKKyYUhYo1G IsRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684898013; x=1687490013; 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=z8kX/CacLzRcOeiRpI7Mv6WmATX8iDuuhOGMVtT6UnI=; b=GDAlTOaIC7weYlaF4iDoVG0qDg8LNEJS9zEvH7bfrLXMi3P9xQDJl902KMH46J3C1N WSAHSXB8Q1Npz4S6GHnTwOCbuEvsxpEKDsklxKvcBSbi4UtOzuKqr0xk0Y0Ih5nFesJL gB/XNnSo31r4rZrfkMxo8DSfKRYdhT4TPlHEp1yH6cnxu7UMrqwqvBi+lL4nqUxebMyL VjTfc/AN5xwqJh75ZMOhrJBkvNdObXITeMPEcqqgbR0Wa6DAuslWR1ArE6QKHbzS4Qqj XET16cqrmoqy3RsKmQW+nvYBxUOaXfbsjabAyFpz1ypj2mawqIt973Fdjp1UKdcDwb0V RD7A== X-Gm-Message-State: AC+VfDz1CF3ULxzXO/XuQMVTAVLwDqOOLZcqwkj1sK8H2hZYF8nrXjsU 6nMaC1ozN+cXFdzx0T6PWh33DA== X-Google-Smtp-Source: ACHHUZ7Qafrtm+weGS2Jn5aesb3gc/ilDa4pwi9sRmaWBdjd8Jnm2LaKpeRgtRJCgYwRDpQ/lLrBkQ== X-Received: by 2002:a17:902:ec86:b0:1a6:a8e5:9240 with SMTP id x6-20020a170902ec8600b001a6a8e59240mr17812527plg.4.1684898012832; Tue, 23 May 2023 20:13:32 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:32 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 07/10] maple_tree: Add comments and some minor cleanups to mas_wr_append() Date: Wed, 24 May 2023 11:12:44 +0800 Message-Id: <20230524031247.65949-8-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 5E85BA000E X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: kd4mkykjdp47tj9nfhggcaewahribyqb X-HE-Tag: 1684898014-249868 X-HE-Meta: U2FsdGVkX1+XAW0e5bATCySmkcNVvrRqk8cJ1TkrbVtbvsEatfFBRoehw/ye4rtKuh6BQAO/luLWteJbj3iCUIyvySbupwuEgXy3+21/OsLqRPW3+cISgi2S747vtSxqM1urI/IBGxm1ulqJa2AJ6985jeMXjZQdq8L9Qdf/xIWD5+/pGK9GhIUJOUdxQsSYReQlxafCduXC2hfj8NJ0HO5iKSl0juG9npGlpMN2U7fRg6K4585NQ0NIE9/nD2fiSEuhcoDoE0U/e0rhl5l1mFsiTqG5ggKlO1lqC9VbEJMzc+0p4oTLvucgIDU4VWseP4Qkvzk9328y+t3tZLWwwPaEEDeH+lherHlBd8JDvN5GKtVq1nM+kme0eM+lfWEYcUmWVHW3QCZ/MJR1gLt0YGVJmDky3j2aAvAqqfiYX/f9bNEXFwTemMmbPnzVxtzTM3cndVtd1nmh6bCJJEXK+PMzB2P4ElvW28VWiNVQI5oatxdJDg6dnmpQA6RA8EZTRfvSnmnED2L/Tdztg1supjyDc/QYSOzsSztuvV08TG1I9ZEKxHQUEYqSNd8XbtEb6c2QmqpOUBYyarwlKgTifTgOBle26BDWSF2/f0jT+pJMGpnhDz4m7LRa8uvWstIahkyiUYiVW85Ys2YQCCClQwhwSQuMw16TKYGgM+RhTJ6TxOWmlrCjIofHg3+v08nRerhPeL0QxnCcVVB6L1CyGsFwvzkx4FPFa5glrXRzlwoyZ6Hl+KXcaxk0RVHY3vt1DNHwFW7rqFLCkTXpWCunp/F8W9q3KqhPXifDw0CK1swTLjuOv5ruEWEUR/UUTt0oc4z39uPxRhDqY5VTdaQFMpN9mohhMVNPPJkCa5m1qLKRZeJSa01Hk5JgzHsTT6udwtirJPa0cZiY7GkUm6EQEHFz3AaOn+MXTjijBBkmRygBXNrZvGyrzfYaI9gEyoxWC+b6PWU9jT3jy1g8/Mf xfz01Ln5 1TYJ3XaVU6FVIF0d+JU2t5seJxGZia8SJDN7+E1VOPlzZG2J0FG/OB7z0aQMV10tK8u/ZPzErvKV7QBhQ849MAAZjHF7xiqaesGB0rsIaT/mVah2RTlfGAvNAn3TaBIqJO+920sh3GCk9DdHoZ9m/ZcN6RjawOKOMK3DsEg6J7PfPszcdWP8F6n8j27Fq6JPQW2vcI86uVAxjkdovUZBcxwNMZVL9EpeYnJmoJsKF2LOtRcXs63QEuapzVhw2SPw9U9nXCSTZkBNFM1HXOHGziYv9aYRlbeXNns9VuWf04VGXJhlZxtLU3R3qWX1qdxa0pp8n2h1T/w+A5RhEv7gNg2hAaTHcCv+rCgAx5B11pWdeZJY8ADnNXfZnpmBkLaj8/AjhT57kiYYWBOr/p2Oz/vmyBDkeCTsHQeEwkUiV/bSnyVhCbmXJHx2oPSQo6fuYv1rXQT79g7p9bPKE1CbIHwUGqr+IYHRP8oAe 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: Add comment for mas_wr_append(), move mas_update_gap() into mas_wr_append(), and other cleanups to make mas_wr_modify() cleaner. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 07c5c7afd415..676976a005e5 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4311,6 +4311,12 @@ static inline unsigned char mas_wr_new_end(struct ma_wr_state *wr_mas) return new_end; } +/* + * mas_wr_append: Attempt to append + * @wr_mas: the maple write state + * + * Return: True if appended, false otherwise + */ static inline bool mas_wr_append(struct ma_wr_state *wr_mas) { unsigned char end = wr_mas->node_end; @@ -4318,34 +4324,30 @@ static inline bool mas_wr_append(struct ma_wr_state *wr_mas) struct ma_state *mas = wr_mas->mas; unsigned char node_pivots = mt_pivots[wr_mas->type]; - if ((mas->index != wr_mas->r_min) && (mas->last == wr_mas->r_max)) { - if (new_end < node_pivots) - wr_mas->pivots[new_end] = wr_mas->pivots[end]; + if (mas->offset != wr_mas->node_end) + return false; - if (new_end < node_pivots) - ma_set_meta(wr_mas->node, maple_leaf_64, 0, new_end); + if (new_end < node_pivots) { + wr_mas->pivots[new_end] = wr_mas->pivots[end]; + ma_set_meta(wr_mas->node, maple_leaf_64, 0, new_end); + } + if (mas->last == wr_mas->r_max) { + /* Append to end of range */ rcu_assign_pointer(wr_mas->slots[new_end], wr_mas->entry); - mas->offset = new_end; wr_mas->pivots[end] = mas->index - 1; - - return true; - } - - if ((mas->index == wr_mas->r_min) && (mas->last < wr_mas->r_max)) { - if (new_end < node_pivots) - wr_mas->pivots[new_end] = wr_mas->pivots[end]; - + mas->offset = new_end; + } else { + /* Append to start of range */ rcu_assign_pointer(wr_mas->slots[new_end], wr_mas->content); - if (new_end < node_pivots) - ma_set_meta(wr_mas->node, maple_leaf_64, 0, new_end); - wr_mas->pivots[end] = mas->last; rcu_assign_pointer(wr_mas->slots[end], wr_mas->entry); - return true; } - return false; + if (!wr_mas->content || !wr_mas->entry) + mas_update_gap(mas); + + return true; } /* @@ -4385,12 +4387,9 @@ static inline void mas_wr_modify(struct ma_wr_state *wr_mas) if (new_end >= mt_slots[wr_mas->type]) goto slow_path; - if (wr_mas->entry && (wr_mas->node_end < mt_slots[wr_mas->type] - 1) && - (mas->offset == wr_mas->node_end) && mas_wr_append(wr_mas)) { - if (!wr_mas->content || !wr_mas->entry) - mas_update_gap(mas); + /* Attempt to append */ + if (new_end == wr_mas->node_end + 1 && mas_wr_append(wr_mas)) return; - } if ((wr_mas->offset_end - mas->offset <= 1) && mas_wr_slot_store(wr_mas)) return; From patchwork Wed May 24 03:12: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: 13253241 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 D9E08C77B7E for ; Wed, 24 May 2023 03:13:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 63DA628000B; Tue, 23 May 2023 23:13:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 59F65280001; Tue, 23 May 2023 23:13:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 41B5428000B; Tue, 23 May 2023 23:13:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 302D1280001 for ; Tue, 23 May 2023 23:13:39 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id E35231407E8 for ; Wed, 24 May 2023 03:13:38 +0000 (UTC) X-FDA: 80823678516.25.1ADA4AE Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by imf19.hostedemail.com (Postfix) with ESMTP id 18A041A0010 for ; Wed, 24 May 2023 03:13:36 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=cKaK0PzJ; spf=pass (imf19.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.182 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684898017; 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=4r/B+P0ZNt0u/JsXVxRA88PA4LS1ywC9VJ4XyQ5w3aw=; b=xngtenIMX3+CUnB8SZpy0vQmRGRFJPe9SSdBO+YGvup+c5uA5j+l6Sqt2FmHaYIImlSfl9 VNatqHe+XoXrgr89rJpzpjy91wYr3+ohxxRqjSVXqdUQ0GvL2aP/kNh1F72CPbFXHtWQ2W WGtlCqVE19ORs/uvJskAqCpaoqe4OvE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684898017; a=rsa-sha256; cv=none; b=JuZCADsMiYF8Yxoc6NgbiEJ1Ur9I7NpmRkDXt9yK2NVOvbiV/++zY/ll89hkLRHIN9fmJF kGD5bvA8zuDeva+9fBF6bwODtZy34778KkA1BifSU/13b4MksmQtV5tseggUUmGdAvWnZ1 SSZL4svqwkMGv8GjL+RTfw+o0PdZZuI= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=cKaK0PzJ; spf=pass (imf19.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.182 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-1ae4c5e12edso3554465ad.3 for ; Tue, 23 May 2023 20:13:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684898016; x=1687490016; 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=4r/B+P0ZNt0u/JsXVxRA88PA4LS1ywC9VJ4XyQ5w3aw=; b=cKaK0PzJJClj7BIIZ9xYrlQhdCx17KGgfoycYEDKN5jEXKpKR6cV6dy46l6VOK1ADK 0IuruPcnO8kruo2u+evuuL/X7ccEK37inNOY2P47BF9uZHhHo1eaAzgmg1V76hoDz2KS XRjqHbwSw/X+izm8dPf9zqZ8jowCvO4nb8SOF+P4tA9/3ku1Of+FpDUMl9Jx82LhyDTK 3TN0i1owLb8gw+gFqvSG/v0sNXQ5AsWP0Rd0gq4N/fWnWYNm3exaJ5f7FZsHTiQQ6CAf eJFaw3mxGwFtw/AK2XXpKo1btbWmrcjCSuREvHhg+QNkXqinuEBJecKgXCvEs3l5RkdC +5nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684898016; x=1687490016; 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=4r/B+P0ZNt0u/JsXVxRA88PA4LS1ywC9VJ4XyQ5w3aw=; b=hTUCzzwWlpCSRLcc6yRlGs3qjA4zVWSjP4DGECTNTdOuNx2OPtigan14gZrwPlP8Fr DwYSEL02uSLbDowVeXFNPq15zZjEh6/8tbTeYBGQrD1x7DGgi3zI+Foh0cKVDIFf6UrK Cej9j3Wx/ayCTyPiIzgbT9iOY6f2YoN7N5JrYUIdJOsNnl8MyqhkmeCDX8SttURZE3NK mmLOGNnrcOFd84+b5HPUJIPRDF0rhwd3si2KZ7uNcquicWPjWL9rMxyEP9PfGjqRGD5k sg0J9VMUBzUUAbFJHu7FGTDSyp9COSjc8EJIDAjCWN/rH24PL+zlC74Y1FdKYdqKTgFz z2TA== X-Gm-Message-State: AC+VfDyaeuCRCxpMpwwBaO90GlqpyVFat9j6lTyMOxWTUXUxfc7mlR6N lcxxw1ZfoLzRqkR571Ct4La9zg== X-Google-Smtp-Source: ACHHUZ5GbrNE/nQ058ApxvQBF7XTwlVqs4vuWERFZGTqmJi/FDyeGR4CvtfKaCmE4h3xFL8vgvU9jw== X-Received: by 2002:a17:902:f547:b0:1ac:9890:1c49 with SMTP id h7-20020a170902f54700b001ac98901c49mr22348049plf.15.1684898016058; Tue, 23 May 2023 20:13:36 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.33 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:35 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 08/10] maple_tree: Rework mas_wr_slot_store() to be cleaner and more efficient. Date: Wed, 24 May 2023 11:12:45 +0800 Message-Id: <20230524031247.65949-9-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Stat-Signature: yn37e1wau9k1pph8xyu1e1qynu9ix8t4 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 18A041A0010 X-Rspam-User: X-HE-Tag: 1684898016-481860 X-HE-Meta: U2FsdGVkX1/NFvjAy5vBRMS5JTiy/0V3mUoH/uS9fsEHzXsnGGLJOGQtT7xp8UMEnVcEBoqUU/jOn0NhUep8GlmwTdHywlwF4zYVzYXcKv9OEDDYbqJle0sDRnUDQwvFYIxtLnFSB5hEUD9oJcVzVZwfZwcz43KDjXJ/NDrAJ/AFRNmn5wpFAa0dkky0CgcWmFjn9msu/t2/jC7S6a2E+PskyFI1F03eH4az5DlyMYRhchvMESegz7zDk5DKhD15DIkQ/sHr3CZuIXT2e12bi8IILpnF8/7Z734r/hGI1zr6yDsdkdq7FcxARj3QG7TkUgiUIIj0QS+ZjbOAYMWuytxk85Lzc26ML/Ua56QVxZ7z3tzel5+JXKxOqTYNE910522yUg1euf2QEIsr0NCPx3ZXB6Nkp2CB40EtmZl1a0xAYznvXUCk8nZ8qSOW15gi7V/806kaTvoB11kd8GgldqTahLyjPGVpLgCErrsTzuh4Qfxb+sob70l6nhAepjFMGRj/LBR8HXWFBe1BK+MVcs9AOBIoCm0DxgxkDkYRu1RrmCbvhnByLsUnwnoK0BMQKXhYcAVLNKmoKORgQmYxvh4T8pm1uSuVYwtMkcFgnB1ktqWYJAnJWxnHt0ey4eUQf4Z0RQm9VjJSyB+5B/XFEoDZqufGlL/2wCDKOQzVHgyQzbkfd8bhZ/ExS15Gb75d88JN/V2rn2ex3IoSjVbDCDCvWS07xouCPUGgcztub9uSELMATs5mXUFBotG53qskItiyTnnuy4sOlhjV7gjmF6vj19P4AknQUlmRcRbf55l6ALbv/UxLEEwNoC6xTMnj6XiAYfk1Ip9tkKXnKbiabcI2okmi0Ba54FrhEYos/P7pqa5Jkatvn+KRycy9cE3qSXazvgRxwIJzwprbmKnIIYtVrG0OlUKn7Tx4NEk1ztlUyPMr4rphvcYFlmaV+XHsR2z8GWaY58/YpTP7OXw w0OyJd1T Vxb55KrzN1GdIEV5ptZs2+rdk5gLS9iopybkRFE3tPvWrfJ4T3ccAc1fJWEhXdhgicuKZ8eZPzY8IPMXXus9Md+ZpDWkdU0ZNkq29qEFIsC9e5TBmZUrjZU5ObKS4jlejedRcFW8iZGEI2CKb0omuDUgB+UWof1hbcy3vPpAmLJpCd7N0RXX8M67tec5KFlX7CI2mFLrGgfQGAh+EDBrOV+zBQZSZKQSk6JXkug5MtkCjayX2z9vl1zV/6VPPnrcsGrjplhnyUFiWGiIxjwBBIievEgRUgmrMCa1PJbILpSLycVjTE2G3FlF2INBoZiHtvJRKS/u541eBg0/6Fd6TvMUJuYT1jBoBl895wrz4emBWtVncP4PB0rgifEojhesG+Kioi+98LHPALYMYfityCBi2CMvw54NavkjgR0eKBau6efrVDbzk3CbA0Y07w84MwydTL9VGtwXCSyqsDEg+qj5oVLHiFQvFoNzgq3QcXEvyLEs= 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: Get whether the two gaps to be overwritten are empty to avoid calling mas_update_gap() all the time. Also clean up the code and add comments. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 53 +++++++++++++++++------------------------------- 1 file changed, 19 insertions(+), 34 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 676976a005e5..1a2b9bb9c014 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4202,49 +4202,34 @@ static inline bool mas_wr_node_store(struct ma_wr_state *wr_mas) static inline bool mas_wr_slot_store(struct ma_wr_state *wr_mas) { struct ma_state *mas = wr_mas->mas; - unsigned long lmax; /* Logical max. */ unsigned char offset = mas->offset; + bool gap = false; - if ((wr_mas->r_max > mas->last) && ((wr_mas->r_min != mas->index) || - (offset != wr_mas->node_end))) + if (wr_mas->offset_end - offset != 1) return false; - if (offset == wr_mas->node_end - 1) - lmax = mas->max; - else - lmax = wr_mas->pivots[offset + 1]; - - /* going to overwrite too many slots. */ - if (lmax < mas->last) - return false; - - if (wr_mas->r_min == mas->index) { - /* overwriting two or more ranges with one. */ - if (lmax == mas->last) - return false; + gap |= !mt_slot_locked(mas->tree, wr_mas->slots, offset); + gap |= !mt_slot_locked(mas->tree, wr_mas->slots, offset + 1); - /* Overwriting all of offset and a portion of offset + 1. */ + if (mas->index == wr_mas->r_min) { + /* Overwriting the range and over a part of the next range. */ rcu_assign_pointer(wr_mas->slots[offset], wr_mas->entry); wr_mas->pivots[offset] = mas->last; - goto done; + } else { + /* Overwriting a part of the range and over the next range */ + rcu_assign_pointer(wr_mas->slots[offset + 1], wr_mas->entry); + wr_mas->pivots[offset] = mas->index - 1; + mas->offset++; /* Keep mas accurate. */ } - /* Doesn't end on the next range end. */ - if (lmax != mas->last) - return false; - - /* Overwriting a portion of offset and all of offset + 1 */ - if ((offset + 1 < mt_pivots[wr_mas->type]) && - (wr_mas->entry || wr_mas->pivots[offset + 1])) - wr_mas->pivots[offset + 1] = mas->last; - - rcu_assign_pointer(wr_mas->slots[offset + 1], wr_mas->entry); - wr_mas->pivots[offset] = mas->index - 1; - mas->offset++; /* Keep mas accurate. */ - -done: trace_ma_write(__func__, mas, 0, wr_mas->entry); - mas_update_gap(mas); + /* + * Only update gap when the new entry is empty or there is an empty + * entry in the original two ranges. + */ + if (!wr_mas->entry || gap) + mas_update_gap(mas); + return true; } @@ -4391,7 +4376,7 @@ static inline void mas_wr_modify(struct ma_wr_state *wr_mas) if (new_end == wr_mas->node_end + 1 && mas_wr_append(wr_mas)) return; - if ((wr_mas->offset_end - mas->offset <= 1) && mas_wr_slot_store(wr_mas)) + if (new_end == wr_mas->node_end && mas_wr_slot_store(wr_mas)) return; else if (mas_wr_node_store(wr_mas)) return; From patchwork Wed May 24 03:12: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: 13253242 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 ACE05C77B7E for ; Wed, 24 May 2023 03:13:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 506CB280003; Tue, 23 May 2023 23:13:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 466D7280001; Tue, 23 May 2023 23:13:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 292FF280003; Tue, 23 May 2023 23:13:43 -0400 (EDT) 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 16A79280001 for ; Tue, 23 May 2023 23:13:43 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id DDA0F120240 for ; Wed, 24 May 2023 03:13:42 +0000 (UTC) X-FDA: 80823678684.15.225B072 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by imf11.hostedemail.com (Postfix) with ESMTP id 0CF1B4000C for ; Wed, 24 May 2023 03:13:39 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=fos9Fr5j; spf=pass (imf11.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684898020; 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=WgqFNmLUsjBpqCt/LIT5GKl+BluIQMtFefGaXd2M17I=; b=PMbGm6BJqTGmfvzTz3J5jKU5otb2DfnWX5c8VYk0ud08sGrtk/UpYai8YBApbMm8X7S5v8 pJ/rwTbu27mCy5QAdGWxYk1cL3LC5AzMJ4eDU7QEseNaa0jL9onLoETWGafiLcNcpnefap /DH0fWW22Ixh7E1VdOHRt9QrDbH3Aq8= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=fos9Fr5j; spf=pass (imf11.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684898020; a=rsa-sha256; cv=none; b=QswhRsokTFWw9l9Wco70I5kXsVZZg/GPcOdQsqHESnT7hvbthh5Vvp7w8ZA4APONfYfefi eMKuJHV4/bwpPdpCtucDjPvco/++SCYhPkp+LG6x9zom4I0ohEc56LD5evpmS6kwqnGoQR Um3Gs0LZjfI3+pe7vr17pplynoc7cVM= Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-64d2e8a842cso239927b3a.3 for ; Tue, 23 May 2023 20:13:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684898019; x=1687490019; 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=WgqFNmLUsjBpqCt/LIT5GKl+BluIQMtFefGaXd2M17I=; b=fos9Fr5j7HfGCNewdVHPba52r/od/Xq+HkXaE/eBVHR4axkXK0nFdYi0oZZCCy7z6j Ot3MbKyYncgN49VuQuaicHywCvA4q8+r4AghQkyphciFzgep109ZY4LKjb9lhUwztXIN 3/uF6rSQdy/dt6dBkGKhxdSBO/qF8l3nH6p6sko1NwTHkLuOXTIZfQFKqDzJxlNwdaBv iN3+WueQq+mUfyQka+huDH6Wr5Qh3iNEDtj3hoYY+4m/M5HAVkQ0MjI2Rvdv3KlzAk79 nA32aCjmUw7mldHuv/7K7VxjoffhtwdiZMB6hXpYIWjVpcOEuWGegvx55XSCg40ZM/Jp 2d5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684898019; x=1687490019; 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=WgqFNmLUsjBpqCt/LIT5GKl+BluIQMtFefGaXd2M17I=; b=At8r/hvi4s+RRXQwuL+J/z2vd3mm8Kd98uW2rIblHlsm5gmbWODSTrfB/N7KV3fM4D N+A5G4/Xx5JCNqfB1DbtAbjMT9KoDbYP7hrc385saiWQ/93dXa7F04PFURC+L4WdbM7H Xs6KlKAUtBaXEaxHRgB/oWZ1Kzd2w+WbxZ+z6P6bnreifLfQ1UlMEqcq7m+RbOY/TNpA A+JaxnNeDbRLFygJZYeDF2hi0zcw4M/SUWBZKkMGFfIMHRr8pEsiYzMRrEMYbVwrINC6 ytTtVfM1GzJZ/kHmau7M39+bXyFhlImr5NdhUlNyzTcRjIiBohTzJt9A9BNMV0nxuN7f 0z7A== X-Gm-Message-State: AC+VfDz0bpe7Kd45Jmy17jSsV270bqt9ZS703vqZghl3hYwrQ4CrJZI2 wXP2CJn2EAzs80LHYyflMRyexg== X-Google-Smtp-Source: ACHHUZ4u5qWVuJZ5LJ1wZwJuBtkbV2DwExZQW26B04OfbrwVGraCJfjD+4T7DSMkKkHQBxFPv3ONfw== X-Received: by 2002:a17:902:efd3:b0:1ad:164:74ee with SMTP id ja19-20020a170902efd300b001ad016474eemr15460302plb.15.1684898018881; Tue, 23 May 2023 20:13:38 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.36 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:38 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 09/10] maple_tree: Simplify and clean up mas_wr_node_store() Date: Wed, 24 May 2023 11:12:46 +0800 Message-Id: <20230524031247.65949-10-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 0CF1B4000C X-Rspam-User: X-Stat-Signature: xatnaskt9nzbn6k3ix4ywybkejr5jpn3 X-Rspamd-Server: rspam01 X-HE-Tag: 1684898019-273853 X-HE-Meta: U2FsdGVkX1/dB6BGvHPCK60fxIIFTOOoAxwupgtn6u4thziWk8zouSadALXR9rdc6diIUc3OEN5GyjOun7qYXmTjo7UsdVeak9V0u9WnPEwQ4JqHPgEZdwwxzc4aUvyGqWA5FPJq/zXcIa1d3P6sgu1CfDp/QpXnW8bIiRDAXvV3iOYhXSQi2fXsBwADEZoyK34wNqpT9XUnC1ndicwmImlZQ7lz0Cr+9M5d/Wp3zemjSdnZ60osZ55+3/vvatVlHzB9tTQMBtvdq+Td15cmwZkbtH5vmlMvJpDTGtxL5BDUjJTncvoIhOKcSGzSY7hXceqdkUOXP6D/VAIcpT7PRNgvnrXgl8pAOUv7RSQMBHcNpiCiezkpUuvr2VOxvFeYLzGySao4W+F2ZhdXPrKzlpXWoe48L+Qas9xhiN0avhDIOGyJ3AuwonJ2HZCAPECc+poDLpK2IpNjNDdFjB7BLUXsJaIPhYwUblTaKi/qNW3ru6xtFSnXmkntDWMwvN5493suMvdMI8G4nrtlXUvtc+yN7AG9OyS33x8Df287GGk9VJYGYQB7GCe4hh3TWOydJn/2RhTJhvwjMFfZasNwGuVE6aeMrdx/rU2kEHt3QTXGoPE3v8nihCm8hpEGqhk5DTzZl5O6E6NKaJCLX7cf2snMsfW3eajiCED1MgNxtwzx5PzM3xwuc3jzxdBjqB4bB0Rgf0dHYWfxRTgi7YboSwjdRLknlD4HDrCd6WKIujd3izVry/RjI/qkCgo262JZbK85rWbU5NF2CybcklItJ2cPBiZNQldPexm00JefgG9csPRrV5e+oJDXpxSZp1xllrP73TQ1RHpvtuLq77nmTk5ipe6LZfYdSOEKTGArSNm6db/1LBMPbG6mnRh5vYhjMNVOcqG9DVknZgkkVzdOaLl345QVW6Q6kmOgod+3/DRDIoVKnQ6xABxIxNh2OJL/Ttyno5lDWLx4IRH5dOA 6CDV2mL1 z1+MMYclDeuAliHd6XjEZBXnyOIWZLxUUETRAbnFnruoxEbfA3JAfpTp7jx6/7OKhzXK4OlrzR1niZQ4Z1uXxRDhF03ZJ28m2KX9JzEEcuJxQ/wt1+Y55iyyzizXoQ80YDApVSMFv64ZEkCNE0BqaU+8RhvqCcU96wM0Jw3WTlnijfIbUNP8hdQxfDd6ojIL7ORt1N/1tEwgZyreX8rDcFcX9q2Nfw3c8MKHcXHMWGdjEHFw4UhDP4eiN/E3JUMZUjyxlSS7YMdp6XThgWNk5SluP1D3AJHd0FB8IrfpziQh9VZ5HRKNw025kUU2LmPsxQtsML51N5O7niu/EUL9ZE/Li9rwJq8XWlufVT1z1/SfNVqz6EmnEGRwKJh+feX1wH2dY4qJPPTUwSVJH0bEgu0vqSNQEpy2BmhVOvsyYQl2kc/iIKV5mQ0Na3lPcdbx+sagIVHtzD62QQQoOpT4yF5APoWO1n6GQfI8v 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 and clean up mas_wr_node_store(), remove unnecessary code. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 87 +++++++++++++++--------------------------------- 1 file changed, 26 insertions(+), 61 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 1a2b9bb9c014..bfffbb7cab26 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4074,52 +4074,27 @@ static inline int mas_wr_spanning_store(struct ma_wr_state *wr_mas) * * Return: True if stored, false otherwise */ -static inline bool mas_wr_node_store(struct ma_wr_state *wr_mas) +static inline bool mas_wr_node_store(struct ma_wr_state *wr_mas, + unsigned char new_end) { struct ma_state *mas = wr_mas->mas; void __rcu **dst_slots; unsigned long *dst_pivots; - unsigned char dst_offset; - unsigned char new_end = wr_mas->node_end; - unsigned char offset; - unsigned char node_slots = mt_slots[wr_mas->type]; + unsigned char dst_offset, offset_end = wr_mas->offset_end; struct maple_node reuse, *newnode; - unsigned char copy_size, max_piv = mt_pivots[wr_mas->type]; + unsigned char copy_size, node_pivots = mt_pivots[wr_mas->type]; bool in_rcu = mt_in_rcu(mas->tree); - offset = mas->offset; - if (mas->last == wr_mas->r_max) { - /* runs right to the end of the node */ - if (mas->last == mas->max) - new_end = offset; - /* don't copy this offset */ - wr_mas->offset_end++; - } else if (mas->last < wr_mas->r_max) { - /* new range ends in this range */ - if (unlikely(wr_mas->r_max == ULONG_MAX)) - mas_bulk_rebalance(mas, wr_mas->node_end, wr_mas->type); - - new_end++; - } else { - if (wr_mas->end_piv == mas->last) - wr_mas->offset_end++; - - new_end -= wr_mas->offset_end - offset - 1; - } - - /* new range starts within a range */ - if (wr_mas->r_min < mas->index) - new_end++; - - /* Not enough room */ - if (new_end >= node_slots) - return false; - - /* Not enough data. */ + /* Check if there is enough data. The room is enough. */ if (!mte_is_root(mas->node) && (new_end <= mt_min_slots[wr_mas->type]) && !(mas->mas_flags & MA_STATE_BULK)) return false; + if (mas->last == wr_mas->end_piv) + offset_end++; /* don't copy this offset */ + else if (unlikely(wr_mas->r_max == ULONG_MAX)) + mas_bulk_rebalance(mas, wr_mas->node_end, wr_mas->type); + /* set up node. */ if (in_rcu) { mas_node_count(mas, 1); @@ -4136,47 +4111,36 @@ static inline bool mas_wr_node_store(struct ma_wr_state *wr_mas) dst_pivots = ma_pivots(newnode, wr_mas->type); dst_slots = ma_slots(newnode, wr_mas->type); /* Copy from start to insert point */ - memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * (offset + 1)); - memcpy(dst_slots, wr_mas->slots, sizeof(void *) * (offset + 1)); - dst_offset = offset; + memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * mas->offset); + memcpy(dst_slots, wr_mas->slots, sizeof(void *) * mas->offset); /* Handle insert of new range starting after old range */ if (wr_mas->r_min < mas->index) { - mas->offset++; - rcu_assign_pointer(dst_slots[dst_offset], wr_mas->content); - dst_pivots[dst_offset++] = mas->index - 1; + rcu_assign_pointer(dst_slots[mas->offset], wr_mas->content); + dst_pivots[mas->offset++] = mas->index - 1; } /* Store the new entry and range end. */ - if (dst_offset < max_piv) - dst_pivots[dst_offset] = mas->last; - mas->offset = dst_offset; - rcu_assign_pointer(dst_slots[dst_offset], wr_mas->entry); + if (mas->offset < node_pivots) + dst_pivots[mas->offset] = mas->last; + rcu_assign_pointer(dst_slots[mas->offset], wr_mas->entry); /* * this range wrote to the end of the node or it overwrote the rest of * the data */ - if (wr_mas->offset_end > wr_mas->node_end || mas->last >= mas->max) { - new_end = dst_offset; + if (offset_end > wr_mas->node_end) goto done; - } - dst_offset++; + dst_offset = mas->offset + 1; /* Copy to the end of node if necessary. */ - copy_size = wr_mas->node_end - wr_mas->offset_end + 1; - memcpy(dst_slots + dst_offset, wr_mas->slots + wr_mas->offset_end, + copy_size = wr_mas->node_end - offset_end + 1; + memcpy(dst_slots + dst_offset, wr_mas->slots + offset_end, sizeof(void *) * copy_size); - if (dst_offset < max_piv) { - if (copy_size > max_piv - dst_offset) - copy_size = max_piv - dst_offset; - - memcpy(dst_pivots + dst_offset, - wr_mas->pivots + wr_mas->offset_end, - sizeof(unsigned long) * copy_size); - } + memcpy(dst_pivots + dst_offset, wr_mas->pivots + offset_end, + sizeof(unsigned long) * (copy_size - 1)); - if ((wr_mas->node_end == node_slots - 1) && (new_end < node_slots - 1)) + if (new_end < node_pivots) dst_pivots[new_end] = mas->max; done: @@ -4378,7 +4342,8 @@ static inline void mas_wr_modify(struct ma_wr_state *wr_mas) if (new_end == wr_mas->node_end && mas_wr_slot_store(wr_mas)) return; - else if (mas_wr_node_store(wr_mas)) + + if (mas_wr_node_store(wr_mas, new_end)) return; if (mas_is_err(mas)) From patchwork Wed May 24 03:12: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: 13253243 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 DF252C7EE31 for ; Wed, 24 May 2023 03:13:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 776EC28000C; Tue, 23 May 2023 23:13:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 70053280001; Tue, 23 May 2023 23:13:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 57BB828000C; Tue, 23 May 2023 23:13:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 48DD8280001 for ; Tue, 23 May 2023 23:13:45 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C322EC05AF for ; Wed, 24 May 2023 03:13:44 +0000 (UTC) X-FDA: 80823678768.08.6156B89 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by imf04.hostedemail.com (Postfix) with ESMTP id E66474000F for ; Wed, 24 May 2023 03:13:42 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=UEqQJrMO; spf=pass (imf04.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684898023; 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=RV+E10z6xFr5GObbzUS/AcEhnoCetH+fwSlbsSYX4vY=; b=PQ4mTUfClFTPdhV/NGxHeei5z8aV1Ramkx8KdH2eSmI0INVlnWa9hWHY16qgGYzsZ7T4/I Ip4GP1Gc01pY1EhaRDnIHtYwHGtxPzieQdxS2maVwF4g4MeBZfQGpExLfOPTZyYLQoBBGi wa3pFWo7rWMagAyGfEdCqdkq7pWbciQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684898023; a=rsa-sha256; cv=none; b=gd7v53LQGI7aYPKdcgmXyGa5TTxmh483YZlORIXiCmUEPivnLxz3IeG69WGQeTQP/1kR6W 5uvvhkuMrZwI9Brgrkn2TrGU5oasp3ru9AfBo505kiJxCCgyP7S9VKWtRVvd+FPTYGOE38 qTFUjhlwynjC8CjMNcGHwk9Po+0leGw= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=UEqQJrMO; spf=pass (imf04.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1ae54b623c2so4495715ad.3 for ; Tue, 23 May 2023 20:13:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684898022; x=1687490022; 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=RV+E10z6xFr5GObbzUS/AcEhnoCetH+fwSlbsSYX4vY=; b=UEqQJrMOHnp7tNX7Xow0fq26n4UkOiUISE4M7Opa3LuKIvoS3dhJJ0pqVVo2SLlHs8 6Qqpy3Eu1Kk08CjhUGgaFUpgTvqwnToIT35Fuppg5a6SaiPtz0c9rGgD9iaXf7kGpKLf rS9jqrOV2UtKcs1SiOtf56rgGQlYwIsWsBR4Xu4CfUbv+ajxw8ISYMIaxeaBTW2NfEzq lJuSO+qkX1c3cciGzclkIICDlZENpzNmPSqJg/s1ju/BkYi7dKl6yvDfpV6sTU3bXc9x lKEvIzWQPS7ntNGuM+n1OvdBANoB8EPXON4tpuiZV7OO1lTc1VkCZZYlWibCcyZ+H9Vb 9dWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684898022; x=1687490022; 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=RV+E10z6xFr5GObbzUS/AcEhnoCetH+fwSlbsSYX4vY=; b=G+0X15MbZ4AR2jpCXvhJlhc1THWqMB2Pb9bijQ4LXlECXDj+y2KvVxVEwnsebAzrUJ YEbdse3ou9wkS81Jae1QqUuxBxP4b8Qj3SzR4le3poWPkf8Scky4yxTXkh7YQj+9Bg/K 73JtI0111llfvna/V+RNGyE0ascHkTtj5fJkm4XsHocduN4VsLPjik1zHdttDCLLkQ0e H7NH4UzrwTE4/RpfTgafh2c3HT39zP2djlHsvKtbaymnBwW8Stuvob6VHc6+Ut924HcO 8OBv+1WmfnkKuiIsibAH2r6JKwcBNMbdWlEf3pMIBmgzfMUhPXryvyQpwCZEKt7o8s7F Nykg== X-Gm-Message-State: AC+VfDw3kDcn2J1ZqQyeCnUHsIMjtb7IbacY3KYhJ2vRQITsiFDT1vi6 C2NKMtIl1Cexb+D+6jt1MnUOYA== X-Google-Smtp-Source: ACHHUZ7T4GM4OuK5QysFeJ/gTT+sQ/FKJvyX7/w982xaAUIoPuxcFTqCTQN0bfu0nq33cYFYgWIVvw== X-Received: by 2002:a17:902:c412:b0:1af:d00c:7f04 with SMTP id k18-20020a170902c41200b001afd00c7f04mr5042927plk.12.1684898021782; Tue, 23 May 2023 20:13:41 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id i4-20020a17090332c400b001ab061e352bsm7480769plr.195.2023.05.23.20.13.39 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 23 May 2023 20:13:41 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v4 10/10] maple_tree: Relocate the declaration of mas_empty_area_rev(). Date: Wed, 24 May 2023 11:12:47 +0800 Message-Id: <20230524031247.65949-11-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230524031247.65949-1-zhangpeng.00@bytedance.com> References: <20230524031247.65949-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Stat-Signature: we3rdb6w9hwnp39rs787igtkqgrcigfb X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: E66474000F X-Rspam-User: X-HE-Tag: 1684898022-250209 X-HE-Meta: U2FsdGVkX19pKmnu/AmCyGVbJzACmXDPd49cJtTH9BXkTAUzbPAhD6cYFw2LpAe8DT5yHzMvChJGNTEDRLgWSPhKY6DT4wm+0LorzCDLvtOuHsjdoejX4plUQ6hBMKBoVfZlz7pUewPgpS4lvVQ0F9T5H6F1j53T92c+dSCmcF+lLaJSnYYqZxi1jdNu46B3ld0xVsq7419UJnKU0L/IK0wYi7MwBqlws2cwj4i9vkqql7KabzTZN/BY5nsZOqZ755PIRNedYQ2vlGASuperBd+WqaAn0cyByuxwZmOeVgO8nOG5TtEaWYnSBqjha4NIYR0ezSaXe1/2dTlYbFLNVHGNhw3IX0R9pO8deByowhUrkNAGADHWvGripiix7iqrXMvYXFYmi49BpMcmICZAtp/ca1Oi9QVJXj9jN8fP7nTQiGaxDMVeiFq356F5ECr/jFy7VQSQib2xyfmGbLXdEzHmO7i91L5dNgVLiycn+TPDpphDk51L4Ph7I4PiqdDU/2mVGnnxVTxl1hVZ66J6EfrmUWz3QFOvfL6Mzo2PBZ3spv1qI5nZrQFxxRnqLGTcwjQi893qabmqbQwqPbdFiI1CtRKG3/MXDejxSNp3kfUSr4bYvdqTHLEtF5a9DEccXnSDhYJgZiiu//2vzo5EO+nTKRU+A8deZhUfKiMZeD6QwTew9QbG8jlUtP6Nk2QZHkhbXiQs2o3kV80uf1X+mhsBAYgqPIkGnT1KQFtomS2vUW36o2+0Ut+qjUUkEJPVV+aEP2G9fbE0QBQKVwGf1BuwtpLXnju6aglj1e8hZc0aBU9Bwu0eViJwLWc+UjdqKihp+Mva/RH55w9fvF3hGYOreMFkzS3a5yfL2yLOIlOY2pKw47VQG71r3wkuXCnJSHotRy3hAE8zBN49Jf0efg9eCGznwjFvt03o0ZR+10rHH3n98ij+Zuk3EKNzQz8kSQVSsv6AXZrJrZrHriy j0m5IMK0 kLmL65eupUVKY6pBhZWeAGuxqSv9L7olUTv6LXTDl+AC8o5qYy5camN8mkDPUSWYYjLo0nCa9IzsADr9KKk2Kc9v99DVry2PEusnL6kLoVIWufY1Jy9Obz6wqU+6nvTJF3Vo9jBC1cCSyzDu6H0f4VHx0qaxXkL9RE1OfJkIqYVPaKOhPYuNKSdE3JHbbA06HtudVqaOvDRIH3oSOwZJpr9WmkKo2YOsmbjo1jC37TyLbzqdLNE+QgWLtJEJbUJr8vq1KCAFyZqGm15fWKtHdQN3IiOEZTMh8/bupHo/2fMjY0NVw8oTk2UgLUenHQi6SiNO9bipDaiTAJM/nzJ7tTpJQJ3Pe6jcIzCjNFvWLKTKWOLMYSEGqXs4jFj0LsnqzSa+Oma/5+EaMarHQaEa2J08d+jNvsrUM8/kj+cMb8M2seeAizFtQOWqiJs4JOlIEWLvoZuIvXzeQn87OFWt5ebZWeBNEXUpzqkeHa9toaFfI+z0= 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: Relocate the declaration of mas_empty_area_rev() so that mas_empty_area() and mas_empty_area_rev() are together. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- include/linux/maple_tree.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 541675229568..295548cca8b3 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -474,6 +474,12 @@ void *mas_next_range(struct ma_state *mas, unsigned long max); int mas_empty_area(struct ma_state *mas, unsigned long min, unsigned long max, unsigned long size); +/* + * This finds an empty area from the highest address to the lowest. + * AKA "Topdown" version, + */ +int mas_empty_area_rev(struct ma_state *mas, unsigned long min, + unsigned long max, unsigned long size); static inline void mas_init(struct ma_state *mas, struct maple_tree *tree, unsigned long addr) @@ -497,12 +503,6 @@ static inline bool mas_is_paused(const struct ma_state *mas) return mas->node == MAS_PAUSE; } -/* - * This finds an empty area from the highest address to the lowest. - * AKA "Topdown" version, - */ -int mas_empty_area_rev(struct ma_state *mas, unsigned long min, - unsigned long max, unsigned long size); /** * mas_reset() - Reset a Maple Tree operation state. * @mas: Maple Tree operation state.