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;