From patchwork Tue Mar 14 12:42:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13174289 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 620FCC6FD1C for ; Tue, 14 Mar 2023 12:42:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F3AB08E0002; Tue, 14 Mar 2023 08:42:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EE9A16B0078; Tue, 14 Mar 2023 08:42:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D8B578E0002; Tue, 14 Mar 2023 08:42:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id CAC806B0075 for ; Tue, 14 Mar 2023 08:42:24 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7B2B3160EA5 for ; Tue, 14 Mar 2023 12:42:24 +0000 (UTC) X-FDA: 80567467008.25.28783B4 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) by imf22.hostedemail.com (Postfix) with ESMTP id AFD68C0014 for ; Tue, 14 Mar 2023 12:42:22 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=ix7uri1I; dmarc=pass (policy=none) header.from=bytedance.com; spf=pass (imf22.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.44 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=1678797742; 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=6gfvzdPPIJNGgSXDt2FDnmzg914LTKb84rb4IiYC554=; b=MORGy78jRwU96l1PkjVvDoZtlqTrVV2bm9D9gjAkloYM6qt/OmhH116QXQ8G4cCexuK2ym 5xwloOjueyJ+8oi/AjeMDZACaGSHwxA1VKTq6avZTH4fWPrJNurZ7Pj5JM0oT7Vu0Es7pC 5eynGY293VOkaLHgUGKmw2j/zTzVdYo= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=ix7uri1I; dmarc=pass (policy=none) header.from=bytedance.com; spf=pass (imf22.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.44 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678797742; a=rsa-sha256; cv=none; b=701aEptoIY2Zr81YbPRVH6fxuW6A6fdZaIZ9tio9NPe+tu6ndos0C5qX9R8PgmEdYVA9UO cQVZrFAstTxMbv1swEi6hLuyBu1SjIeOyNNJCLyrw/y7KTss7AYZU4RPmVHowURa5WjmHc +EJyAgTExC6/bUOCFypRTI0eI0g02O0= Received: by mail-pj1-f44.google.com with SMTP id j3-20020a17090adc8300b0023d09aea4a6so5905257pjv.5 for ; Tue, 14 Mar 2023 05:42:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1678797741; 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=6gfvzdPPIJNGgSXDt2FDnmzg914LTKb84rb4IiYC554=; b=ix7uri1ILEEPiyasmKqakK5ccU2YG24dfCqDDUm43gJDsFxSpoQlzQG6Qa5vAndQXl jMsc70HggeW+6NgiokrIJmXArEGC7yYYQFla6ShFJyEAu682f+SnE7+XfbcrU66ksx4k 4kFZv0Dv44qxaNHR7T52669L7YDxYZP8MT6K0pu3uVwc9FzRsE26xZIDVpEpoMyw28YW MOOhI9tAbzpkS1N0dmHOI8A3Mjy9YteguHhhITQL9vclsticEYAqAYzAg9nbqA/MOwqh 1X/UnNuLY7zn0mc1PHipCaOAx3+hJALDo3nOjHAZK3iZrjkSJ7K3Sx5kaOdlPd/iXTXb 3Yww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678797741; 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=6gfvzdPPIJNGgSXDt2FDnmzg914LTKb84rb4IiYC554=; b=7AywfIEqvRKLTSuYjKjMhSt3aBgbbv9mmPVjGoeF3XUmZ8LW9xt+Fx5rmsf8Piq7B7 gSNIbZu32Orfky7zhu/e+8yR1tvAn6BaWiz+HLWLWvlcOq7vxP99V/AhveIJOlIiWePo WEmFOONN6I+QTu4cLPj+j5+GrB+7T3FEDwA6ZwlKRTLWTmde27GXttpUi0pOKLV0qXeU Ka3xjBDHB6VNoGPKBNMo8Ho9EX2r3pI3sgUOaPOtAmUQBKLORceTYJw4nflPjQ9qdo8V pN0MvDiU0E7PBWnI8V51CwKtnNJop3m967D21/yJCYTeejXpwlnFzjj/o7D65SSWYeYw v5JQ== X-Gm-Message-State: AO0yUKXigirbmHog2uifiKoq62sskmlx7QjdwE1QY8hMX7OhemofsqxM 8ChNFQD4E1pewgS2fpSRvhakkQ== X-Google-Smtp-Source: AK7set866q8ia7BqTKzVyRrZrn8XKi3vOB+iHtRWLixU8F08+MZkneSL6K4NMfRCAB9Z+YCcxDUR4A== X-Received: by 2002:a05:6a20:1bdd:b0:cd:87ef:3f21 with SMTP id cv29-20020a056a201bdd00b000cd87ef3f21mr36837359pzb.8.1678797741688; Tue, 14 Mar 2023 05:42:21 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.234]) by smtp.gmail.com with ESMTPSA id s11-20020aa7828b000000b005ded5d2d571sm1509385pfm.185.2023.03.14.05.42.19 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 14 Mar 2023 05:42:21 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 2/3] maple_tree: Simplify mas_wr_node_walk() Date: Tue, 14 Mar 2023 20:42:02 +0800 Message-Id: <20230314124203.91572-3-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230314124203.91572-1-zhangpeng.00@bytedance.com> References: <20230314124203.91572-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: AFD68C0014 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: qpx1c1ucqb5yj73h6bybam3o796cef85 X-HE-Tag: 1678797742-180116 X-HE-Meta: U2FsdGVkX1/7at29MgG9BxH5w6hLtj3O9A8XQ/Lky4O54XOuTRhyWIhS93DNYlik03M8XPYUHFuL/HcNjCPbkOfKhAI4z2qh9xKtRyUic8pU06U+UOnN17N/QwRjT+P6B3FErT3YVTdLNAeQXpm4eEjlHNkXDdVCg+UtSpbTUnmpwVvbqlVU0FhbEPyhRxWZJBWR2wKJf+dUUsTD8OcOpVB9J0QM3gYBRIV4Fx/aTktDr9aJVP791MWg7E71pxiJ1Bb9CE2dHnJRcdZEi6koPKUH/2qKPw3YILbylUPgt69L5y888ZfNGB/JQaQx8A8NxEtMtxvTnY1I+gJEdkEqHHJAYjYDpo6bRpSrU5OR1tM1ZB4wvdWvWu5G0SlMa8PjpkOrM5VHXtAc11mInUBPVWbKhDF4UszAYt0IYBGTUoyj9IOw445J7vbLw5gcb5txN4iialacmO6iHhX1A9Aj8XhJCR1ldH6p856UO3cQZPwPaJfdg0rxSipHFk3TYC82yuZmcsHYiVNCL13M2rAeiWMP/wS0e5UaVBu8zrhvbThsHbUDkLGBVsSTaV8i/QF6lQ+p9RNyZXFr/dAIc+2Pcb2tGEjT7f3NI8v7TvrSRP+0bBevdWjCxms1gaEm3ZUF4fqpILVXuODVvdcnM2Zz4T7f3TFQXKVBH2uW0fl6rdXYMPoft3DfztU5Uglph5hnZ9Lu0EZMFEp7v3ep4PPFJgfMss9bg6WNS896FqvhcsqS/pouppPMlVMGmHRwpL04+LtejZb6NkcDTo4D2ZWGv3+wj0IZOA3ofVAaBlh6t21m7Nti0N6iTn04XEcyKIF7XYEs2SuoMsvZGfKJlIpKlbgGv2cYa/dnUuwPPc5vQYWuEngKR5SCxo+YbQ5aXRKnTsEOqe4NT95WEPiBxGr+QexpXicW7mnZDkePWdevuVFRNUnk+5vfmMFQ545rPL4EC0WYqN1SfkJWeGcro7/ J+WasnC/ FRaon6L6vHAPDFGKcKEQmxvnLXKjUG7QSwRj22Zw/vVQaZ4BoFOgmrNdf/+Xxa5e/QDkjzsCC8VN/wa+HICkda3hFwuLaXmTKwnv8eDLsIBYx/tV/yaK+iDXi7HQ8Ib8yt6JNpB1YvO3nsWuM7vqKrQvjso9yAMW3Kq+nyiHcPNucCAyMG1Fb84aVvVsOkeU3dGfrto17Hq0AGMOlkbdVy5k4te+LfHHahl4wSp3aA3xe1pKT1jlquFrdYJczT1aBTu/jGZlPWFeg/BAfunhCJvbQ0x8Fzn0z2GqGJT1D0XON+/Ug2RKTQJtjr75W0shjf9wLjR4qwSThBpl13MFrZ2ZbByZa1Dxe51BqgCAd9jXxs9vuhkOx0q0PP4TTHEgOjvouEGMmSKb51wj4/4K0+tC1X+rW4E4Eg8FySpB5nvBWWtwkUnUwXvasNUbxL3yxbI6HLtMmNFQRCCKj+peHpmOaAhk1pFcVqC2nxl1TuMAY4B8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Simplify code of mas_wr_node_walk() without changing functionality, and improve readability. Remove some special judgments. Instead of dynamically recording the min and max in the loop, get the final min and max directly at the end. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 34 +++++----------------------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index b3164266cfde..4d15202a0692 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2251,9 +2251,7 @@ static inline struct maple_enode *mte_node_or_none(struct maple_enode *enode) static inline void mas_wr_node_walk(struct ma_wr_state *wr_mas) { struct ma_state *mas = wr_mas->mas; - unsigned char count; - unsigned char offset; - unsigned long index, min, max; + unsigned char count, offset; if (unlikely(ma_is_dense(wr_mas->type))) { wr_mas->r_max = wr_mas->r_min = mas->index; @@ -2266,34 +2264,12 @@ static inline void mas_wr_node_walk(struct ma_wr_state *wr_mas) count = wr_mas->node_end = ma_data_end(wr_mas->node, wr_mas->type, wr_mas->pivots, mas->max); offset = mas->offset; - min = mas_safe_min(mas, wr_mas->pivots, offset); - if (unlikely(offset == count)) - goto max; - - max = wr_mas->pivots[offset]; - index = mas->index; - if (unlikely(index <= max)) - goto done; - - if (unlikely(!max && offset)) - goto max; - min = max + 1; - while (++offset < count) { - max = wr_mas->pivots[offset]; - if (index <= max) - goto done; - else if (unlikely(!max)) - break; - - min = max + 1; - } + while (offset < count && mas->index > wr_mas->pivots[offset]) + offset++; -max: - max = mas->max; -done: - wr_mas->r_max = max; - wr_mas->r_min = min; + wr_mas->r_max = offset < count ? wr_mas->pivots[offset] : mas->max; + wr_mas->r_min = mas_safe_min(mas, wr_mas->pivots, offset); wr_mas->offset_end = mas->offset = offset; }