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 7C648EB64D9 for ; Mon, 10 Jul 2023 09:47:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0CEE86B0082; Mon, 10 Jul 2023 05:47:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 07FF16B0083; Mon, 10 Jul 2023 05:47:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E8A396B0085; Mon, 10 Jul 2023 05:47:35 -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 D9DC16B0082 for ; Mon, 10 Jul 2023 05:47:35 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id A4F38140315 for ; Mon, 10 Jul 2023 09:47:35 +0000 (UTC) X-FDA: 80995224870.26.456EFE9 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by imf21.hostedemail.com (Postfix) with ESMTP id 1889F1C000D for ; Mon, 10 Jul 2023 09:47:32 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=chWhcN2s; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf21.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.174 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=1688982453; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=CPkF6Xq3Ksijok8XA9MFZkl+XulMiyDQGCTonazggUI=; b=hWS1I8YO/KTL1iQSbeZNVihtRh6+8wqUEi3fZzhOYVuVZKowgtPVRdHuvRMdLETIFDLcBO YkAh7LLdDuiT6c0VVkbzlYkojicZhzdfMPoUtX4613t9KFd74aJ+40pSNcwiDOXkQQcVe9 /j4oVdo00GQZbOUSTa/zulrhgIK7rTc= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=chWhcN2s; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf21.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688982453; a=rsa-sha256; cv=none; b=6rZ85MTjhZ2ugs55SH7Su9dWWmufohXOQzqQVvIHnF7KVShG8lcWBJzHSWLC/9CcdKXPZw YXXy/LGvhpkd0zeHFuvvSW3p/Dh8Ys1kzxP7iguSuITjgMXVak9hbHscmA1QnhaH9BHyKC uIx/ZWLROFfNXiviT7J5AZuDNgF0yBM= Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-666eec46206so3714976b3a.3 for ; Mon, 10 Jul 2023 02:47:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1688982452; x=1691574452; h=content-transfer-encoding:in-reply-to:from:cc:references:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=CPkF6Xq3Ksijok8XA9MFZkl+XulMiyDQGCTonazggUI=; b=chWhcN2sCCKyIM62U4NNuyElv0S591nGVkHfn7ERn5edStuEQ2czSUcv1RhSdMYq8p PCMNK6flxO4+nZu7UdNmgnTg8EKiHOYOw8QCqMDxf5IHg+j7MnIGBl4k06eVXpcSRe/k D++cWj7qdgTU1H37SOkwVY4mnMrI7ZZf31TF7M36BFH/B5X88gSTcWTkJngI6OYiRAxe W3JuV1IjNeClf95lwsFZgNcLvuyXmUj/XOKfssb9Z4CHdyyMa2IK2DWyzVD4igwx5Rv+ NONFBIAE9h2+TA8ZwMbj+5UGvRsVExbwXCkucEsf3HacYgBFkwUJ7BQo0PhFWqeIjItX DcMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688982452; x=1691574452; h=content-transfer-encoding:in-reply-to:from:cc:references:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=CPkF6Xq3Ksijok8XA9MFZkl+XulMiyDQGCTonazggUI=; b=Di1i6B1ryNi000oYW3+4F/nL3tR9KYRzbolPyzimQYBUy01clG6QWOz7tEMWO+joRe ajKw7/yfsEoEjioRCV1+XhcMWZ9Yc6h/ku1bH+jhX3VFUYzo7pQtC2kYvtO32phqd+wK 5wwzjoYMZVhkJZ5QEzz4LVneGJzyT0rqEBa/aqqnUFhmPNPttwIv1iq5AJn3WIyWUAnX d7MoeIOqLuef1eLdlzS7Wh0/B2kVfpFGpQcrxvuwl8MDu4VbJLj5zcvoF7+OGiuncV9g BAZt+Fe7mB17X1owMuo46Q/fnFuaimJP+7b46fmUzlJEoj1/I8jQ9r9ddUiU9iCWcwJQ AolQ== X-Gm-Message-State: ABy/qLaZVgZSk1DUt4npyJoOiU5AupyyJbIj0QNA3vVTddTTkUYvWGyJ 3Pmh7pum3xaBHGLUAfSrXQ41fQ== X-Google-Smtp-Source: APBJJlEwo2b8KRHKhBXpmIt5ZbfZfUN8PfLA2p0hJW3qVCx5qBfqz8w0fmkSjNdKFGJjSMvo+LlV/g== X-Received: by 2002:a05:6a20:1589:b0:12c:6268:cd31 with SMTP id h9-20020a056a20158900b0012c6268cd31mr15162952pzj.47.1688982451780; Mon, 10 Jul 2023 02:47:31 -0700 (PDT) Received: from [10.90.35.114] ([203.208.167.147]) by smtp.gmail.com with ESMTPSA id jc3-20020a17090325c300b001b03f208323sm7812883plb.64.2023.07.10.02.47.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Jul 2023 02:47:31 -0700 (PDT) Message-ID: <217a8c6b-a4d9-dba3-5a31-6f69414e0c46@bytedance.com> Date: Mon, 10 Jul 2023 17:47:27 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [RESEND PATCH 6/8] maple_tree: update mt_validate() To: "Liam R. Howlett" References: <20230707101057.29326-1-zhangpeng.00@bytedance.com> <20230707101057.29326-7-zhangpeng.00@bytedance.com> <20230707150217.2ppiuemszsd5okfa@revolver> Cc: Peng Zhang , akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, maple-tree@lists.infradead.org From: Peng Zhang In-Reply-To: <20230707150217.2ppiuemszsd5okfa@revolver> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: ahapmsw5rmncwhskgn13jfghrpi5zdp9 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 1889F1C000D X-HE-Tag: 1688982452-138173 X-HE-Meta: U2FsdGVkX19ywhk4XzNsUZ0Aafha2uJC5FjcZL8N1SJ2umm7A+zquEqCJ0s73vWEI62iwhAxjflEO2bHXCUz91+1urZbDjPst0ogARb8RSvvi6tc+GQuMTYLFKzKAGPH8TnH1cUicyUXzQC/jrcmcuNjh3HXAlK87flvZ77/uWDABbVxS/kQFkNIkpFr/lTtgdfhW/C/7gY67LJftiOF4MtHKYFLXzBVsHRtKDwfZb6PS9oD/oZMBPXSTi09gqv9DogBCZsXBn8Qt6LLxbuuEsCT9Qhszfm1dgquVL3qg9KSBu9e1yLT622kZEV4uItSpjBkA2RDuE3d7YTk+3SDcQ2N7FQjNbmjG5BH+lI2W7k9pK6vgdi8dTG+hpwbPU4bbYu0AQZc02vmf1fIW/P7xVI8q259sg7Vb8Zp1R6M3OAK6mXaU5l4C2XBtQUuWH5qtp4PfvwuQvaAcgAGYwYZuIVw3hseJSFkrkZA7GwCAo0hnm/uHUsosRjebnMV2TYRqQmOE1Nhql1F10YM974zcNP15JZB16dQ5hIfI+XNOTuU8yBKFqACOSdC1dm5HhnPPQtsUzjMb6Ud+/iKs3A/uGDMKuVxF1Ctvqor6PWuJHv9JiM24SRQtRH8Ttba+6xNVfoS5jxKRQfTYDuuylrAXmn5nPz8dleSeZgndk7q+NDmndSob64Of223SRR/x/tmy4x8Uh1pzmvj4IzS+7zIkIx+DrKmyyl69t5VoDVAgQTKeib3n8pTQboW9y+NZ6H0FPCiciEZrc5XMvEgXsv4Wy5molUWmzOc6oSEujKTHI0etuwrS3Vpz4BTMfoKZH3r4ssm3mEu59teaPjimtJuuFJ2eL3GLrl+lMG8IV2xaPKRa+8YWn/3mc6JpQ7BAw4p+4Ct5dqslFX5+N/cIBDLr0QsY11lklOGUvq6H84dajfRtOxAApCN3lMau5RYnS+wgIwQ69/JxiMJ8IarRdT voiOYxC0 f30vu9b6QSw7sPuvIx0TAAR14KAk++OLz58q3euY66mA1pMYHWGmYBLuWe/CI9stnSpEgsh/VNwj5U9VLS5nDMcm3DrUfx3aQta0CbtZz8z8nO9GFXXoKlha/mu3sNTvajT/FbGJNM0EgqJJXgC/+Q9NSyTm43K/T+aoXEhN43blGgl7I6xCnZYhxW51taoa5b2j7X54BJRTgkhcKsFaJVgrHVGebNzwc5N42OfysV+rQ5rAXQ8o83YTtXtE9qpqlxpTLTSa+l8yIz/k1VPY2XRUwCE55UrWgjaqrnAvqMUumMVWifusToVfHLwxWpHCED/3KiiDvo1a+r2WlpIi6LORFCjxOsbKKg2kbl7TW4WCdkyJhZ6z2dlFjNDpHjg+KFlhSuWCsOVdy4TH5dteC+YDPj4YvE7QY2gJ5LIol5Lh7u2+Vmcl8niuj5GgNfr2pxPBOUloogYQSJCAE72hcuH4k92KprjofRTMDzD5GAZe+305UHms1C/uofoWWS6hTKYeN 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: 在 2023/7/7 23:02, Liam R. Howlett 写道: > * Peng Zhang [230707 06:11]: >> 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))) { > > This line can be reformatted now that it is not as nested. > >> + pr_err("Invalid size %u of %p\n", end, >> + mas_mn(&mas)); > > Ditto here. Thanks, I'll reformat it. > >> } >> + >> 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 >> >>