From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010061.outbound.protection.outlook.com [52.101.201.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3F09335A3BB for ; Tue, 10 Mar 2026 16:57:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.61 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773161856; cv=fail; b=b7Kf0IdbJXEosKSuZPfRSOMBT0OGzXN3t9I2jQoyJ09X64rI+q78eDvUEi1wDs2yWVLmgr2aDjZe4kCEzoYB88KEAc70FGVayUJulaYf6FjGk5t/h+5cZ9xLdG0kRondz8lhnZMOwHMlq0Xz3LP53ZZ4hzttbTNqfrTuJ/S/+/A= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773161856; c=relaxed/simple; bh=ag94G8eqQ5mniD/uDXYbX2OQP0B5tsoQPXPrCxDum5E=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=SeWZlpys+ZtDzQWZc4pWsF/BUbONRheYVhoz4pIA/YO//sX09sN1g90mJ7DCaUK5Z/eureRAVvMTy97mVDU/3I4EMTiawQq3r0W/ozP3gpsKG0gKkQRwV7ohc/mTlojdPFLorVRCZ2scOpkTLg8oQBcYygyriSeOFA0vKk+apWg= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=dxzeuVgz; arc=fail smtp.client-ip=52.101.201.61 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="dxzeuVgz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nT4wJSIw64nUxhrMj1M81NGWGJFUl1Nn5Ryi4LxpLDVuXVqepajuaoSAIepfbhYipLV5XXmJzOGuoxX2Yny2sI8R6muG7ouZOBmbAR524APRSt4XO3/w9CeztaO+KnQ5ba6zzxVGPQG9KJkbTlDxrozvf4rLUhcHnTu58DF18oDD694FjxsTBe8Ch+O8GAsSTiTOEKnP7qvFs6R+ayR/sY8qBTOm5uu4DH1kXOH72J1jkdb5qGmFalTKXWzhtrF/HrQo0lwhQbnyMhAb62GO15/I59QOZMBL2npizv3wh144yfsHSH0D/1TyfawXXkkAkFBygGNu4xPyybTFhDzUDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tvB7NzdsXUg50ncs9lGoEqV2F3Fyg/4QXYYDWkd8OAQ=; b=Lgf5+4/w5G0D9f0i7AnsNjooSXcn8ivV5y1puYb4DdbpPcqVLseZPCN434ruQHCDbyKNPYNx3EnN192dBQTvNKsqh7tS+ewbKhZvtAH4eE/TYOn31nNoJUEAQhMH7p5RN5PJka6b8qjSSInHElaErZ75y17dm0XENtWHSg2xbyI4gWtRDPpn51AZ+Dmt2AN+D74KS2cZlKRCaUFashns5lf1IMztisI0aog2yZK1v9r1kirtD0f9ui7OW4ZUfneWSHk9leL4wYYI75Qip5u7Y4GQKS21ie+HvU0XGSxMQV6+dY5g1eGIX3WQ2tfzixUHut9kC1LIAAKXhOtjBrwJRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tvB7NzdsXUg50ncs9lGoEqV2F3Fyg/4QXYYDWkd8OAQ=; b=dxzeuVgzgYMCx66eSZJ+rh1dAwS1spPwm1e44m9ix6JE+nums9LmLNszFdN2zesZt2PrLRJxuu2JNA7L3HPYZJ1n2KCMhisDZPFru7hopCfUUNfcPpX4U9iQVJPP5iSiNjGgiv/CcOuw1h70r+FC2L5ogScuqWc/e0ML+RTMeNHguFTLkOaF9bpC5e3gyvpqT8TR+lArHRTPjDSCv3zWOcKcgLiFxJ9oTPtMcIxianHAMdCA4nqc6n53yFaEqQEXXUEGfblx50ZfS6FLB5AAMIXmx1DvUzLpWxMCQjdpa5uIU6zV5fP1mw3s6dxEk3oMcAWSkgMDwhWzHbZ2sXh1eQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) by DM4PR12MB6040.namprd12.prod.outlook.com (2603:10b6:8:af::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Tue, 10 Mar 2026 16:57:31 +0000 Received: from PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d]) by PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d%4]) with mapi id 15.20.9700.010; Tue, 10 Mar 2026 16:57:31 +0000 Date: Tue, 10 Mar 2026 12:57:28 -0400 From: Yury Norov To: Akinobu Mita Cc: linux-kernel@vger.kernel.org, akpm@linux-foundation.org, Yury Norov , Rasmus Villemoes Subject: Re: [PATCH] lib/find_bit_benchmark: avoid clearing randomly filled bitmap in test_find_first_bit() Message-ID: References: <20260310152126.6919-1-akinobu.mita@gmail.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260310152126.6919-1-akinobu.mita@gmail.com> X-ClientProxiedBy: BN9PR03CA0281.namprd03.prod.outlook.com (2603:10b6:408:f5::16) To PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR12MB8800:EE_|DM4PR12MB6040:EE_ X-MS-Office365-Filtering-Correlation-Id: b69b04ab-9b0b-44f4-3762-08de7ec61e2d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|366016|376014|1800799024|7053199007|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: Z2ZtFJJqHQyazEorZAmxCs1fBLuTsyPf6K9v5xfmyL+B+/XVEuOd1vnXChbYVRmmm0oEww8YAC6qKzy72c1m/SCmbc+aNdV667dRAG7yhKVAFr1NDkj3ivZWufkt2zQBbCfC/Z1cckoQ6ZhhfUXbnrz2kvmpAd88Ma11HE4muDIhzJEUQeGqekxxQjiTfxqdfFeyCrtce0OMRX9NXBOPlEIRU1VP0H5t2W82ZDxy9R5R2VIAByU5icvINwHUl+Udb3iI6fs7pF8EnOKhGB7nFglZ++0cklccIJvTaU0u3e3uZqSnjoyfzd3rHOwIhf161bPNl04fv4vYjR6qXhNtWeVHJ1jdr7GucowSMPkhxvo8q3GNSn/NU4+DIvAhDQ2IVJa34bFEuoV7crdWbQS1rLoPb/3K0KsziLoWbNpjXzzKIPYqKF1qhEn5ExeStRaHanBLrf5wTVAp6kmNx7KZgImYvaR31Fz6FqwcBqWT9f9zioBQa1uGGTe/c3RaOdxdeKSLoUeJUbxRCvMo5oEjoC5r5AEFYXOksXACkD3aS8vDYqzz69HNEaW86YQi6EMyGuRfhjO3TIX2AXpJdbXv81JJycSmj+sTMJULPzYUnX7yyQTcUkMDQIgy8HkqetgzG+tHBdenEVjkM9vKMSz3C8nt8JSIM4KApKV8I66Etplcw3Q+SAVSp/6uf7S3oQy6XksbfVtfk6TpFYj+FYvYrLJQk5b2ZHzqgzea2J+M5lc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR12MB8800.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(366016)(376014)(1800799024)(7053199007)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?q+2Ci3IblwiqF9Vl8Prwibo1KiUIL+qWjX2QWQzzUiQxTbfL/tzYsCCYobWA?= =?us-ascii?Q?JqrrGTQmuWTjF0JwvxpbAyjKjZ8C+83Sex1+FbtjBDNKlkmruznHpkD9ApXQ?= =?us-ascii?Q?vmB6gzq3pdAOFoK06ssALDuvhjxd+OqjKa9w1n7w6tjRWUbOEE8LaKuqbDWZ?= =?us-ascii?Q?XmRP23GlhtpT30IklapO7MaSUGSyhKTdRt40gxVBjc5kBi8HjefXghOeyD/d?= =?us-ascii?Q?wxrgINrM1/Yd3/sGEPyhaQiaWGKZyxkVba+EQSIaMb/1ngUxOJaZZXKPUzHS?= =?us-ascii?Q?Frx90MdyqSYqD9WVKsemA0f2ZWMc/i6wAePFuUMPuQGuTErdXXYHMRjQOxp5?= =?us-ascii?Q?vn/4yn7S4mb+VAHELobc8p1hH0Oqfb0VGtzIn8Fchep8Aqs4P4a9fZxSPiAU?= =?us-ascii?Q?2LcbGlzHk9oMkr/qZUIbsoqkP+7IZZzn6cuwE+U731r6LRKd4mqdcq0p/b4g?= =?us-ascii?Q?0VcQBLJjjGKYGgJeErSRZ+iLx/QbUmq8BYCgX0X3nDoQatVD/b1gHrJpgokh?= =?us-ascii?Q?WO/XIlV8B6mueTDzB6M02XoB1k2FQ4hmfxiHV9Uu/MyiIWSzJE6gm15JqqKh?= =?us-ascii?Q?M5c8/jlmPbi9oZzDGE0w3apHJMvbVDovgIaUnYMghYgzF6mMlnpSwSyXjlPN?= =?us-ascii?Q?4HkYe/wm0QTEi32HgdQhFCq3FfmNb40HceOzFsMeonWmx04KPsLkmxEA77v2?= =?us-ascii?Q?X8gTi0PAsooStZk+AbmvGTq4Jj2kCCocJsH2UBxN6l9eVGyuX7buvDgGep7I?= =?us-ascii?Q?FKnyz/osc/jPMLsullOLleoMtkv2c2U0ZkBZQEjbCm7llTAvBXv2wYBh9OO0?= =?us-ascii?Q?ugekQCjJtjGanh64dFFtRkeTd6sxaPazS5y8SezqpE8ogm6rXMz5XMYsDH9M?= =?us-ascii?Q?AqffpE8KQ/Yx/q3W8mPcfTYneHoGPlt6RbTDiCEHT2OPMHGCeo//oZ45EOl8?= =?us-ascii?Q?4u8YD0PjC3a0EWd7JexdqZ2PaI7BxDj4oWGjyCSzkvxPwoZfI7zWKeaoGhTZ?= =?us-ascii?Q?d8u2QsmVQpyFQEVHr3/djYqsUL51OhYSiKFLm3DJBhqOeiwGjAD+fHz2JBN6?= =?us-ascii?Q?54UWmuImf+iZJ0W0vN4sxTuVVCAN05x1LJJMYtEr7CR48aXVMXRU/u2A8iiE?= =?us-ascii?Q?ecyoGjXYbkSAl9pYQbsc8Q0dWGr37Cue2jTB6VqSEsUBvKqohV/IKPMOSGrE?= =?us-ascii?Q?E3KGN3KZnw58B2suV0/VQj56zG2c1ZiT3NcHAbqlGVKjuRpChWhD9L2k5Dvp?= =?us-ascii?Q?4i5Xp592Rc7siaxkvQVxCCxWQQuI4EP6F9gOoRtQd0yeHx5f4l1pg4Bb1g94?= =?us-ascii?Q?GoNki1LV/vV7v4651obvtujerRNEDdEGVhXeT7G4IGFWuJ265XyGxhX29pLb?= =?us-ascii?Q?8toBFctFnsI6GramDQcKUBnd4ejTQCjLqeH11P4FV81FjTbrs34Bkp9lVOjq?= =?us-ascii?Q?3ZgciZScNRPTSQeWnQ0nuvFCGQjxc8zASnHGlDw8pePoiDgbqo7daivG7dhO?= =?us-ascii?Q?w7yDCz2rzZoRYoguFeT3x/p+0BE1H35Wm94SJKZRp92Uk5y3nN+KKsw1ub2w?= =?us-ascii?Q?EWRNBdFN7YOfmKlr//Gg+29kZZrcCG8gSjePmbhtSlYCELBNQwIWjs3QGK2T?= =?us-ascii?Q?Ma/ZfOD2SB+NaasMt9fq9KopTvH0dkyJ7x2r1Pqb7s1Mt46lkaYBBp6/NnSz?= =?us-ascii?Q?jUgwrUHsurNX33ObSnfYCTn+XUZ7WrgVeTbo9f95ZFjjK70A7t1uZUo5W5mg?= =?us-ascii?Q?mhbsAl3Sf6ltEkij7+/U63qwzZG2tIshayv/8oOXOLcKBAjoANF9?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b69b04ab-9b0b-44f4-3762-08de7ec61e2d X-MS-Exchange-CrossTenant-AuthSource: PH0PR12MB8800.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2026 16:57:31.1295 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hGKX3I8yX3VjxpGRnGKwllkQa8Zc+RhJHl9hywH/tymbLBMamz0WYIhI79va1xBqbBRlq+HET31Gali8Nz5MWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6040 On Wed, Mar 11, 2026 at 12:21:26AM +0900, Akinobu Mita wrote: > test_find_first_bit() searches for a set bit from the beginning of the > test bitmap and clears it repeatedly, eventually clearing the entire > bitmap. > > After test_find_first_bit() is executed, test_find_first_and_bit() and > test_find_next_and_bit() are executed without randomly reinitializing the > cleared bitmap. > > In the first phase (testing find_bit() with a random-filled bitmap), > test_find_first_bit() only operates on 1/10 of the entire size of the > testing bitmap, so this isn't a big problem. > > However, in the second phase (testing find_bit() with a sparse bitmap), > test_find_first_bit() clears the entire test bitmap, so the subsequent > test_find_first_and_bit() and test_find_next_and_bit() will not find any > set bits. This is probably not the intended benchmark. > > To fix this issue, test_find_first_bit() operates on a duplicated bitmap > and does not clear the original test bitmap. > The same is already done in test_find_first_and_bit(). > > While we're at it, add const qualifiers to the bitmap pointer arguments > in the test functions. > > Signed-off-by: Akinobu Mita > Cc: Yury Norov > Cc: Rasmus Villemoes Applied, thanks! > --- > lib/find_bit_benchmark.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/lib/find_bit_benchmark.c b/lib/find_bit_benchmark.c > index 402e160e7186..00d9dc61cd46 100644 > --- a/lib/find_bit_benchmark.c > +++ b/lib/find_bit_benchmark.c > @@ -30,18 +30,20 @@ static DECLARE_BITMAP(bitmap, BITMAP_LEN) __initdata; > static DECLARE_BITMAP(bitmap2, BITMAP_LEN) __initdata; > > /* > - * This is Schlemiel the Painter's algorithm. It should be called after > - * all other tests for the same bitmap because it sets all bits of bitmap to 1. > + * This is Schlemiel the Painter's algorithm. > */ > -static int __init test_find_first_bit(void *bitmap, unsigned long len) > +static int __init test_find_first_bit(const void *bitmap, unsigned long len) > { > + static DECLARE_BITMAP(cp, BITMAP_LEN) __initdata; > unsigned long i, cnt; > ktime_t time; > > + bitmap_copy(cp, bitmap, BITMAP_LEN); > + > time = ktime_get(); > for (cnt = i = 0; i < len; cnt++) { > - i = find_first_bit(bitmap, len); > - __clear_bit(i, bitmap); > + i = find_first_bit(cp, len); > + __clear_bit(i, cp); > } > time = ktime_get() - time; > pr_err("find_first_bit: %18llu ns, %6ld iterations\n", time, cnt); > @@ -49,7 +51,8 @@ static int __init test_find_first_bit(void *bitmap, unsigned long len) > return 0; > } > > -static int __init test_find_first_and_bit(void *bitmap, const void *bitmap2, unsigned long len) > +static int __init test_find_first_and_bit(const void *bitmap, const void *bitmap2, > + unsigned long len) > { > static DECLARE_BITMAP(cp, BITMAP_LEN) __initdata; > unsigned long i, cnt; > -- > 2.43.0