From patchwork Fri Apr 7 04:07:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13204443 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 2B769C6FD1D for ; Fri, 7 Apr 2023 04:10:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8EA166B0075; Fri, 7 Apr 2023 00:09:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 899D46B0078; Fri, 7 Apr 2023 00:09:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 761EB6B007B; Fri, 7 Apr 2023 00:09:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 646276B0075 for ; Fri, 7 Apr 2023 00:09:59 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1C8C9801FB for ; Fri, 7 Apr 2023 04:09:59 +0000 (UTC) X-FDA: 80653266918.30.53DD53A Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) by imf09.hostedemail.com (Postfix) with ESMTP id D8DBD14000B for ; Fri, 7 Apr 2023 04:09:55 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=ihB3MHeX; spf=pass (imf09.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.45 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=1680840596; a=rsa-sha256; cv=none; b=CsorI+LlmGsjGvd2ppqU6z8VKIDUEnjNaeBxNWfl51cADFmtQGT5rI2KGvQEGdAnyjxmht JAfYMD+lV6ukMU2833MQfFIr424k8bWLZXN3q68+Bje4OimEdXtWDS3MXoKrEuYG5Ff6El Vn9aC2CfRrgfI4Ud5AKs5FJU6y7M8jA= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=ihB3MHeX; spf=pass (imf09.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.45 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=1680840596; 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:dkim-signature; bh=+bhWUm9eJrATUzUGu/SdqQI045fo0z6oxhiOFKc2Mv8=; b=YfBOyMxXkvJLmXN+FK7Nhl45r0eWeN0udQPymsYXTz71SumWUCGgyTunEOJjz78vSaguiG SQ/8F5owJnqHUq0jWsAtqU0xW26oJ6GQjJK+g4Wi3TUGe1I2CFO7Aaj4LWEiFOdao/07oj HQUwGAEZoR0bkYiPVoisbwxFZZeV2nE= Received: by mail-pj1-f45.google.com with SMTP id 60-20020a17090a09c200b0023fcc8ce113so427393pjo.4 for ; Thu, 06 Apr 2023 21:09:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1680840594; x=1683432594; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=+bhWUm9eJrATUzUGu/SdqQI045fo0z6oxhiOFKc2Mv8=; b=ihB3MHeXkG035KRhU6cjwh5VirqAivcRwBk4ijiwvbkp9V0iXQyBBn4uq1bVHfiGxK 3XTqKhnadMIO8SgpX+QjdyQkfqskuVf9n/kBh1yER20FWF3yvmwDXFi8dKGCrbtvS1vJ vDsgQ6B7smN5GKDMRjxbZd2xFlc59jireHwxgiVShEr7jerGcZ7NPjsUQtikK8/TI4SM L+xv/nvnWvQqBXXWCrEhpASQnsjEK1dbCeqUXZ/UqeL719UOcFd7GT1dHjDY9flWz3NZ bEyVjTl/OaTP/JxvvVn+KeRliAR0H0OmbXJWlrVxVPqJbDUyQwfsuvTDhNt6HrbXta0v WXsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680840594; x=1683432594; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=+bhWUm9eJrATUzUGu/SdqQI045fo0z6oxhiOFKc2Mv8=; b=nitRb/xJ7fgmqEyi+Pm2SwFJF7d460pbj4cWnOQWhN0D3wahd6py0tu1YFzNK9n7Aq gdew8JWP2WZ7ms4ViXow2CNmCHbeyC1WzE67AKT81Feb5qdDFhwYj7P1U0KVSbiEMRGD XcbNlxfRPfwnCh51UBiI3ew9vTkYdmvGaRQSBqDbP2oP4/aFPZbyneqC157DFlRiwbV4 jbMnDNsQWl/7Sc0ulQnHm/4kRdTFBr8cMf+NLPCFNmc0hR6ZJ6wsme8x3gLTxCC3ujh3 nqEgREUDRIzyJ5H9lAlycLloC7M24x5xXmcFkoAzMVQljRC50CWxAwUAltgPuQo3Lsi8 0QGQ== X-Gm-Message-State: AAQBX9fueeclT9f8/E6paKp4lZWO/9rD7utFLCf+PQjOVlRhE3UxZ8mC XSFZbd09AlcR/Dh8yhWP23fGrg== X-Google-Smtp-Source: AKy350Z5pcqynlW2RlTIEwDesMVxMdjZRI87FQURw6KVsC3HNCqKDxlubyLuA30cIAIlLWgGgDa4Ng== X-Received: by 2002:a05:6a20:4c15:b0:da:53ca:8f26 with SMTP id fm21-20020a056a204c1500b000da53ca8f26mr1772163pzb.30.1680840594452; Thu, 06 Apr 2023 21:09:54 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.248]) by smtp.gmail.com with ESMTPSA id b8-20020aa78108000000b0062d7c0dc4f4sm2058010pfi.80.2023.04.06.21.09.51 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 06 Apr 2023 21:09:54 -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: [PATCH 1/2] maple_tree: Add a test case to check maple_alloc Date: Fri, 7 Apr 2023 12:07:17 +0800 Message-Id: <20230407040718.99064-1-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: D8DBD14000B X-Rspamd-Server: rspam01 X-Stat-Signature: oem4cd3opj1i6p781jb957kgcj1poi5n X-HE-Tag: 1680840595-66684 X-HE-Meta: U2FsdGVkX1/QL59rDh/QAgFfzN/flioia6sRgCSe6bDBGLYjiEI+gzz+BVZo59i0AfJ8mELgdoeLH4iXP6JIa5DlvfWg4ayJmCc98C65gR0IsIoaECLTT5QJ3wBeZnEoY0ucjcY9qR8UcUfMT7uwJrwwzprHDsxToakMBs3BxkBdrkd/EdMj1IqhKD84o14HPrUHbaSOD1dJv7Uo0HHRS0GuA8MoGKuubkqMFomuL7yvQZto2Wi9BRptk0eS9CwPSXZAFZ1speWSeKmKEd4XNO2Ufj99SqA7IRji5lPJigSjkalvh3ge+lYUcNL3W6K+4lcffWbfWN1P0wnCe7E4thXvZ1tIoRmMCJY3SFyGDF65GA6lhAxS0cF4cZxgfNSHIGx5vJFTCiJULvvmbawsX5WsctxwGoVjI8e08mUL5rw5Qjy7Lkl8waK6Be3xb0fCuTDHzuYcFrzEkXeei6EO/4n/WtiDROL2nePKi2LfRyAQ5aocJiDFdfbdzGKyAXotbvJdv1ZZgNyVhajOy+cEiEpJqyeDMJkOLZTqPyZg4TuTzuFZzqJstyaAz5ujmtjJ6BPA91CbiUPruJES4+9QFZQLIMdxkx21a+Rs08V7V6QimW2cHWt9BzCMUGBIBzKm3ZW3mxVSfP9HBbW8XcSRhJTM7uvacQZhkqKT59JFgODGBKF1IbjBmmxZGn3LDJi6oQa/m8ejdenUI1FUifixWHL7sHRwiWeHL2/DAd60NFWQK4T4al9y2WkQfIXLALxKo9AdF4IWfGKgPEA96jkMJdqCVKIjHwgLN1KgN+SnOVesHlgsDjdwAlvF0yxTaz2vygNohsrt4bKV/4iqmP+nziW+g2+irgrCIoI3n0ySypdQlTFm7IXEZ/IfwXOg6jkMJZAWqp+ULto9RNvnUyDR8ywkbU3BJjmLKI20AfcVXG+OBLoa98JW4EwIE8zoe95+rpJsJ7Z1yvhVajtq9ts IAkeyDfT l/ya+Fk2eMnkWESsr6tsbm6PUtLr4JquySWXCxtTeNJf+G1/gkZYJH0TB/thoQolVqWa2NXukVK41CK5bhUKmEEXUExOyoiEFo7K34oONYOiXqxKCFozTGh+VyNpRegwv/WeGMHiU+ttDPToNHYE5WwX2/UkeY3s/diS5DgAUw4ByFYOULCWA/Sw7nyAPGWClu3HLGNebMY6WqqUTYkQyFMbxtYUktwVojpO8L7JBB0nlsvjqqjZ2s+p1ZeBkKoSknnCSzRGX4UrTSYp5BBqHRc2RMxKoKE3eqOiZ+RATNDRK5eDU1OpnK4U0GpaxrwsvHGaTGYy3z4gx5fcPIXg/WJO1P6wVMjLdE0DwQeH5kN79vwBUfW380F9tkBEbTUETXwWclUSgosWN9Q0JaItl4edZjyrIzInGDKVlni7A1Jtz+vWmldr+XIDshOhnKzghu2D7Cc2GHISsDm34t53xjJvvoMpJOTrR6klf 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: Add a test case to check whether the number of maple_alloc structures is actually equal to mas->alloc->total. Signed-off-by: Peng Zhang --- tools/testing/radix-tree/maple.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/maple.c index 958ee9bdb316..26389e0dcfff 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -55,6 +55,28 @@ struct rcu_reader_struct { struct rcu_test_struct2 *test; }; +static int get_alloc_node_count(struct ma_state *mas) +{ + int count = 1; + struct maple_alloc *node = mas->alloc; + + if (!node || ((unsigned long)node & 0x1)) + return 0; + while (node->node_count) { + count += node->node_count; + node = node->slot[0]; + } + return count; +} + +static void check_mas_alloc_node_count(struct ma_state *mas) +{ + mas_node_count_gfp(mas, MAPLE_ALLOC_SLOTS + 1, GFP_KERNEL); + mas_node_count_gfp(mas, MAPLE_ALLOC_SLOTS + 3, GFP_KERNEL); + MT_BUG_ON(mas->tree, get_alloc_node_count(mas) != mas->alloc->total); + mas_destroy(mas); +} + /* * check_new_node() - Check the creation of new nodes and error path * verification. @@ -69,6 +91,8 @@ static noinline void check_new_node(struct maple_tree *mt) MA_STATE(mas, mt, 0, 0); + check_mas_alloc_node_count(&mas); + /* Try allocating 3 nodes */ mtree_lock(mt); mt_set_non_kernel(0);