From patchwork Wed May 17 08:58:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244470 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 B36FCC77B75 for ; Wed, 17 May 2023 08:59:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 51958280006; Wed, 17 May 2023 04:59:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4C910280001; Wed, 17 May 2023 04:59:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3912A280006; Wed, 17 May 2023 04:59:09 -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 2BA86280001 for ; Wed, 17 May 2023 04:59:09 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id DBF91A04E1 for ; Wed, 17 May 2023 08:59:08 +0000 (UTC) X-FDA: 80799147576.03.828635A Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by imf30.hostedemail.com (Postfix) with ESMTP id 0601C80016 for ; Wed, 17 May 2023 08:59:06 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LEpcP6Z2; spf=pass (imf30.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.169 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=1684313947; a=rsa-sha256; cv=none; b=zIu97WEds6dni8QcmX8439R4Kb6jf0KJ56drp6wOIBmpQ5fWGQjMzucCmumTPyOXy4JdI5 P8bA+pkNTbE5FZyS1FyF2JO3AXpbNKACLkYBB5uHB5YBeNj0VAyJwxb1KFRbjpkPpFKdIs jDY1vPf1YpZ88qepWBVq9WybpQ0GhA0= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LEpcP6Z2; spf=pass (imf30.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.169 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=1684313947; 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=QOzzsH+HINl0nPqqyHkNJXvYfvo/GTpdTPT7077/sGQ=; b=Sp6D5cdrNc8XNfbBaCkwfqW0eoLKUBcVw7uCHiAUnUFDI+HKSwC0UXkOwr+qV3I3t9Oj0C MwwvqQ4WPN8fCeGLvDY6oUkZx2J24y8pEzR0TZEvsRTn7KSg5f/EcgVhuWfyeLYEECo8Nl JvCi8OfM7NycVpitNo4LVy4DMoLoXDk= Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-5343c3daff0so312859a12.0 for ; Wed, 17 May 2023 01:59:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313946; x=1686905946; 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=QOzzsH+HINl0nPqqyHkNJXvYfvo/GTpdTPT7077/sGQ=; b=LEpcP6Z2iO5V244pOZDVZ9PD/DssYhxM/g2Dgywp7L5+4So8fiBCWCs+ByEv4uwRGf Lsrr8ZnveVCkcBoJOY7slGzezuGunBr1hkrG0WbES9lRgR4WkaPW3WkN7INx7m+7bNLa b+SJ6BYMLFPicf7kxRDWbsSTeTmNlQfqx0iU2i51i1P6ZXGuBr0QlzliS3x6NlTf2MJy 84wk5jYwGFVMpmaKVNv8+tkrtO5wnPxXEPT/COvyZcL1lvzf3LamcYd/jVgY6tFdIuJK KUFlZld0CYflLmPq/feOirZ1Up6XjBoz2hnunMuxMbHmjp6cuc8TyruCJLUKCE4dPmGy y0rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313946; x=1686905946; 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=QOzzsH+HINl0nPqqyHkNJXvYfvo/GTpdTPT7077/sGQ=; b=b8h5lsybha57NkMuz64VTRqRyCrCYJZ9rFCmqYxfDoqv92eP+oJh9MTS1+p5Hh40Ie /X6V2enYUe4XVbc22XviZvB6zrh8Q4DclQaOlgNPQ8YZHMgFjTJGXMFEkFxuockZRrvU 5LmSFANof0Xo2xLxs/QM/1xF8QUZFB2WV2Y4kUfRrjPRCts0RVqPxyBpUT/jjhyy4nrC pcYwZspKVyNN9CfOT27nNd0blurpfi1Ok4Oymar5cmLXPcu/EJ4bRBxYPycXWvUoP0WK 19H/5TwUYzylm8jJc5Ih0PZBe0ZFz22UrIDdGckeKzJdzQ/3IlLbmRkjkxsraJIOJmSt J7uA== X-Gm-Message-State: AC+VfDwcp53Iqaqmfvgfn6dgE5dP0kyiFG33AYtTFMXTn4JmONNMjmg6 9/zdXBx9RujcBhMVxf6vfxKFhA== X-Google-Smtp-Source: ACHHUZ5sLjaykUSvrFlKay55p8VrWsxrTs0AGlQ0fIeJ8X1NfblBBaQJci8YRv4xfW3zFc3U6grQNQ== X-Received: by 2002:a05:6a20:12cd:b0:106:70af:a5b9 with SMTP id v13-20020a056a2012cd00b0010670afa5b9mr10364681pzg.31.1684313945924; Wed, 17 May 2023 01:59:05 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.59.03 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:59:05 -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 v2 07/10] maple_tree: Add comments and some minor cleanups to mas_wr_append() Date: Wed, 17 May 2023 16:58:06 +0800 Message-Id: <20230517085809.86522-8-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: cz5zndzpz7y3urk1bp9zsb5d3cfh6cbg X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 0601C80016 X-HE-Tag: 1684313946-57651 X-HE-Meta: U2FsdGVkX19No8cvBZuBiiBp4kKntoaUfZ71safXlpJlWGEgkhvXpx3+SS0a8zBRAfTlIc2K+AzuEQgh7e0DaaEAZ0jXxL546T9M2wVHsY1UT/kHh9lVnFvLye4KkANZRUwFhB9AJCTErkcwe0zGHuyYp2zsBa6y9JzCsNIBNr0QtZoSFPHrq5sBnjK8XXu9SYrfY9gdpDvhXNTrF0685SAV/Qg3ho7iBgJ9Sx08wfLWPYSFMxRa4LucHUE3fSpZTMXa0rk7hC554Hj0JNxuc6JY4pRF4SULPAjDG1ahyU4g1dukd1xd0hQkwWAt6h+Ju+OtLI+CidLfSdEX21WqgKKUBp6YyMl8Y4r/7wFawpQAmnfJi6yvyAJHr95vQ8DraqBoTKjVANjdOcJINpPs5HopfHJbdWBk3s/Sor41+OcmejmzTDyKVxL4GriIvl5Kn2UYPspI76jntK8ewG4vdf5DLbxwGKhc8Hcu3a2xsiWap9igW5rx5Pm/SY5diPr4GjJCvCt34n3vc2bCJuaw6W6Yp+l6biDhbRqyH/8HQ9iSNA5UchtECfFMGRkzFmvc50LLgk0FPFh0BIdkRlxcDsFmTMLXkUhYz1KjPkmUhXjtuLPu21q9iGSqGyRDags6VfKiAa77BliMiSQr/YRlceQd6E3RDZQSZNLrMhxChDkaSa6VgdsheHPxJGbnZHHiphg21nbMsyNEpVMEK1wj5At1be5mV07prF3iDGWW1WuZPaAuIHDpqUBApwVP4n/cUY13gTvDMMuDI3MkfAIHEy6g9W5ra9uXviTA5WxTZSBboUwWAWSKX85OXuu9VkReL5/gUjlA2w0IReL+NKCwCJ6A4w+5uurR7qpucS5su+q1FexRJfvhXJzdB3NfP9ghQ5cGWHPOItaUsjRMdYGNOmRg1o2RUt7q5nZDNj9rc+umziIfFsVU5QtYkhLei22cUsPv/6dhTauK8NQQNwD D3JUYvRX fbSUEy7VAazsO+JPqGJHjNOKUHrkT07XjP8xCdRo90LXUH3caLB/KHP5hNSOsWaNnPkGP0XIZJ9QZEmyS4AtBeXVsOT/jfNCb99TYbdg5iBkWRhlDboBr5HWn6djNh5EKtE9J8UM4oFSvVNjS22L0C8nYJe6wwxsu/wTFHU9R68rcKI3OoX+PUCPwlrHd4kUQ3rk8J2zgUPtrsS2RPzwn3U0L0KqObXOxdUsHnDlrmrNjqCb/68VlalW22EJ8xzqf8SrrNfjyaCZsF7Tsfs/2oix2ML8D2hxj+PmX59K+r0Tmp//OdYK+hOHOdXwy+jZRtpLJtrQpAKfYoMnNhSEXDIIi/A2Ac+rl/e67g7Am9yT3NvE1OkPWxyeo0SIYkTLC3YwSDbtE79VDxb+N4ie86avU+E+cXmQCtSUhJkjPWb0McUNIyfTZbuwsUI8E2K01uG8CvCkHljjNFeo= 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 --- lib/maple_tree.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 3b9d227f3d7d..bbe4c6f2858c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4308,6 +4308,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; @@ -4315,7 +4321,11 @@ 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->offset == wr_mas->node_end)) + return false; + if ((mas->index != wr_mas->r_min) && (mas->last == wr_mas->r_max)) { + /* Append to end of range */ if (new_end < node_pivots) wr_mas->pivots[new_end] = wr_mas->pivots[end]; @@ -4323,13 +4333,10 @@ static inline bool mas_wr_append(struct ma_wr_state *wr_mas) ma_set_meta(wr_mas->node, maple_leaf_64, 0, new_end); 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)) { + mas->offset = new_end; + } else if ((mas->index == wr_mas->r_min) && (mas->last < wr_mas->r_max)) { + /* Append to start of range */ if (new_end < node_pivots) wr_mas->pivots[new_end] = wr_mas->pivots[end]; @@ -4339,10 +4346,13 @@ static inline bool mas_wr_append(struct ma_wr_state *wr_mas) wr_mas->pivots[end] = mas->last; rcu_assign_pointer(wr_mas->slots[end], wr_mas->entry); - return true; + } else { + return false; } - return false; + if (!wr_mas->content || !wr_mas->entry) + mas_update_gap(mas); + return true; } /* @@ -4382,12 +4392,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;