From mboxrd@z Thu Jan 1 00:00:00 1970 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 ECD7AEB64DC for ; Tue, 11 Jul 2023 03:55:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 889128E0008; Mon, 10 Jul 2023 23:55:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 838C88E0002; Mon, 10 Jul 2023 23:55:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6DA218E0008; Mon, 10 Jul 2023 23:55:19 -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 5CFA48E0002 for ; Mon, 10 Jul 2023 23:55:19 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 24ADDA0301 for ; Tue, 11 Jul 2023 03:55:19 +0000 (UTC) X-FDA: 80997965958.15.A13E3E4 Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by imf26.hostedemail.com (Postfix) with ESMTP id 4F99214000F for ; Tue, 11 Jul 2023 03:55:17 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LSWgQLIm; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf26.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.219.42 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=1689047717; 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=VB6Zk8yx2k+1HDLx/vyMhcB3cYhsChcAv55Bv4rEWns=; b=a1UXppfJXCV2SHVPoIFQ8xkTlpbOxERexfqN4SbDy42qz/PUCKuclIzzZo6DDQxM5e3pfG 2feD9Va+vR4KSe7egE0rTHXoHu8SUiDezJRWJS1V3CW8kL5Dfs5TFboCtkmGIGwQOqSyFK imTfbp6WJjyH0UOVzcDrfEIY6IacRJA= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LSWgQLIm; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf26.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.219.42 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689047717; a=rsa-sha256; cv=none; b=XIVYolZmXaG9aZqX0tDoSuvsdqK39h77XHgC7WUBwUEYOGYtalqubEGdbzIhmVS0tFdZoF spoLFicdj8WdRJTDVG9wTWz82JBEsYL5OV+hk+InlmG9IzIJOwWXYPfDECHdBETWQiECgb 9jVPpT9XtmN/KxiuCyKeGdeyQ1U4BrM= Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-63770af327fso35891386d6.2 for ; Mon, 10 Jul 2023 20:55:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1689047716; x=1691639716; 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=VB6Zk8yx2k+1HDLx/vyMhcB3cYhsChcAv55Bv4rEWns=; b=LSWgQLIm1PFWUmQi+43SqOstxpJoc3S5KiF0uBqZBj+yhFOyw31mF12pOmarXSQTwl ftLznRUeQW71nK3PQ10DqNTXANC+OzuxYtBuC6dEParOiiStsUCAqTUuuFV87HYUI7ju uOT3WQoFhn8iH8thH0rnasi0ozRlnz9v4G5nx3FuT0HEGBIojQ/P+EgU7XeHHOcdTwEh rl+muaqKcxNVqi50mRjNkFJGUYhKZNbiZ5e5AgdmWuRmWeKMzDDYIM9TwleGcI9Tyy4U r/iL1UYkK2+O5mX+8p+GRA3Z6xTt3Qt+4LVhqHd9F8RAsfoU1ZlSZcV1hsh0tp7hekj6 kCDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689047716; x=1691639716; 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=VB6Zk8yx2k+1HDLx/vyMhcB3cYhsChcAv55Bv4rEWns=; b=fwvWERiw86dYEVhoWJWbYoK4/vAd4wpyjjHu2WnzQD5vbSoiR5eR5+DAbawe27bk7q NUEAbJOxHdBpStGCdpToDhXXGupanhdqEPyJZUyDQJQK3YsqMJTkGwpmrfQ12hq+JoPD mPyYCs6rEMdV1rjT9GNvMUf6XlpKkG5XZexDng81KEn74UOZjBhlz3hTvFSRupYQQgav A8IIf6TRaFvIx7gnz5fQwH73X7ESkzWFNONddwbR+ILapYzYCgzw4ZL7wWxwkR9acSYO f2x+C6qVe+NJbiNUCVRyak6SVuiGJUv0YHkK7ap3SPYuI5aDrSn6nc5FX16BXw0uZzIe IKMw== X-Gm-Message-State: ABy/qLabMUIXMhQMayzAvLqvZelZbk2wAVMO37uCS8vbz3l7rJn6+23Z 7ZuD8PwRoahOGMvJ9TN8tWMTZw== X-Google-Smtp-Source: APBJJlEnW9Zfp2okquSeGO/JAFM7vrs2pnSVclOfwaHYw3+NqS7kqVlvETzZeA0RLZFxlJazP5po8w== X-Received: by 2002:a0c:e28c:0:b0:635:de52:8385 with SMTP id r12-20020a0ce28c000000b00635de528385mr13630151qvl.65.1689047716426; Mon, 10 Jul 2023 20:55:16 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.243]) by smtp.gmail.com with ESMTPSA id b15-20020a170903228f00b001b872c17535sm688329plh.13.2023.07.10.20.55.13 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 10 Jul 2023 20:55:16 -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 6/8] maple_tree: update mt_validate() Date: Tue, 11 Jul 2023 11:54:42 +0800 Message-Id: <20230711035444.526-7-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230711035444.526-1-zhangpeng.00@bytedance.com> References: <20230711035444.526-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4F99214000F X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: yzgiqhy6kxzm5hrt88xofs7pwd6bs3ir X-HE-Tag: 1689047717-512567 X-HE-Meta: U2FsdGVkX1+zj4dGiX241fgcQ9gWGvReySjE9VU3Zv6Aomem54TvlYKrgIZ+0MIPZ1bLLs4FHC6qjM6XBO68jKgWb83HW9ssXbr5XReXLpFLkKyEkTQ9fEnNEOHYJfAeJPCHVIdZQKChCE097UOswcnipdRHk4jVAJuf75ToJJJqjtW+Ruc46TLQMzVxtTOz+pxa33uf5OjkBaI8S6pkr4fC6+iA8PuseOyUG57I7q/vnVlP/AVJLlAqWemw0hOoOsjopqfQ5ZsByg51oGOR0AONXVzys6nf8YvZlv3WQcxuH/iyQHq1BsIe927FPkI8cahp/zvQ1+Az9B1GWCDPrX+FzKVnFUOVD0/oR4YHrXcYljefz76cb1CaYxT0FYG7rGI6ke9G9WkXT5PpaxDvbTEQOfeeNh4zFtWOkJvWU6e3fiZNX0jzwyuPJiLn3s2U0riI9JEI+qXs14z+z6m71byFazIMCwt6JnKxAtx5nXfV7BXrOi6K2UP81/WWkEPvxuktDk/y2aYeZWAIRhshoi4f0kFANc9yfZp/Bdg6BAPxCuA7JY/EfWfzCLp1G6lvab3FNssLsgbC5uPgV3k4uiLvgWVX1lpFgGaEe5pwV1JGVvk+2+jvtqUgaaxQlIST2UcNjFfWoRqXt9Z82BvNPeELwIoaIYxpsiZ9viySV7TnI/9qWdOED6a+z+5clis1LRJWJVsBPsNKwdn3EwiTHMjkIHSGQoC+v2jUMetJrFnWx9klp+f9wGg5M6RHXckKuW7zbWR1hJOPgeT4KjQ9vhTLPIyDvJ5AgFYh7xam3sq8l6ke0jpFdvOcLbgPwx5FI5CfMIfAVm6Ht0tdJRl3DArN8xeL+HCkRn/aOlc1hU4F5WSDirIheVHKLugNCMhWPU5H854CD5osCZcl6biRLou7eAN5c2gJ8OhTibUyQv2/SFvgedRk3ROz0IrCQerfE5vJwo6wqrWcViEeu3z 0Wr8agL2 2M3md5JboAdFlDl/NHAL1chqutO8Q0+umNIlYt2JY3oU18RfZOEIx3Kal6cCP51Nl5VwiX2oAHMrhoKRCYAMwFLzC5pKW9OnSanV5a85xy6PkP0p0sU0paShPDutZlsJWSnZUyd43kZCCjrxVjr/itKOU5lrnx+EdS+MTcaYfYCycP4AfrM+3jdbpa/BtfwQjHeJ1KKja09vEEFPe+Rwu0J6ajVZzBq7197xgiL4xRQ59MzSslNcWHNn/4piKW1Ypndj3x8I7ewxH+JQJxbV5Qls2VHZAgPBDtp5APdPWV0aOoCik1sQDyBEobQVF7IRmyLRkG2O37EskN/MfdaPA3Op/juf1q/Uw9wdYs05axGSYm9y6HA/s/hp5gkhVQkClLTVAhHoJIpiVU/An8gcXbx+zVJiWJJhfMlh5Itmwb4OuRtC1yhEpYl6nVSA62miT6searU6+d5jjnRE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.002836, 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 | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 072532fa18ee..1ad11799e197 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -7270,21 +7270,20 @@ 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); -- 2.20.1