From patchwork Tue Mar 4 01:19:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 13999761 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 105F0C282D1 for ; Tue, 4 Mar 2025 01:20:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EA3DE280003; Mon, 3 Mar 2025 20:20:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E553B280001; Mon, 3 Mar 2025 20:20:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA54B280003; Mon, 3 Mar 2025 20:20:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id A0AB7280001 for ; Mon, 3 Mar 2025 20:20:40 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 62504C1213 for ; Tue, 4 Mar 2025 01:20:40 +0000 (UTC) X-FDA: 83182113840.19.523FC24 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by imf01.hostedemail.com (Postfix) with ESMTP id 923964000F for ; Tue, 4 Mar 2025 01:20:38 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Bexk6xPQ; spf=pass (imf01.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.51 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=1741051238; 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:in-reply-to: references:references:dkim-signature; bh=XdglvyptV1k6t/WS6GK2XareaYX2F5gnorivUDFtRoQ=; b=OSN9omvlzF8RRZLvNVVq9tPjG2yfqHbuJQjon02kZwJxClT21G6EQ9JzGnehMzApw9vPUj Zqzdj4STAVzmTZh05jmBSUrz//VKHJ0/+e+QLOMUko+54CNNXko7ZaylWZgnxb+lnP+5l/ 2I668Ruw2f9T2m7ExUmPGz7mCFnZtRs= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Bexk6xPQ; spf=pass (imf01.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.51 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=1741051238; a=rsa-sha256; cv=none; b=R7XO5H1GCTyfeeHpfMmPVrhZcmsjzJJ5NVDGNTxZcMFEWN0ry9fNwMqJaXmF32L8/hhPOt bFatUnolcOAqxv9Y2pSLQOskjDACXogZRD8pwuQU75IDSk9sOo12dQUGsLa+gxqoYMwjQf 5ZK3OojlWYwnuXtq5OjCOKGCMb9cDLs= Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-abf615d5f31so434166466b.2 for ; Mon, 03 Mar 2025 17:20:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741051237; x=1741656037; darn=kvack.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=XdglvyptV1k6t/WS6GK2XareaYX2F5gnorivUDFtRoQ=; b=Bexk6xPQqkKmDeZydPeNmxJEvG0TQF4++rUE4dxyGzeQD3irQdMfF2aBVRR/uuqabs JTrMoLFJ8Hd08Bio5lq7lKISwJWrsRbGX+RuCb/LzCdFdqB007Puc+CPK0+aLAfCLQIj jJE3rnpHXzOB+nBQvkpgATKnQPgzSxw/Ogx9dHVDsqAUljlrDVup6lGevd4+3E1/ryz8 iCoIS2YubrNiMPiVlJumLIIFvVNGGeMpUx+q6deTfFmPkjcEk6c0hU5ByCaVFeUzrunr nQEN2RP7rKBHiXMARg6LVvrYtmZ18s9/A7vQ1Cehs8BqwYxxbV1c+Ly9oR4/CLIKN6Ws xBkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741051237; x=1741656037; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XdglvyptV1k6t/WS6GK2XareaYX2F5gnorivUDFtRoQ=; b=VroqIGlDXXb6+cjKykEFzSAvIY71PUUYh6NG9OkZZR4VCc454fhMdR742P4I2ylOp/ MnAifpGV8bRM1xW80WDscnxM0KysF/dWY/TwOtKAS8hDNprOxBkQKPmZ2G+nc1g1A5Rn FoQkfyIEL7BeY0/ZidQotR+zf578X8C4uovfmLI87tTcV2nS1AtWBCR/kjAvDqVH/twA QHV4LuMa0slv8g4yAar2aOeNX0sMFGStEy7AUPowPwxXx5Csrt/Z+JoF+btYr1nZgHoF YUJ5fd4WvZmuN5iwJcywnV5KaZMHZO77Pkzxo5ZAvNndlSLu9Ok9oERrBqnmRpLTumWx iykw== X-Forwarded-Encrypted: i=1; AJvYcCVfNm9ggnRRv8zcovlIxzA3HZ+RDJUfTpDpipH+PJzwbTL1ubuPwHKT2+9C8k22j2bmkOEFNdyfUg==@kvack.org X-Gm-Message-State: AOJu0YxLxJiU0fBN68aQBzRwx2P6bAOPvdFaSRWW2N0zMLbuirqdZxLe vrS4Q5Ue7GoCD+WOINsduMmDVMUPZA5xIoLG/VfdaEh8jpXKbFFO X-Gm-Gg: ASbGncuQevOJNYGZqCTnHHSNv0lJuKFuVgqeNNRETAgCEDLkc4PtcRL5puyBiVUSabb E72wa1ulvUklxjLspWRD6ESi+VXg9Ad3qmXtcfVgrihFkhZwfnz7alkR9X20lmXlp8WhclNIbkK GNXum/ecGdn8MIuqZ+HSNAQesYtIHvyeREdsdwHOlj9dBLPbN3GkdoE3/h/0VolU3fTfF4hmIpM MW5Ye8CPDVzVYgJ+QGmzEG1lJoVBehae/OFQKjCMu2zvya3Glb2TY4Vq2ozDh3JugiY4zE714QI CnKgdfQ5y4gixrNzH9Wl0m83N+q3CkALlxFiKAecRO30 X-Google-Smtp-Source: AGHT+IH2NpW5meHnGbwNvP5eh/J+X0KZM9C5y1Ye3CLruGmMCshcWiuOEDnH32BuOra5cvrWYI++rg== X-Received: by 2002:a17:907:3f1a:b0:ac1:dc0f:e03e with SMTP id a640c23a62f3a-ac1dc0fe441mr433024366b.13.1741051236938; Mon, 03 Mar 2025 17:20:36 -0800 (PST) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-abf76063ab8sm292159766b.73.2025.03.03.17.20.35 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 03 Mar 2025 17:20:35 -0800 (PST) From: Wei Yang To: akpm@linux-foundation.org Cc: willy@infradead.org, michel@lespinasse.org, linux-mm@kvack.org, Wei Yang Subject: [PATCH 3/7] lib/rbtree: add random seed Date: Tue, 4 Mar 2025 01:19:48 +0000 Message-Id: <20250304011952.29182-4-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250304011952.29182-1-richard.weiyang@gmail.com> References: <20250304011952.29182-1-richard.weiyang@gmail.com> X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 923964000F X-Stat-Signature: xbefkqqdzqiekcry1ocdejypd6a8mbd7 X-HE-Tag: 1741051238-498137 X-HE-Meta: U2FsdGVkX1/ZvISzJK1l/N0EWvSE8vFJvG/ZdUf+a8PYke/pAh6iS+PPoyk6c167QKrVCdWe22JRcc3OtbOklANeTpi+u4aHhngIDSLs/71Cu2OtG8+MbXUmom8UGwPLl/2fNbRvjIC/qahYlNYw9QkR+0/YhKroDKvWgoUs9HxUEDw13YL+oCJW7UiY692DzanZBA82eDpwSfX77EZ8CDhjdGBm5xhWODIXbbqB59L38TB+UY0G3Ijl8x0Og4wrtn0ixdxDNC5zqE49toek4Z1tbv0gdRhTt5Hgh+YV6n2v0zeOCRCF3/t0SpcdqSkWQT+h7MIyFR7iPEX54+JS6TsUDOGUcNpwxrgH2NHryxqGKSAXvshQCXMAo2TpvMlAdO7cCcFikvJweE5X8/+qMvHry8VhznnLjZdN9P4hw4WzFceMGPaQtJ+IMVJbl6rWqlNKAyB8PtjJ6Kj9t9sGDDNxZC6SqI2Rq07YSCKmylUbmEidKZAX6lrQBd+5vz/7Cx6uKe3OJUgXSgQdaz2Faad7+rJAKuhzH3CylcQhCB4uN14+7BVVlSQ29MhNmbgx+C3ePpaFewDeOU6Bn96+wVukDnc+Z7h9UJORtsfmwE/rJQr4BwVwdXFH0+NqwrABwaj1vfu9dnkC/cvxGurxrygig/eChKKQ88uNHMpbGYxmdGITJTSc/x5UjarCmx8yS7lZAJchmvgCJTm69iTEcIOya70xhJqosP4Z7MQtbnSkUl2e4xDdjSPREUu/thC0+g9/OYnZl3VtRf8Kgodoa9K+vo9bwu2ZAEA0xoDi00wGDkg2jbZ1JZkLvQ5fH2ur6kYrrKAjcSI+28RLz3NJQJZ1ekfdM/gxaiHHoNhawvXCi/QgIefdnhzETBwODiBIQ3E8HanCvr31H2txWKYcvmIhm+Ja8FTQQOzdUzfVjHAbtFaCe5ZgJjtF0X9hDC0FMj5pXL8szK6LdLmNLnR GmnQ+vdE o2f9mkU9GmiIMdbJDS+xC7YVCC8JIVKOV3m4az4DuZHT+Q0cPCl+7C93qBEqlQ9JDM7hYnsV9kcEahwphle5z09HhGqXiviP0OJZG3SLVgqxpkW8oxOlojiRr427Jn+lPLXYDd+B/4JsrhD+P0NSgnmqxiWOVl/F2v9vCWrFU/5RhrvP6ucijQk8/FBFkOEIytQDSJv0FPZE2jcY2TxRKQLRmGLCNLf71rA0KYClbQ7HI3ScGrXt3ScAzsDHMgHVzUdJ6kzE0txnvzImfDnqiGK7iFcJEryFAhsdgO5z85z01wvbsozfZbNLe02GmKUC13hS9FzWJE5tkJ6x22UgWr7zTtJ4fBLjurbDRk9snAZvL251//ik+KwicNavjiteb6owtavyu2Wj0C9wdiI6hYVZxzY2z/c4pSaTW8QzuG7SGzM5rOVe2VtOLvAU/HN3PEJTFQRTJQFn5P14IcGFjDhD5B2BEnjycYabHFlJZcXiK+j1qOqggosbfqm4oI6spnB1xcUJGUVpPK0HeWbZpAHhjIOdmN7AECpC0tm6t2TFRI7MxpQmOO+ZVxaSK7RYjym2/Gsr+2D2r17aKaCNaxIzWVISn5h2xK8P8 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: Current test use pseudo rand function with fixed seed, which means the test data is the same pattern each time. Add random seed parameter to randomize the test. Signed-off-by: Wei Yang CC: Matthew Wilcox CC: Michel Lespinasse --- lib/interval_tree_test.c | 3 ++- lib/rbtree_test.c | 3 ++- tools/testing/rbtree/interval_tree_test.c | 5 ++++- tools/testing/rbtree/rbtree_test.c | 5 ++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/interval_tree_test.c b/lib/interval_tree_test.c index 12880d772945..51cbc50d4cc5 100644 --- a/lib/interval_tree_test.c +++ b/lib/interval_tree_test.c @@ -19,6 +19,7 @@ __param(int, search_loops, 1000, "Number of iterations searching the tree"); __param(bool, search_all, false, "Searches will iterate all nodes in the tree"); __param(uint, max_endpoint, ~0, "Largest value for the interval's endpoint"); +__param(ulong, seed, 3141592653589793238ULL, "Random seed"); static struct rb_root_cached root = RB_ROOT_CACHED; static struct interval_tree_node *nodes = NULL; @@ -137,7 +138,7 @@ static int interval_tree_test_init(void) return -ENOMEM; } - prandom_seed_state(&rnd, 3141592653589793238ULL); + prandom_seed_state(&rnd, seed); basic_check(); search_check(); diff --git a/lib/rbtree_test.c b/lib/rbtree_test.c index b0e0b26506cb..94ace8f0fbf8 100644 --- a/lib/rbtree_test.c +++ b/lib/rbtree_test.c @@ -14,6 +14,7 @@ __param(int, nnodes, 100, "Number of nodes in the rb-tree"); __param(int, perf_loops, 1000, "Number of iterations modifying the rb-tree"); __param(int, check_loops, 100, "Number of iterations modifying and verifying the rb-tree"); +__param(ulong, seed, 3141592653589793238ULL, "Random seed"); struct test_node { u32 key; @@ -402,7 +403,7 @@ static int __init rbtree_test_init(void) if (!nodes) return -ENOMEM; - prandom_seed_state(&rnd, 3141592653589793238ULL); + prandom_seed_state(&rnd, seed); basic_check(); augmented_check(); diff --git a/tools/testing/rbtree/interval_tree_test.c b/tools/testing/rbtree/interval_tree_test.c index f1c41f5e28ba..63775b831c1c 100644 --- a/tools/testing/rbtree/interval_tree_test.c +++ b/tools/testing/rbtree/interval_tree_test.c @@ -18,6 +18,7 @@ int usage(void) fprintf(stderr, " -s: Number of iterations searching the tree\n"); fprintf(stderr, " -a: Searches will iterate all nodes in the tree\n"); fprintf(stderr, " -m: Largest value for the interval's endpoint\n"); + fprintf(stderr, " -r: Random seed\n"); exit(-1); } @@ -31,7 +32,7 @@ int main(int argc, char **argv) { int opt; - while ((opt = getopt(argc, argv, "n:p:q:s:am:")) != -1) { + while ((opt = getopt(argc, argv, "n:p:q:s:am:r:")) != -1) { if (opt == 'n') nnodes = strtoul(optarg, NULL, 0); else if (opt == 'p') @@ -44,6 +45,8 @@ int main(int argc, char **argv) search_all = true; else if (opt == 'm') max_endpoint = strtoul(optarg, NULL, 0); + else if (opt == 'r') + seed = strtoul(optarg, NULL, 0); else usage(); } diff --git a/tools/testing/rbtree/rbtree_test.c b/tools/testing/rbtree/rbtree_test.c index c723e751b9a9..585c970f679e 100644 --- a/tools/testing/rbtree/rbtree_test.c +++ b/tools/testing/rbtree/rbtree_test.c @@ -16,6 +16,7 @@ int usage(void) fprintf(stderr, " -n: Number of nodes in the rb-tree\n"); fprintf(stderr, " -p: Number of iterations modifying the rb-tree\n"); fprintf(stderr, " -c: Number of iterations modifying and verifying the rb-tree\n"); + fprintf(stderr, " -r: Random seed\n"); exit(-1); } @@ -29,13 +30,15 @@ int main(int argc, char **argv) { int opt; - while ((opt = getopt(argc, argv, "n:p:c:")) != -1) { + while ((opt = getopt(argc, argv, "n:p:c:r:")) != -1) { if (opt == 'n') nnodes = strtoul(optarg, NULL, 0); else if (opt == 'p') perf_loops = strtoul(optarg, NULL, 0); else if (opt == 'c') check_loops = strtoul(optarg, NULL, 0); + else if (opt == 'r') + seed = strtoul(optarg, NULL, 0); else usage(); }