From patchwork Sat Feb 8 01:18:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 13966200 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 72B8BC02199 for ; Sat, 8 Feb 2025 01:26:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D482E6B0092; Fri, 7 Feb 2025 20:26:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CF7A96B0095; Fri, 7 Feb 2025 20:26:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE5C56B0096; Fri, 7 Feb 2025 20:26:06 -0500 (EST) 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 A308C6B0092 for ; Fri, 7 Feb 2025 20:26:06 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 283A1141235 for ; Sat, 8 Feb 2025 01:26:06 +0000 (UTC) X-FDA: 83095036332.17.BDD8D75 Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) by imf26.hostedemail.com (Postfix) with ESMTP id 553A6140004 for ; Sat, 8 Feb 2025 01:26:04 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=CefIYht5; spf=pass (imf26.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.45 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=1738977964; a=rsa-sha256; cv=none; b=t9mq5C/ZLYWZVsM0HjJzzgzFJ6zbpxd/SQ5W7ZmagF+TSrqVVDsj6J8dga4CHQdmbB1PVK 2WJt60Zq5PUvBgYKi7t4ceeR7lv4LB19EEWS+wQRoEVjiq2WUItg0RMwreQ8GC2GPBDXqJ Hl7RcOO9ieR1Dy1hE29TbjZRxHjUN8E= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=CefIYht5; spf=pass (imf26.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.45 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=1738977964; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references:dkim-signature; bh=kw3mKs8UDH+6Uo5UYkOzzUIJcVcyk+0f1T8uIBzHRIQ=; b=NN6NFrSfF2PhR08CfgM1QDIsvZ61k1/6aYKlNMj1t7qgV68sS1wkOKfEGNPwdHdreipRH3 pakTnd7hEwK0vgKBwSqS+ccIC4F1OPGpuZyOpLp9uK/P9qyQjZE7nSEJCgDD4O9wGP1zaj ZYP9qDLnzplyMEpcI8TciQ26sb1DW2g= Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-5dcea56d6e2so4874151a12.1 for ; Fri, 07 Feb 2025 17:26:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738977963; x=1739582763; darn=kvack.org; h=message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kw3mKs8UDH+6Uo5UYkOzzUIJcVcyk+0f1T8uIBzHRIQ=; b=CefIYht5Gxpp3xPl+OnEDwl3NRowwcPy1UOueU0pBVGDRybCb1VnyRt6S39m0TGPTF ESi13Aexc75g9hOwTDGex3/iIo+9lh4vsBQf8pQtw9ThKqUIXXXSORtkJjvGgYQQI4gm 4vPPD6Vs9D1xfxabc1aZQPUJBYx5hPPHsmjrtNJrYJOQpbhnc5TJXL3VNPIgrexFCU6/ owytnapiv4ZADlbegyFzs60K2uI6D7CfkClYf//aBqc+iG+4M8FS4Ayj8k4xU8CNT3EQ l4VPaft3v1JKIYLXAalhb1uVFCl8tmquqyv0qSE3vPm8hq0tyeD5kbRaIvaKHaV2GvNg +3yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738977963; x=1739582763; h=message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kw3mKs8UDH+6Uo5UYkOzzUIJcVcyk+0f1T8uIBzHRIQ=; b=RVT4rNx6EC/RHCDCvyA8xCjMVZIucvSqesEZ0LTZn2U+qwu02hNGtal8fgh7pcVUSn xlqe+E7MDIQvqesVp2lKa1+uY6N1c3M2iR8svLS17BfT61puFUReI8Pn9Szh0gTBD3Ag yZV5gw2OvA2XneSiDxC9TMEcDvRtreBj1g+kmyjKJXzIr1ggPBIZbK9kMceO1oegTV/C Y4ZbUGT1GGXDpWFQjIJCawe3OQtubbI2SALMYL6SbU7eEPi95CChWiqBLBIqhVknjzXf 2Je9T7eX9mvHLLWcBMeRkUsV57L8K3Hr8ZPi6jNnLIU5FnPwzPZaAaodsnI50eHQ1r1a ljMg== X-Forwarded-Encrypted: i=1; AJvYcCV+0JWOL1d41KupWGPOCcAJBRHFZ6qpkUilrSVfK8XmLDVInKEkz1sg/fRAHYAExVGKdoq7V0Wo2A==@kvack.org X-Gm-Message-State: AOJu0YxcMHlm6N4iVrAgidv6a0mMAXIfBcvK9y+gU4WIpKdlxad7t1/U meeX2sKmsJVpYqZWdrmUariO3J7kXKAFiaEL/BTTVrmla7ysAR+LyyVWfItw X-Gm-Gg: ASbGncsDOzUJ1d8Etn0TPHjfXs+NdEjrHiN5vh0CqPJclZUoUe6IItG8O/mIG9q81Zc weN4Ag6Ch5g/KVILanF07wuii4PzaGS7/niWpBfW8vcUf4a34bwbAj5eVpgaeHotXamLDlfRVKn fLgWoLcPGSxefvtPn6KcwTRpIEAjYWDNtOXvaIB9sqEfn25icQeyhWY75SR8MNFOxlJpygUIEye RLoJLcDVPZbLSLVQaXkJOoQ0deAm7knZkWigDE19f0HgpfgH/67/kiol3daPayE4W95J6Dl2Wkn WNO/F92K71w05BY= X-Google-Smtp-Source: AGHT+IGjtg/ztnkVPEq0YqPB+sNMqAcntnpDEBhJAUuuPMrveIYhKWerZcJ62Gk/ozhW5BGVTfSv3w== X-Received: by 2002:a17:907:9719:b0:ab6:e10e:2f5 with SMTP id a640c23a62f3a-ab789bf6ae5mr611476466b.37.1738977962393; Fri, 07 Feb 2025 17:26:02 -0800 (PST) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab772f486f4sm362134466b.8.2025.02.07.17.26.01 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Feb 2025 17:26:01 -0800 (PST) From: Wei Yang To: akpm@linux-foundation.org, Liam.Howlett@oracle.com Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, Wei Yang Subject: [PATCH 0/3] may miss to set node dead on destroy Date: Sat, 8 Feb 2025 01:18:49 +0000 Message-Id: <20250208011852.31434-1-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 X-Rspamd-Queue-Id: 553A6140004 X-Stat-Signature: zqzqijahbga7geintuqiy3fdwfuqih39 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1738977964-594750 X-HE-Meta: U2FsdGVkX1/zc/4T6vhk1/RXO/TPWqYaJ9411XgKeXmJb7QJu9+TSNck9zplOXw2dMb6E4jK8gQnIYvBdekwKkANDV+KsFo0r2h2GgM1jGfPeKRncbTuWse8+UOQXfGJ4oFt/8dLg7jp5UK1FKVveqJeXN/LbIsWJRXeKfYM1O4kuGmR5df+EcjXedZhADqQSsPWbiyEsf59IwHHxPNn7yNikioyQJgy/PhbFpttbnE5ozcz9FjQFF5egcuxvZDn/Xsb/d9OSCX1kIpnvWx3YBoGiwJMxnjPbpXl1zZRyuL6Hm7ODoco4QMnzYOdeMlkDt4C7SJXPyLoD5kHBNb5PzfyRlDMH2PkmUEGnsZQWhcg40mysGO9QqLYHH9ZNXxw/EGRhthK5g8TiUrEjJAeqygXFoUdH1UQj9EoM8f1Y2lBSVlIeMyswda/obCgryUj93btD7ppg3WO9k7j3BEtWoRfaFYiYjvegC6EUK7PSnYNyTNb/1EsNpwxT8ebTobNNIDwmdB2Ajede+mV82rKe6deI90Ep4hpp0E30XuRB53IIDxV37RY3eFDO0xESKM+W+oECAn8m2A6s4hsWE6TDE4Sr8UZolhGwCJ0Dc+zwqNi9SdhH/crB2FCV0QUkjo/aRZTG7EHNwD//OUAloE/NN516Cv8BbRdlOeLjv6W5Zb30rKmoLNGjzAWRe4uNH8cxs7cQwyFn8gW2Kq2LRILE+k8qs0sPqqPdwXqxvAxgVlP3jMUm4B1LqXMt+kWv2XvClkMFaXQIcKq7yZTceSFL6t5ANDaEbEQ23Iw0G0qr8s75zPDA50zbPnCB5XoMfGylDVMHg+Dt2jxk620IKElWf+S+zZNvFq8WOM/t6Z71JOfTkybXTSFYqdWMCh9yvU68oedAtR6FgKkl6VVjunGiq+wTSrX+O3qi/mDGnZ22d9CCToz4TfzjcCJ+dS63Dc6dsBPynn6PhvJ4lB51Qc PWjc2CwB AKB5qlkxXCYNJ7LSH9bgw0uVCt+aOPyG/jBzCgIUF9qC81Zg/Xvj+xpFMKLXRHPYuglbj3MM7u1uH/HWkqPUAOvdnltOrmBl1/LKaP4b20V84MFiItZEeAy0iCf8EEnodDOTc6i8mZ/yigyr6cfl0Us6Du6z5PulTnQiEtNT43qWo9+PeIbO0v4X/8Afrh/kdGF3t0s/+rrP8wCF5F/Y9jtrxanampw187QsQHFVrTke3HZjJhT5N0UU5pwYZ4gEWnkQaZ3HQL/3L7PEg7mf79EbkcsKxZN66Zv4e1qgrThH7BI0QL/9TqZE11vw8fWpI9iPyb7O8GPOqI46kJ2wKdTF2daK01Ecv7KSmOz7n/sHs4MDcgU4Nq1AszUZmtegwOCikGN6JKm6nD8AdTSt80MyMi7prRjkbEv6xza48z0LsxiXEW+weotMGXnHSUVgpsw/k79N10kAgWns= X-Bogosity: Ham, tests=bogofilter, spamicity=0.020968, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Per my understanding, on destroy we should set each node dead. But current code miss this when the maple tree has only the root node. The reason is mt_destroy_walk() leverage mte_destroy_descend() to set node dead, but this is skipped since the only root node is a leaf. Patch 1 fixes this. When adding a test case, I found we always get the new value even we leave the old root node not dead. It turns out we always re-walk the tree in mas_walk(). It looks like a typo on the status check of mas_walk(). Patch 2 fixes this. Patch 3 add a test case to assert retrieving new value when overwriting the whole range to a tree with only root node Wei Yang (3): maple_tree: may miss to set node dead on destroy maple_tree: restart walk on correct status maple_tree: assert retrieving new value on a tree with only root node lib/maple_tree.c | 4 +++- tools/testing/radix-tree/maple.c | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-)