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 1BF0CC83030 for ; Thu, 3 Jul 2025 06:33:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5D7CB6B00FA; Thu, 3 Jul 2025 02:33:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 588906B00FB; Thu, 3 Jul 2025 02:33:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 49EE06B00FC; Thu, 3 Jul 2025 02:33:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 360146B00FA for ; Thu, 3 Jul 2025 02:33:48 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D780D1D6A97 for ; Thu, 3 Jul 2025 06:33:47 +0000 (UTC) X-FDA: 83621987694.22.AEEE85E Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf21.hostedemail.com (Postfix) with ESMTP id 5DD571C0002 for ; Thu, 3 Jul 2025 06:33:46 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf21.hostedemail.com: domain of dev.jain@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=dev.jain@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751524426; a=rsa-sha256; cv=none; b=C7cYfdm6sYc8UY8v8YuZpE5A/H9bU7+608JsBop/YuR0YoyBP1kt4NWg9gdE62mLvNaKfD PI/RmFHCEVZn9eYaGal95d8UOcLW6TkBlUbpz6z+KQjttchFvBjw8vm0vPUIBOkTiQwqX/ 2gvB1CS1KUR8G9ALKhdJwe6Vo/WP22E= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf21.hostedemail.com: domain of dev.jain@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=dev.jain@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751524426; 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:references; bh=J4V+kNuZYA+hC1G5RktSapfv26gP6Ca3FuA4DetV17o=; b=SppAQjKNiUhPyXsSPzwpt97N9C5lea1tqvv+V0dWOfHmN0wiWLF78QkvapoOXzWX74K/vV FjElvCVZzcA8qfBzPWT5ocm3fapXAGR1C/KjcAfWFH9BuTERl72QtOOewnFkWIyLxvNDh5 nrnXMOfMNMAfZA6FsVsfuiqEJaBFJdE= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 11F8E150C; Wed, 2 Jul 2025 23:33:31 -0700 (PDT) Received: from MacBook-Pro.blr.arm.com (MacBook-Pro.blr.arm.com [10.164.18.46]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 29CDE3F58B; Wed, 2 Jul 2025 23:33:42 -0700 (PDT) From: Dev Jain To: akpm@linux-foundation.org, Liam.Howlett@oracle.com Cc: richard.weiyang@gmail.com, maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Dev Jain Subject: [PATCH v2] maple tree: Add some comments Date: Thu, 3 Jul 2025 12:03:38 +0530 Message-Id: <20250703063338.51509-1-dev.jain@arm.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 5DD571C0002 X-Stat-Signature: zbopbua7wx1pya8zboezpoarhfromb99 X-HE-Tag: 1751524426-506331 X-HE-Meta: U2FsdGVkX18S4VYTtgzqcW9GzjVPuEIIoAIYcRY6HmNf1mqJevO/NmPrhQ9xaYeSRtCNMfm3REAWOz4vHfUmxEQxP8rXwlOTrrc14MOYhQLCdjWFwEBz7CgQbHAZCg75pTMFExhQ1ti+y91Dc+J2cExzGyKjbU+82le+6+NahjwqFjbLWI2El5UZnzFHzsoSdQbiJJ8UpoRbArnusTa5FdyICFqlHJvuvojQLmm9VIbKZ3fh7um1cDyqS0BXm4ers0Fc0r8wunDjVvRjD6jbg3j0AuKERJ92RQHFN+AhDQQlEPZ38hZ6ep1cjucQvfVwapP90xV9+EJp+apq8BtpFzE466fda1Hcp0RPwCoN8GFTJr30vTq3RWaU9dBB+TU0RY5Z++krcvjkhMAZHxjW2dMCm1HEGYut3REXl2DeWFjHo0AiVlTIUldBnO78pPZYlRrPkOWx9425Eug5l0QReYtJDef6XcYCwzwkA1VaYuzmf/A/E/bjexWrp2hiFn8Mruwwtt6j6Iv1FXhkHuN8lH1CCbfVYz7EkegQIo9WYUvWZVsviBAVfIlyu7Mp7qdTJkoxi/enKFOnkSjBPMrUPNvAcKyJbcs5JZS8BV4a//CRYwLypVZ/XnXf3hmp7qmIC1Ii4tXmRz9QcnenbqKoJDYPr4qeZyFBPp5O9btYXotRfXWlj4ZKKebRk5IR4SsU7hko3BbchQ7kA+sIF9c09/JhgTfQfo4QlsyMpV1YrRhdE5BCHqvwQ0qSpxEgkufBaY/ssOUuxMjG0i1b8biNJpmC6NTO8O/0eYioTooDJjPNAgxe94qC89NlsTXF1bSegOUesaJUo6Hzp5rd7u5AYMRnWgBR61afLXYQrBMJiPZMXdCNTQYg2ji49sNwNJEKefJ+bATGpcbY4/FyfZP/zO7L22Ypc0IPgW+MvnnV4b0glcRxMF9JJFeh8dEbH1vlXOQ1/2SCdQ4l5oDV+D8 nOR2UoTn KTdAZkC4kMOJDvw6vhF8K2OMLjpII6GPLexYki+85XO4KxizfHE8aatbmYMVgHkCCC52IjBqRcGED5ieYIafnq56sgV8I+7mN57cgdhFKVaKkpu/Tc1n9SmFpHd7muq+MlhPbMOMDyNiyq4Q0qdhIcnqH4MmOfRVvHU3yZzeENST69pi0ZzBD3KuWReUgKoCWPBvhNnkDb6dQv1IUfYjr0zE/ElcPSSKu7gtMRZeOdYnlP3sTHt5DokCguh1w/Xuv1gaxXEPzon8QeN8L/aiNLGBuHA== 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: List-Subscribe: List-Unsubscribe: Add comments explaining the fields for maple_metadata, since "end" is ambiguous and "gap" can be confused as the largest gap, whereas it is actually the offset of the largest gap. Add comment for mas_ascend() to explain, whose min and max we are trying to find. Explain that, for example, if we are already on offset zero, then the parent min is mas->min, otherwise we need to walk up to find the implied pivot min. Signed-off-by: Dev Jain --- v1->v2: - Drop MAPLE_ROOT_NODE comment modification v1: - https://lore.kernel.org/all/20250626171918.17261-2-dev.jain@arm.com/ include/linux/maple_tree.h | 4 ++-- lib/maple_tree.c | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 9ef129038224..bafe143b1f78 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -75,8 +75,8 @@ * searching for gaps or any other code that needs to find the end of the data. */ struct maple_metadata { - unsigned char end; - unsigned char gap; + unsigned char end; /* end of data */ + unsigned char gap; /* offset of largest gap */ }; /* diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 0e85e92c5375..b4ee2d29d7a9 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1053,7 +1053,7 @@ static inline void mte_set_gap(const struct maple_enode *mn, * mas_ascend() - Walk up a level of the tree. * @mas: The maple state * - * Sets the @mas->max and @mas->min to the correct values when walking up. This + * Sets the @mas->max and @mas->min for the parent node of mas->node. This * may cause several levels of walking up to find the correct min and max. * May find a dead node which will cause a premature return. * Return: 1 on dead node, 0 otherwise @@ -1098,6 +1098,12 @@ static int mas_ascend(struct ma_state *mas) min = 0; max = ULONG_MAX; + + /* + * !mas->offset implies that parent node min == mas->min. + * mas->offset > 0 implies that we need to walk up to find the + * implied pivot min. + */ if (!mas->offset) { min = mas->min; set_min = true; -- 2.30.2