From patchwork Thu Jun 15 13:08:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13281269 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 BD1F9EB64DB for ; Thu, 15 Jun 2023 13:10:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4BCA08E0006; Thu, 15 Jun 2023 09:10:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4458C6B007E; Thu, 15 Jun 2023 09:10:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 24AA18E0006; Thu, 15 Jun 2023 09:10:51 -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 1400C6B007B for ; Thu, 15 Jun 2023 09:10:51 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id DE19BA0892 for ; Thu, 15 Jun 2023 13:10:50 +0000 (UTC) X-FDA: 80905017060.09.2DA4BD2 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by imf02.hostedemail.com (Postfix) with ESMTP id C03D680022 for ; Thu, 15 Jun 2023 13:10:48 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=bB1QL+mm; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf02.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.176 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=1686834648; 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=6ZGxNZsIpnMBQhUNXCsRmhhDB1lIsi8lU2hwxHUwfjk=; b=hE0VLPah1/pyMTy2HrAIaeY+VWkfOiFsRqjOAUqTz8BSPEgc5FzOBkuxWyrs3BZ6jkrmaR FSdR8Mk/dQUgJanvAufeMGPpcTXLDESGVccW4IxoFuIZwUin+EBcx3NwJgw3d4qE7okdEP CRAKYwD+3QthSL7mPw798TuVBDm1120= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=bB1QL+mm; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf02.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.176 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686834648; a=rsa-sha256; cv=none; b=FT+r6aDiGPgoypOUiC53KE7LhDm+twuH2pC0m9//Ak9a7WeQ+DcLJSxdzmohScRC3lh2Fd ogAiwB039Fe1SPYDHe+nyCIkFDaFXWsDLZSOajVGoI2nV7FrS1ZJO7IpHTiVB/c4LfSCJF pZDpYw5C4G+3x9MNdKZKRTISwiiJj0U= Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-1b3a6fc8067so36350625ad.3 for ; Thu, 15 Jun 2023 06:10:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1686834647; x=1689426647; 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=6ZGxNZsIpnMBQhUNXCsRmhhDB1lIsi8lU2hwxHUwfjk=; b=bB1QL+mmf56nkMSsfv598qN2fllo5bMGUfYXT445+ukRmpKPsuk9VT0wAtXq00tXeY WeK6VnfC6+czbq/PAw1qbKx7hPjEooLS3/e1llNQeBCEMEXRS3MUgv6jIThk9gqloXRU BsnD43Jj3AIUQNECtE2YygfsbaSk9n7L1Bh6WyE0EiLSeyCxZFUvNDtPlPA0X8aPjihM RATB0sV7gU9LvQ64TF2MqqfgGgXt9z292CVR1zak0IJpJq+TIO1K7agY+R8kNbQ+AGBP eaBkO0j8yCfFJSwgITxQoJek7mvOUQ92gsgUJAtfhMEvls0y8GeNKpYUifxw40BfhDrj UAcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686834647; x=1689426647; 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=6ZGxNZsIpnMBQhUNXCsRmhhDB1lIsi8lU2hwxHUwfjk=; b=iuzJqiAP0sAOYRY80mheFFXDuMF7S/luaFXQig9+GVwEiOhhlXFIOIkn658jVl77q0 1jJlJ1iw7Q4ryvuoJLHkScOEtS6Tv2e+ycadsT1G6kZZ1okoKyTy2MDl9HgF7oxHQO4J R1wIkuMcyUwmTFbsWoMpxz/nukhQ9R4YnuM4TL8HY5d310Eywh4Z2bgzqc7e/riFJcCI +XaXerUbLDgUZleZhUAcpxGqtPNkFSmYMDMO/hihAloffeUZT+ubAIhdW7za/YBlXECj vYnc4nFnyau30iDYCGIeqgYlHvelwPqBzYi/Dr+NSHRiNWUAQxXB1fXu1Lfrpf6mj+G+ KjtQ== X-Gm-Message-State: AC+VfDxlAZuy9jWuspJ354CCErCCVn6ydjiwdPdMh/TWOh8G516VgalF te5rY+Ow2AmonnT2bUGMLTLXkA== X-Google-Smtp-Source: ACHHUZ77QznaSKTOxUniU+ofsuaOVvEBwnEahJwvt9I8exZIRYa7o7wYFzGK+enMy1u1bh5l88rW+w== X-Received: by 2002:a17:902:c20d:b0:1b5:253f:d05f with SMTP id 13-20020a170902c20d00b001b5253fd05fmr279675pll.29.1686834647381; Thu, 15 Jun 2023 06:10:47 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.249]) by smtp.gmail.com with ESMTPSA id x1-20020a170902b40100b001a804b16e38sm14036019plr.150.2023.06.15.06.10.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 15 Jun 2023 06:10:46 -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 6/8] maple_tree: update mt_validate() Date: Thu, 15 Jun 2023 21:08:57 +0800 Message-Id: <20230615130859.21858-7-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230615130859.21858-1-zhangpeng.00@bytedance.com> References: <20230615130859.21858-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: xezukijd138mdbupd8coze3xc46q5ykx X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: C03D680022 X-HE-Tag: 1686834648-714063 X-HE-Meta: U2FsdGVkX1+YX9S7+DbPYiQ6Z/NCcDMfeuiXy+yTfb5EGxBJ0K6WYBpIkDpEGobukImn5phb396lZJnv351gPHPJhi4j641Ty2QGQ5ODffrm6VkQtS83h5ZcKUpgD+qVoDUutVGfa+yJCMup4MEIJbFQuQ0kWXeMHoXLgVGAxN/utqGdFdGl9Z1BCEZ66wxjgDRP70dBSFZDMgIrWkzsun1onVs1LrPGrhIJqb8SzXkhxKDeYcWMFJLZKdO/1Kly8ka14gH32b9qG2jhCZZujPO54HfNZfMPkoyfm0QtOw5/3a+I4LmB1RFGsHoh3jlssSjKZtP4+/NzdEa9Q/TDmb5iix41vdS+uHc04NzITA3b16klsNd1ewZz2t13QoRVE5kjUZCMHgffalx+CkELdaA7BfqZp9tPg7lKzzPCoq0hyqDP2E9cqLOCJsyHUbmcjNJDjBNKSm0cW9tkiYgqrKu59QRK6+Vlbp4Tn/iUOERfp211MMPj9tz0OTimUeEQt8+EbKPgKf6WF9a1Gw0qvxEFkJn9JnSpYWGvgebcZ6sFfJliyQ84jRzlYXS1A/XpBvmIbh3HexBmfEMJljrMXizd43Ibjv0HfyDduS45nEQo9ie9tiW3aXL+4gsq1bFkckf5TbeKMuWuY9vwgGwvpZzBZQk4L9uwR58jic0E3pNN4FR68v52Zss43FxqLThj8kPAx/GSSJfG3/3Tpl4w1Y4CRBggIVxSxbnV1Kbnlp15I/vVqYrbJaPXv+oEOf75qYrcG8K4Ba6bZsJH69xJJvidE1B4P7w9Vj/h2W+7sbMankPbAOaZp5vRgucaCF1cvQOsvLL2n6800sotpBYHuRHgKCMn20n/gx5pebPMOg0mNZCbc14uayP5CFYDnlAVPsLbw0KWARzCy6o6SvE9fsHPfSnUoRWzV0U9yPQu4n7nxRDLeuVitULaM/VpRAFXCKdUlxujCwPJr09B3td qGYZkamA xdkV5IS1ojzTJrsaC04rCV958hVeRJPVlMNhyvuPz2YI+d8FLhu36fTVTYqw/kERHfRDKwQQbEXC+TEetSDKQdTEWTCOwQKCqv2cO7ZzW+LJ1nLAsNyG/hri8znYx8mjuzIT0WULdDvLOTThmLHa9bY8M20EggW/uuRoOwz9vugP+H9ctA9ggjryPW1PKDGrbVZ7Ymbp/ZF1t+206opexJ6FiKvStMqpfVKjmgJwM7I30DbylIWxepirJ4/67phI+/nv3/PAArhaRdH90ZHtCiBjstSGbff2ZAzaxuSbkJ6Aj93ulgB5GbpL4V46qr2KHJ/YwBAORNl2MEOgfJMqoKryW8ArCnkEH/aCuuCugow1CedLjpu7vJjsxX5KZF6Xne1/lQHpDZPRRq9Xx5RLkcSOvtERz4qVyq+M7huvwC5PiK1TA9oclLZxBHx5c4xfmdhpqpyfKnhr/UcU= 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: Instead of using mas_first_entry() to find the leftmost leaf, use a simple loop instead. Remove an unneeded check for root node. To make the error message more accurate, check pivots first and then slots, because checking slots depend on the node limit pivot to break the loop. Signed-off-by: Peng Zhang --- lib/maple_tree.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 6c9b62e41605..becb4c224e57 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -7256,21 +7256,22 @@ void mt_validate(struct maple_tree *mt) if (!mas_searchable(&mas)) goto done; - mas_first_entry(&mas, mas_mn(&mas), ULONG_MAX, mte_node_type(mas.node)); + while (!mte_is_leaf(mas.node)) + mas_descend(&mas); + while (!mas_is_none(&mas)) { MAS_WARN_ON(&mas, mte_dead_node(mas.node)); - if (!mte_is_root(mas.node)) { - end = mas_data_end(&mas); - if (MAS_WARN_ON(&mas, - (end < mt_min_slot_count(mas.node)) && - (mas.max != ULONG_MAX))) { - pr_err("Invalid size %u of %p\n", end, - mas_mn(&mas)); - } + end = mas_data_end(&mas); + if (MAS_WARN_ON(&mas, + (end < mt_min_slot_count(mas.node)) && + (mas.max != ULONG_MAX))) { + pr_err("Invalid size %u of %p\n", end, + mas_mn(&mas)); } + mas_validate_parent_slot(&mas); - mas_validate_child_slot(&mas); mas_validate_limits(&mas); + mas_validate_child_slot(&mas); if (mt_is_alloc(mt)) mas_validate_gaps(&mas); mas_dfs_postorder(&mas, ULONG_MAX);