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 E3CC3D3C533 for ; Thu, 17 Oct 2024 22:24:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7B9CB6B0088; Thu, 17 Oct 2024 18:24:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7422E6B0089; Thu, 17 Oct 2024 18:24:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5BC016B008A; Thu, 17 Oct 2024 18:24:52 -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 3A7916B0088 for ; Thu, 17 Oct 2024 18:24:52 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id C70CE1403D5 for ; Thu, 17 Oct 2024 22:24:39 +0000 (UTC) X-FDA: 82684524930.15.E3B7611 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) by imf10.hostedemail.com (Postfix) with ESMTP id 0564AC0012 for ; Thu, 17 Oct 2024 22:24:44 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Lr8z00pR; spf=pass (imf10.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.48 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729203815; a=rsa-sha256; cv=none; b=ZzIyHAK4chD5if2h9SnhOym4TK+D5ES8cRSA7/V7Ph/1GdwA90Vo/onFedocokDO10QTnc KkGPf6O9VSAPasBgf4RdxrQRI8r52PWMfYK/tZs1sN7H3p3Hy2weZ16KVNJXy7W54eF/43 PaJKs+s+m3JyEwhajMMWiU2RFN7RomY= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Lr8z00pR; spf=pass (imf10.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.48 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729203815; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=uWfzC6qHRuj0PPvv2caGtdcE9pBXDU0mBITfxpc2mKE=; b=PSHhQu6wuQabWkQZKBlO7JERl0PSpIs9X+PuuiW3MmM9hTbpvcLNSK5RaGzHnUwz1vtUV0 KZp7+4VrN+rsqB8oX/3E9jZepl1tUWHSkXX/U7cbq1Mk2m1D2GN4V+WtiVdHyYKKeFTdJr cFWeYg7mV92JdJkECuHkRN1pFjw5LF8= Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-a9a0474e70eso198549766b.0 for ; Thu, 17 Oct 2024 15:24:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729203888; x=1729808688; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=uWfzC6qHRuj0PPvv2caGtdcE9pBXDU0mBITfxpc2mKE=; b=Lr8z00pRhWSChAcX2wm00twbhQc33HA1kaNj8890jp3lHeDUV3CgSV3AScBRsoHqft M36f/Hk+a1z4V09iarMEPx/mELL9K0T476GcA/uNAPxat88a9XxZwMBB+dIul/fChTMQ cqoGoVqJB0O1yVp2gLcdCQaG1qbs+5ibWIuXSrt41unAut43fpI1HEsA1AFlRjf0wID7 KgLuO3a0RmZzZRyYwtILg9TmtQpxZSqlxtpsQIKd8x5b9yV2HmG8AEjENHGr4RBWwfKF wm2RI47pHrY6S5GZpk+F7DZHmMofo++HtsUwpCdaXXlNh5O34MhCkCd+shEqfMgVLj76 uF4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729203888; x=1729808688; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:to:from:date:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=uWfzC6qHRuj0PPvv2caGtdcE9pBXDU0mBITfxpc2mKE=; b=ii3giNEYXLdK1xPkRFGTYOMmkvqf0O1eOjzZf/j1NZCo8pr8/sXNELeIwOYwGegxbR FeGmHhTFT9+9csSniJogaMNMYMD/XwJtE6cyz9aV0aNEzagwhqS1b3ejbj3pt790BRgg 5cJf4O/0dq3SSB8sNH7C3+E17AmSEUhzZVbW+Vgebm/bGalEIXKbRUXmKAdl86sT+fJc XoqKVe+yGL199H8KvHSIQe0vl876KSPs070g3oF+Gxz64mbtcZmrByohlaREQztlxjtt EeyJh8NYcTuVY/46LXcD8RJaTqQApgQhrPsNRp/gAytDkRO7CWddRr/mm1UjVdzKpkTU F1Wg== X-Forwarded-Encrypted: i=1; AJvYcCWwY0m8jk7FFBEtOEfjKoSUtImvy/IYAr3iyWrzPAd+GBwMG1BmujRXWXcy1nH/ONRYwAuKZL1UFA==@kvack.org X-Gm-Message-State: AOJu0YyPCE8rfFMAQcq/45DdcZH/2HkvocFCTwS9GwypwZw8SOEYGyZu viIlBSuyDvSyLvZM5L2McTDu92d8k6y5CBjnGxt9ju3UI75zeNXD X-Google-Smtp-Source: AGHT+IH/0IM00H3S+QHLHms642AAvZMZYM+Y3LfI+UXDN+RF8hoqJaW0D6jP0C3aVUMDnsoOTMKKYQ== X-Received: by 2002:a17:907:3f1c:b0:a9a:161:7863 with SMTP id a640c23a62f3a-a9a69de760fmr20524466b.58.1729203887952; Thu, 17 Oct 2024 15:24:47 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a9a68bc4370sm18310766b.100.2024.10.17.15.24.47 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 17 Oct 2024 15:24:47 -0700 (PDT) Date: Thu, 17 Oct 2024 22:24:46 +0000 From: Wei Yang To: "Liam R. Howlett" , Wei Yang , akpm@linux-foundation.org, maple-tree@lists.infradead.org, linux-mm@kvack.org, Sidhartha Kumar , Lorenzo Stoakes Subject: Re: [PATCH v2 5/5] maple_tree: add a test checking storing null Message-ID: <20241017222446.prdff7hhy2xc5lpv@master> Reply-To: Wei Yang References: <20241017134607.30206-1-richard.weiyang@gmail.com> <20241017134607.30206-6-richard.weiyang@gmail.com> <4danwp5tcr6as5riao6tctyy63dgd7ilkgtdcrxc73axn2dxbe@4jrs424yww36> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4danwp5tcr6as5riao6tctyy63dgd7ilkgtdcrxc73axn2dxbe@4jrs424yww36> User-Agent: NeoMutt/20170113 (1.7.2) X-Stat-Signature: 6pwdh5efz46ossgpot6act9cgjat3a7r X-Rspamd-Queue-Id: 0564AC0012 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1729203884-265318 X-HE-Meta: U2FsdGVkX18A+kd91LoVuQDsYerHapCALWjteVwB1dE8vOlzYhQz1Zz2TSg9M1HwK6G1FolqoiABQ89hOtLoedMjFCPhsIjwtkE7w9FbiStFyt5cJvZcnnnr+DzxFwV/WEC90vgRnmyMujII4ainyfKGXPwoJ36caMCgALogAWbHrDclN3mjwppD5iyckGrprc/SYp5CsR663UkVUKfQ2GzjCJGXQfwkfezs8A2yJmXhwybsBpRGgA2joKOttigLEpnqULmXviHrC2FN290mLyuQdx6iGdqgn7K9odHCEUYzJzGpor5I1S4ZoO4oUYn1Gg+SQf1hTlyzRgk/1dfIF3w2sh0iVCPk/rxeRaLuvbcfL5oJEzMM9JITTJeA66g5z5f1KH2/Jh8YgiSyLdFTYDoffwmn6UmHO76IIu+VPo1g8/WZ9vtTl+/SlKEh3EyYXhvZBXAQjvKSP31t0vUlOK3+cGOoDE8yT+6BiaU71LWDiU10WAs7evnj0Fq0m2uirzBVhDjogLMkV99u5j1ivCFnfZ+rC5+jEOSR6ME362vtUloMNQuuRgYPb6L10twXvlv/WFtITgbPlJqareba95xAOpp1Fthm1aFcXhpsuRPK+ZVrVMjwPpK9OX6spyxx+GlO3pqEJL/yA3fRVswwqx5H07Yg8KJPl+SXMzBv3qf8jAbKAHgVJGNm9C+06+/GJHQ9pThm7djWqHxCvTZGjtuyvJ9aHtHe+nNe8I2L8Z47PE0BHg+RKjvkk5tFj81ocEkorBSwRtGCORG6teT79XXVGVQHVtjHUyxZ20zkfJ4yIGOkZWB0vdKrCQIq5dARziAde8sYefTqx5CoURpHbOueMY2EShzAKumLrgkolGGMKJSECiSgQwo9PptVy1B2Ysq0dQ8K9ffEtSRPm3aNNXDpMVnY6w/sjDrlKqaAuir6HQL7iEbkW88tpMrYEa6kd9V/FgwgXWCyrynseTG hwy6eGAO H5C2HraHNGvErIaKHIFPNF/MTGmWyTdr43MPl5nml7bwqQpi9zMG8xuyQKRFCIHf+FGnwsRjJRXB/RhuJ09m69CGVhQl1yqNi/S3yB9JY5ZDalH33oPyD3Iz8543Qg/kVmxfo6k3Nf1cTpAh9XP2p71NCGlMDAmlBe3VlYkr1hWLwCx7DstuDa39ZeHfgwLzfP4SaK8RgyX+nupLFykLz0DnjJdg3NWrHzMYZgiOPGZiOGH6Ad6DXM+MaOxhCAfMwvyrwaSMJddeWAvblQRaoWsAkvB9t/bRNCkW+XmxmUTE8mOn098xJQXA6vAbJW8Wl8di2ShQqkiZ9RLylNGf0xqsRR+ZJptO/4PVY4CT4Au+Xue/EtVLi6ZY1R+65MT4qaoiYFwAFeZKb7CgQ+h9j6PqNuPIZ6R8M3JrXg+O4QlYcGyoIUar/wVA+l7WNiyHUfODf8pECXTttdATkdOJ9IqaSgNnuEGIWy3rxCdp8UA8Kie6uUQ5kWpc/Np9whNUdJ9QYXn/rYMhNeAm+pj+urFYeV3xixeef2G1Ol/A9aPRvMdrKaXAKdZhpmTC/TYhJq1OHL6rI+r1wDjNyCHijEr+ZiO4jFOGHIPNYtBVQpe3TXjLZ9zTraBfF5PIDE+b0FuA4nbTWsPOnmzU7UXA56PjXtrTvOXqi6VN6Q7s0bXFzeLlgf6PDOOZ5kELQsCS73j4a4131bmyya0J9GIZOT2Uw0Q== 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: On Thu, Oct 17, 2024 at 10:12:22AM -0400, Liam R. Howlett wrote: >* Wei Yang [241017 09:46]: >> Add a test to assert that, when storing null to am empty tree or a >> single entry tree it will not result into: >> >> * a root node with range [0, ULONG_MAX] set to NULL >> * a root node with consecutive slot set to NULL > >Is there any reason this isn't in lib/test_maple_tree.c ? > >Does it need internal interfaces at all? Sorry, I didn't notice this requirement. Will move into test_maple_tree.c > >> >> Signed-off-by: Wei Yang >> CC: Liam R. Howlett >> CC: Sidhartha Kumar >> CC: Lorenzo Stoakes >> --- >> tools/testing/radix-tree/maple.c | 73 ++++++++++++++++++++++++++++++++ >> 1 file changed, 73 insertions(+) >> >> diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/maple.c >> index 5fde09999be4..fbb08f151b01 100644 >> --- a/tools/testing/radix-tree/maple.c >> +++ b/tools/testing/radix-tree/maple.c >> @@ -35867,6 +35867,75 @@ static noinline void __init check_locky(struct maple_tree *mt) >> mt_clear_in_rcu(mt); >> } >> >> +static noinline void __init check_store_null(struct maple_tree *mt) >> +{ >> + MA_STATE(ms, mt, 0, ULONG_MAX); >> + >> + mt_set_non_kernel(10); >> + >> + /* >> + * Store NULL at range [0, ULONG_MAX] to an empty tree should result >> + * in an empty tree >> + */ >> + mas_store(&ms, NULL); >> + MT_BUG_ON(mt, !mtree_empty(mt)); >> + mtree_destroy(mt); >> + >> + /* >> + * Store NULL at any range to an empty tree should result in an empty >> + * tree >> + */ >> + mas_set_range(&ms, 3, 10); >> + mas_store(&ms, NULL); >> + MT_BUG_ON(mt, !mtree_empty(mt)); >> + mtree_destroy(mt); >> + >> + /* >> + * Store NULL at range [0, ULONG_MAX] to a single entry tree should >> + * result in an empty tree >> + */ >> + mas_set(&ms, 0); >> + mas_store(&ms, &ms); >> + mas_set_range(&ms, 0, ULONG_MAX); >> + mas_store(&ms, NULL); >> + MT_BUG_ON(mt, !mtree_empty(mt)); >> + mtree_destroy(mt); >> + >> + /* >> + * Store NULL at range [0, n] to a single entry tree should >> + * result in an empty tree >> + */ >> + mas_set(&ms, 0); >> + mas_store(&ms, &ms); >> + mas_set_range(&ms, 0, 5); >> + mas_store(&ms, NULL); >> + MT_BUG_ON(mt, !mtree_empty(mt)); >> + mtree_destroy(mt); >> + >> + /* >> + * Store NULL at range [m, n] where m > 0 to a single entry tree >> + * should still be a single entry tree >> + */ >> + mas_set(&ms, 0); >> + mas_store(&ms, &ms); >> + mas_set_range(&ms, 2, 5); >> + mas_store(&ms, NULL); >> + MT_BUG_ON(mt, mtree_empty(mt)); >> + MT_BUG_ON(mt, xa_is_node(mt->ma_root)); >> + mtree_destroy(mt); >> + >> + /* >> + * Store NULL at range [0, ULONG_MAX] to a tree with node should >> + * result in an empty tree >> + */ >> + mas_set_range(&ms, 1, 3); >> + mas_store(&ms, &ms); >> + mas_set_range(&ms, 0, ULONG_MAX); >> + mas_store(&ms, NULL); >> + MT_BUG_ON(mt, !mtree_empty(mt)); >> + mtree_destroy(mt); >> +} >> + >> /* >> * Compares two nodes except for the addresses stored in the nodes. >> * Returns zero if they are the same, otherwise returns non-zero. >> @@ -36344,6 +36413,10 @@ void farmer_tests(void) >> node->parent = ma_parent_ptr(node); >> ma_free_rcu(node); >> >> + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); >> + check_store_null(&tree); >> + mtree_destroy(&tree); >> + >> /* Check things that will make lockdep angry */ >> mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); >> check_locky(&tree); >> -- >> 2.34.1 >> -- Wei Yang Help you, Help me