From patchwork Fri Jul 7 10:10:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13304704 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 BEFF5EB64DA for ; Fri, 7 Jul 2023 10:11:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 596D88D0009; Fri, 7 Jul 2023 06:11:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 546108D0001; Fri, 7 Jul 2023 06:11:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 40E538D0009; Fri, 7 Jul 2023 06:11:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 333F38D0001 for ; Fri, 7 Jul 2023 06:11:33 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id F31C9140D11 for ; Fri, 7 Jul 2023 10:11:32 +0000 (UTC) X-FDA: 80984398824.16.00A71A3 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) by imf29.hostedemail.com (Postfix) with ESMTP id 109DD120016 for ; Fri, 7 Jul 2023 10:11:30 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=B8xF1e++; spf=pass (imf29.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.180 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=1688724691; 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=gEWeKyXLPJ0PG2fEoqETtxFILv9OUYojo6yQ5hMHc4U=; b=2jiyX7d9z2tXdx3jmxalofUX1wygBMK6ID8SYobchXTWJ09L7LZHTnsvmJhisXbvjzT9q9 noDI3gWfeBh5EqwpwAJEqmhueHyY8xK83cJqwW2ysyvvB6vWpcIDC/b96+RdsfTDE/IoVL VAVgfGbjeEXHBJYRZaIM4GFj+daIOb0= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=B8xF1e++; spf=pass (imf29.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.180 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=1688724691; a=rsa-sha256; cv=none; b=AZB2l9wfVz/V26Mf/yjVpf2PKqyk+LhxMb6ZB20jItEi309APC4/VxWl9UFVrcPYw/8dlB XOnXFk7dC9cxIuVd01wvFak5FpcNJ4Vy6XMfPrUVzIGckB7vLXkg0CuQ6CqOMujbXdV2oQ 4Zzj+VzXgpNzNYtU31Q+JjkSEy53im0= Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-66872d4a141so1314880b3a.1 for ; Fri, 07 Jul 2023 03:11:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1688724689; x=1691316689; 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=gEWeKyXLPJ0PG2fEoqETtxFILv9OUYojo6yQ5hMHc4U=; b=B8xF1e++nc2JK5igG1lRrToeULOMcAypzITpfCyb3DCd4SKc70mSmGIhGIi/STBaBr gBsxzOdvx9mkBv/Ex6hKK5zFJLPo95GXk/dAhn3EvyNMXS4KXlpYbQAoQ9fjheogI6Bd u+/ETK4yU9jnqi6x5oy7p3rJOucDfsIw8f6c5CvVIesOTy+HlQ+llHxs1OrSz0U264RF R1pkWyCFzpZSWlkDZcJgTmZtvNoALV4dfXycYb71T5oLvbJxWn8lWTG2UxBThp9YYMd2 Y/sZsvhpeX4GTDWL0T5EOc5HamZodxSPwyC07+vfSEzCLmJCLFRA+UFBnLZti3OkntdU i1qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688724689; x=1691316689; 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=gEWeKyXLPJ0PG2fEoqETtxFILv9OUYojo6yQ5hMHc4U=; b=VDhhkLc7K0nOQ7CK+qV1WyV5tMjqACHBOvCE5WjmJtuBQcectvdb7cikegDu3uO32Z mjeR4wf6IIIp5t4Y3eHGdTJcISCHbnA7obZ1f4enfYzu2/+7sgz4Gw6v/IWm79XAvxaC Zgwozb4WsHZPlde3PmW0f0UFUL5L0vCZKEwJFwhO8aVHy0bWM6NRS9cbltHfxrhWuo4l eZ0aAZTNsywGuiIGq49ELJLJGWlJQmWmXmHlHKL8bwFp7vjZKKpyK/w7zgypBTC4Dp/X oubM0XwV2M2/uQpgCUPclNYbRELlCL8ii+i2jHSjzIVRJ+abn5oAykJMJEJtvWH81dWm 2vKQ== X-Gm-Message-State: ABy/qLZ6n02kTtee4KmomaW4UdaS/46llnt1rJngnlAREOICxq/iWav0 uPvqQ5LJ7ianYJZNg6cgbKtreA== X-Google-Smtp-Source: APBJJlFWSdBdYSs8R5cKFkzoi15V1LLf8Zsq8gk3QkxoL0LpEY7Lxuhz5qgh7k49XyEoJowJcAMYbA== X-Received: by 2002:a05:6a00:1acd:b0:678:5629:fd43 with SMTP id f13-20020a056a001acd00b006785629fd43mr4104877pfv.9.1688724689568; Fri, 07 Jul 2023 03:11:29 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([203.208.167.147]) by smtp.gmail.com with ESMTPSA id x11-20020a056a00270b00b0068288aaf23esm2602549pfv.100.2023.07.07.03.11.27 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 07 Jul 2023 03:11:29 -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: [RESEND PATCH 6/8] maple_tree: update mt_validate() Date: Fri, 7 Jul 2023 18:10:55 +0800 Message-Id: <20230707101057.29326-7-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230707101057.29326-1-zhangpeng.00@bytedance.com> References: <20230707101057.29326-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 109DD120016 X-Rspam-User: X-Stat-Signature: t5a3y3epb7oxr5n3fibk7go8puyzfr7h X-Rspamd-Server: rspam01 X-HE-Tag: 1688724690-775918 X-HE-Meta: U2FsdGVkX1+THfy9lwvPuUv4p+aPYtGiubyzDVDdk0nVf24eyXm86k4YW8RcAE+QB2lLxuEE5twBrHWuf8boBf/15yT70Wz4rip+EcABViqBGvmfm+G8BSvUWwIiyusJzwda6EehhEpqYo1OIyWO1h0KnfZRlpCcQ7j/DonT2Ql0D8vWIQZzvxl1NRa5OxQknuI40MUAx9PzqCHSVOUi+saa4zr1/ixHpzMZKTWxy9J6NDM0NwYTGcE2mdVucdNsgUVxswNasHgsTadKq4PsYkPJF90MyQASVgAiUNli/yLoBRGEhtMpX0DjSdOcgk33ev8EyrrwHboRHi7UQjm4PBbvluFtt6c4Su72XBDPWLOUNrB30Pn6LucdpFnAXQaEdP2dETxrhmf+G7w3+7JYKYDUSwtxqT60+BQiHDFKmbCjhU22qQregKRVK2y2WnsqF22K/Dw2z3m7ccPBuRSCAJCl3WuS0bhcbM2jdWTHk2bOLCwtQud7eXNQmGJ9uFMDLkLE23lBwbRoTEhxLraS+r1X/Do5JgvaAOEpwTxSsvDCwscmY7+wx1cfjMRmdAVt+bW8bom0xRG5UtyrP6IMNS5ube/98kVz8s8BV741GVd9Xba6rV4QCYxlC7F8d9K6z63z5gow74APJAvlfmcI8V3XbnzMauHkvPXeoKyPPqG1RqdKzKALc7VV8UIzzsxKNCkB4tLTllawUYnP84Asx6Mqx9WbXeIQR3ltSxEuEsPE89zE8B9rCSeQbose47/jE0m5hLqkzKV4pnnEvl5D9jue8ERI7QB+aYD8pn0mWqGl/rxNfkaHk75P22EREKOwwLaOWwaIDo1TCdVfZwpPbJiqYm2EqzYpTMbkTcJgRKzav/XzCJT3SnRpG9Km5gzF8bHO6XY447dR+XMVl0gXWnEvZNLHOABFJhS+h5KkJ3RsID+Al13TUD5N8qvc6Ny1IyQ7eQ3vo0EkAhgZKVE d+hWfbZ4 9wipanCD2Y89MyY6lWzIR8TJuGD96s0EtkTWjrA9I/O/8fR7YUDCmH8Jfhv1LvV1Tbp00Hg8xhMc+rVaIvzTdk/54PwIKIuhsXzqJTFJT4O6UiNnrivq4ApZzZm/uAUkPaFHH+mI0EF9CWhXRsBHP9TiIQCUZ8s5KwpB/cDWLSqbsZHhuou0utCkdTdcOw7FUGkMs7n66sf6aFr9beWYqYZJxi1nDjadSvQ2Dr2JGC9FIV/qBhFAkVBiTRsApVb+lxjKWVS8c4dJNU2wGF2y/Ty9KNdVE9dpbARzRt4Wch1re/oeUNfqWc9Da4EoazoTmlnDilsZNdeT1+v2XrsaXLeauPbgyAvgVcVhp/wfqPcnp73TUmxRRYQwO8yPcPVPh3pN78zdkiJCpP0Ygwh/3XIyQTcMaNbz40R3K97d1CS/BI8H5nzW0ccc6BJHbvncB6e0xq6KJX/z/IrUVH0Qktxn1sg== 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 e84a042b6d84..3aede7deaa26 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -7260,21 +7260,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);