From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 026502222D4; Fri, 18 Apr 2025 16:10:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992659; cv=fail; b=Ygv72qGPW4U9O2S96F0qLrYA2OYcjOotYuwvZi3zn8VIViZSfAiGbY90dMvcBlczm7WMc7kAGjaHnNNrotczzm1KN04lK1S/TFRBlfJqY1fOAgkCJdgxGOMOLLop45RFIwrvFHk6cxxEsGXt568Lz0IdyyOpuaWjncXStcRLkn4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992659; c=relaxed/simple; bh=SOyhGC0pPN09w4WjbFHrNewdQ+j1R4XL7Ril1+7wWsk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=baGXmBqwYw1vLkvYsp8vHAV4zyFFQiRN5Wm2osSybuj+33nHajoPcW6aPk3FxMR3gpdSog7dnVcZHwZOvO9OGa2LH10Kk201IScKf/oDNJkKFBBnvgqNvjI6f/TcLRWSBMUCovA/PeRlnRxCOn82wRvI56HbQMeSok2A587W+Kc= 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=Ae5xpJVz; arc=fail smtp.client-ip=40.107.94.79 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="Ae5xpJVz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p7Ux1WxUFunjdnxmh3M3gs2N+0Ty0f9dF3e8q8VRmG2jyMl+PBrEtVhEZvtHPeQievRdvHzS9vBEd3KggrF4KVvMpxTCxXX8obfi3cc4CMQyjTGAVEvelwR8u9rAyl8UV+tUfnFyvRw/ww5YJTYNJofXGsfmY4W7tiFHe63jsbuEQTOMj1broUs6Ry7NN41MXFjmZdh244x5/TO1sWlDMrCkGAn+gmKQ31whhwzQyZt0tkklUuG2HO+izwgqHiZNNXCpeos/dZXHg5EIe8uiVXK3Taw9TSKtn/Kl9uCmlYFeTRPV+NmgXd5F3v424uHxkmEKK8mcbQD6md535E9E5Q== 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=0rUryLepTa2cjbLKJkNgaNsPrNToD9mdZ2QWuf5WMrM=; b=IN189XQgs/rWasS4JXBMPi/PBVIr503W5QERaaRaC3FcnbbafOYxeZcAmUABSsqiKT1x76rHiXgEcxveFdSEvwEdM/oUNtTWP5hlJ6I6D79S/r4sOJCP2r7MeVdg4jJnH5DZh9hdtZVi/PNdoDYnSdB+o+7nLYOZRO7QLQDM9dw/z92q+nB5v/NxiVs4V51Km7ODlAagetxW1vLHV67pVoPuo6nl4PDQfSGe51uH/Sljj3nPzYLUEW4w8i+01m3D1OBN58JGxemN3iO4wPBLS1Jf6HPj8HetfRhf6Pb6YgVtdpMLhWjA7ErdEcQXIxUeo6EkvkxVDnMEwmviNGlAvg== 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=0rUryLepTa2cjbLKJkNgaNsPrNToD9mdZ2QWuf5WMrM=; b=Ae5xpJVzZnKW+fiNC3GvY1iqF+JafISWj3W9ssX8QJNUrJ9T3tgrVjUrfoZw0Xged4E7Hm6w5hAJxBz/RttpNYjauAxkNSx7BZKvWqd1Ogq1prdwVfv2ERvkvoKPB7hSztuxPhms7sPaoY3uTg37Pj9VhcqC8+cbW3Modp5n/NYQhdE1hCF9l+KFO4aKGeDsNqKufBGOMo8DoqF8pR2dT+NDcLFf8zXTsGQGL1JyHFGvvKPzga6bJClmdzY7uxppXIZ0a7clJQxhWtrIfFAb+BWUThlzBVWVu5aca4HBIR9Req0b0Tc8ihlBoj8WX5xs28fEMeHeQma7B0Kz533Big== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:10:53 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:53 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org Subject: [PATCH 01/12] rcutorture: Make srcu_lockdep.sh check kernel Kconfig Date: Fri, 18 Apr 2025 12:09:47 -0400 Message-ID: <20250418161005.2425391-16-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAP220CA0016.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::21) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 33645445-a8df-4a10-f509-08dd7e93981a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?y8tujoIS6Nka7NStWOIi3VbNaueUVjcTsrJ2fD7k2Q0YaQZM5iGqHhQHfDHn?= =?us-ascii?Q?z7rEpONSS5jxrEdC3g/3Ajoon14P/Talt6bjS1RVBVQbACzdNeQJ+DE0isOh?= =?us-ascii?Q?1pkUGgYm8PaaNv4Vp4hkJW0QaQqOYjpp6fhwqdB8iAixYmY3SpE9iNrwUCEw?= =?us-ascii?Q?FaAk4VBIfo2cTgqWvAL3mAJ9AgJTeE26NoTcE/utS8l4fAZXhJVmijGuk7+R?= =?us-ascii?Q?5T6+9l8Z+sVcLY9W8yhB+X+EK7myfASbKwmDEITwDIPbEanW9m2wpoah6OD/?= =?us-ascii?Q?11CWFV+ZeuBL9eLmxKPFjn/nK/NaQLBXDqUkWWpwfCUXSW/bqI0iN8QQmDdB?= =?us-ascii?Q?2cmk1Q5jhGneOgYPLKy9JTOSH/jmJ/FWMhhKgyW9kQxfgAdeJDKH1PDvdlaB?= =?us-ascii?Q?x8c5CmTD/8bW9s4MeNb76dFgapXXACRh2vOmhcfJThzzgUw2FdW1edc/tOOw?= =?us-ascii?Q?JFUQvW+MfkD+kKnSo7Gg4Kfv/JdGbraoLkMWHkLVEA/8xH75U2KFUYoB47q9?= =?us-ascii?Q?gXG5fDlpAlXUAaxD/ripr0xyWAcaLwRadIosgVwTyBRJsDnYMJPAXafdsc8J?= =?us-ascii?Q?J+5SHAHtzQWtVBdXU4qyRu7Tb3jjFkIDFWkdOhE+0ghPu748rykQRwMhPbJL?= =?us-ascii?Q?xwNTgivUiWzFNmw7BXoawPH/ndoqNMxeXfx+yVQ2gvROfJYk2pC93Uu5bItE?= =?us-ascii?Q?9Yn62g2TqK6M7H36M3i3c+G4uPX58mcMM8NPSE5o4eItMT8tMZm8tQA3vCgj?= =?us-ascii?Q?XEvNu4WGDHvaK6BtwzIkOFFuNqANB4Z3x93V+2xqrVzub//yLiio6SOogXtD?= =?us-ascii?Q?b3+fgiOUpvOw1f5xua3S2TitvsoQS5hEDxtRo54xIZvo40mN/QXJNIhSj0zB?= =?us-ascii?Q?8aBxaEywM3EGHDh4EAqoI0x518YyV8gBciLvANH3X16DQnkGLgqJL7z8ph54?= =?us-ascii?Q?7szBHQXfVO/MkngndEgVPLEtqhud3BateKjLnsRL8vTUG7SrvWAVrjVe/5Qz?= =?us-ascii?Q?RfPo9KIQIYt8kh2eKOyeWQzbMmVFRAlijnl8sPQyCBIkx3B0c/68xARpMvF9?= =?us-ascii?Q?sW3baNVXz5wxQXCpfPbHQqYqadNDqP/lYi+MNCmpzKII8TvKn/roN56H1GMh?= =?us-ascii?Q?qW83Grt3WWU/22FyFetAYBlTQQGoVE5ok6nJFfrQZOAMAjN4zBnsbLJJ9ao0?= =?us-ascii?Q?8txNKnafk9M4Zynx2Ou8d3GZt2voRjPduQXDs2TDagFWWExpBaej7Tx/MJLQ?= =?us-ascii?Q?WtAsyaBTlob2TxlnCTox4MR0bxyZbRp8zdS/7XGcXTyjcJB6D9NsPvqM2Qa0?= =?us-ascii?Q?ajxJB+toq8aWhQWaxzPWTVXOgu/TcnFfgK35xlaXLS+Xd5baXVEH+nhVkn2U?= =?us-ascii?Q?rQcb5qQ9gpHyBl1HrPuWt2OYp3zPqzTakVmODhttHdNFvni/G+z0p9+EaLxO?= =?us-ascii?Q?gESeyyuPtxs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sdIcs4xkfwpNnG3BOsx9pjmflgqZqn3Gfu+6pyoDQfeSSUvW1M39bOxvSWmU?= =?us-ascii?Q?RcNl6jbnn38ynIeJSwL+SsT0i2k8yojLZ7UJLh/V+2RIwEGxrvVu21BQ4KM8?= =?us-ascii?Q?HDJssKA7QLiyUDEyVd7SX3QeuIeK1I+2RnBhcr0vcuiYRU+i2AhZOt+WFfQw?= =?us-ascii?Q?SdBoB2zS/BD/LUEhykO2wwRFCuBwBWvY5isghUQzqZ1rSLIj94omQT2u/AIr?= =?us-ascii?Q?2/MozfhDVN8Ll07SEDXFXXwFVjJ7U+lPuL4Mujc3OuYWgxaz0ltQCuCbF2vm?= =?us-ascii?Q?i4PmmSA3vdgUKEttmPt8SKMoX46CDLxaoUPrdajl4axEO+VuPyW5PaooxP+i?= =?us-ascii?Q?MJ4k+40RFIRCztFKrPf2ulewzCzArgMwiv4i8IwDkEKd8OGRBttuZKC73UF5?= =?us-ascii?Q?Y1QErPjmMYY+sCe63aUbplq5//KZhKslusYq3oSEXNcJNfR6SI9nB4Ic7GpS?= =?us-ascii?Q?eNoCPLKFxhquO41smnt8Up59R6xjCrk8R0JtYdhcRP5AiAEqWo/wP1d8Wikx?= =?us-ascii?Q?pi6+SZVLWwq1iemmyZWCA4Q5/MkhBVGxWqF4oaNSgA4GMAjiVDT20BQ5q0YD?= =?us-ascii?Q?h42667ctouq7IFVyz7auEcQwyKLmvj8FDGXB9z7bY2AdCw69IxfUpU8qD/eN?= =?us-ascii?Q?8PcdXQAIKc2N9pZzRCy1mGlK7vSBi0M8oXREpfeA7KJRNX5mBxxnh4dExKah?= =?us-ascii?Q?RSnHvdVudmW2t4xL8ZWtbx6IfkrieVXIuLcjH5bSISy+Sd+N6/YqVfak8DFD?= =?us-ascii?Q?X+9uUlS9JGXy5qF18+x27tZTQ9G0W1U/s6nRGHj12tVixBLgW5lMOLyStXu6?= =?us-ascii?Q?VX7fMNUqeZ21UngsI9kiG49JOcPk6YkyeJvkt0icpSyjWWGyrVLpqy1qVt16?= =?us-ascii?Q?BVYSHfvvZ8XM+om8fy9fKoqHhjeCBvl+QeabeWK7ogzrox26uJM2J9LukpC5?= =?us-ascii?Q?z0CWaKnwJfsHuGw9qX1Qiz8WRfnByTc4Phv4LHEGLQXGvdV9BMG5yRMQK0me?= =?us-ascii?Q?xk5/7CNh4UMwwBuFdXbjvCp8WD7jLaJ62gFBs1gj7hUcOme9L2jL3q/CqELA?= =?us-ascii?Q?ZLdm7IKJzUXPtuVKj0U3T1QPKo5MTXyTwVv2F6gsNoNwwNZ8Mbv85DtSwcXJ?= =?us-ascii?Q?Jpy/vchHTPftGb9zOpdWqGHSjQPazR2BI768v/UFA2A0Mla5mXc52aw3KOUb?= =?us-ascii?Q?S6ZhDY5Aocs41PDcHQIRxtsKOm3Zj4D4oZMWHcSZx3pRs3XcV3Tr9XAStVdI?= =?us-ascii?Q?j2/+F9X2Ghx8Pmugo6m43PkWmg5t5QeSZWXeDqNY5y51kb+ZVWqnPf6eynwt?= =?us-ascii?Q?qr0SFH73i2aYzvnxDup0FLWZFgf37KzmTGJIMtD5xBORmoyk4dMJrXKiXGj3?= =?us-ascii?Q?vjGC7882O9Xx57aYLX/MpfJnR6N/B5TUXEOAcD0Db3vR8HCinb0Qv3Kr7MOa?= =?us-ascii?Q?HQuKIsCpXwjaPtGA6N5+rVGrjjWUGZXlX9Z1Kwyu9b1zRDpv4yw3JHF+3CtI?= =?us-ascii?Q?Jgwmp+P2pLjN/QvAwRxEMusyyoIbNCzsxL+L2T6sQaveNJFKsr57ULh8eROg?= =?us-ascii?Q?EYsuz7VL/VAJ0u3wIPYJx3GSpi4677rWNSlOsh/z?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 33645445-a8df-4a10-f509-08dd7e93981a X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:53.4609 (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: AO3NQwssEzc97MaXnG57GaVsS5uMbcE7POztbT0FxSz0dZ5ePnYRpCNopjUJwurJqrmnvLgqHikQnPpxeVCSlw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The srcu_lockdep.sh currently blindly trusts the rcutorture SRCU-P scenario to build its kernel with lockdep enabled. Of course, this dependency might not be obvious to someone rebalancing SRCU scenarios. This commit therefore adds code to srcu_lockdep.sh that verifies that the .config file has lockdep enabled. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- .../testing/selftests/rcutorture/bin/srcu_lockdep.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh b/tools= /testing/selftests/rcutorture/bin/srcu_lockdep.sh index 2db12c5cad9c..b94f6d3445c6 100755 --- a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh +++ b/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh @@ -39,8 +39,9 @@ do shift done =20 -err=3D nerrs=3D0 + +# Test lockdep's handling of deadlocks. for d in 0 1 do for t in 0 1 2 @@ -52,6 +53,12 @@ do tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 5s -= -configs "SRCU-P" --kconfig "CONFIG_FORCE_NEED_SRCU_NMI_SAFE=3Dy" --bootarg= s "rcutorture.test_srcu_lockdep=3D$val rcutorture.reader_flavor=3D0x2" --tr= ust-make --datestamp "$ds/$val" > "$T/kvm.sh.out" 2>&1 ret=3D$? mv "$T/kvm.sh.out" "$RCUTORTURE/res/$ds/$val" + if ! grep -q '^CONFIG_PROVE_LOCKING=3Dy' .config + then + echo "rcu_torture_init_srcu_lockdep:Error: CONFIG_PROVE_LOCKING disabl= ed in rcutorture SRCU-P scenario" + nerrs=3D$((nerrs+1)) + err=3D1 + fi if test "$d" -ne 0 && test "$ret" -eq 0 then err=3D1 @@ -71,6 +78,8 @@ do done done done + +# Set up exit code. if test "$nerrs" -ne 0 then exit 1 --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2065.outbound.protection.outlook.com [40.107.243.65]) (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 DC585214A77; Fri, 18 Apr 2025 16:10:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992626; cv=fail; b=l7c6Dr8hTkMuWWWws8yEgKFL4+O0jX8KSDeDDsAaTH/m/hw3jP2GtL2Hg3QPPhxEddEGvrbYXoZ5eU4Nj3Rr4rEFGIXgVPuqihlFplIQh16oMNPzNIDH6NTbO+VVn5i2YqlJSj3z7LwIrSp8FtoD1CuEusUhQdV3JfjVGi5ixd4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992626; c=relaxed/simple; bh=SOyhGC0pPN09w4WjbFHrNewdQ+j1R4XL7Ril1+7wWsk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Y4ZiQkJ710mrsV6wZTINP35VRElokmV4ERgOjEeleNoSj5vWpBYqUPfzTX9Au35C/3kuvJ7F2nytERzu09Gy8/0pStBYEaMpE9I989EYHqTEnhpFsRAlmVZNZw/LnwcIYYrl3/9vVmnatoDloJBexqjm1pk1S/tplWVLhbV+16E= 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=lKTnz1n5; arc=fail smtp.client-ip=40.107.243.65 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="lKTnz1n5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gNS3sA7gAoIkVkjWfGt9OsJrVtcXQEa0IHyTEsRCtVRV1+C/Yg2BoW40NmiiNPyeLqaXSCYv5yX0PSVdOt005G3N575rvt/PlCjFBOMjar8epPBKun8FRn8PgRkCd4KGSTd3KWTfJqJDtFP9vABj6efwsTaJK8ai7eEonSt3UyHhGqWlIG6+ns0yjCyBPNm+z04tI9hl3ytBKK0gGmx3n+7FqMzRyoMcMUoLWuBpI6Y1QGu+1k/eufWDPPmq2KFarTvhYyu3xO9tofS5y74VsOUB+Xeq/SDXA3QMHYTJM7Mnh5+csJp27zwVVObSLtvntceROjm5XtKAG3sSSPTpvg== 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=0rUryLepTa2cjbLKJkNgaNsPrNToD9mdZ2QWuf5WMrM=; b=b0vysPulT/17AhpPlNGooFzBlga+BE0QZadu3vU5iT7AfIHtcCkv7ii0a+Rqb96pP53GIMjUTjTsU88wLWQJD9NQOxxy69FpGAWVzvb2g3nHZu3RVqswu5HSufeUB8yJA08zN2/hmBu1Sy9koCG5LQtdhNa44DCJsaFcN4vdeqhORFRIz+lVZUsIIhEWeVc+onu3ifbr4BIJUl/6qz0l+fuX5bSm7yuqKyxUZeQr+sx4T56xqq0fHGpr3T5BRe881S95UZNgZviw3K0NKZpLpcBL2TkHbr2/i7Y4zF7dwcu2hixpcbe3d7BzCLzfjbF9SNiOUNIPOoesjkRTIMVB/A== 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=0rUryLepTa2cjbLKJkNgaNsPrNToD9mdZ2QWuf5WMrM=; b=lKTnz1n5L8Y0oBDoegTFC+p8vMM1HZFFxQv7X73m5BOoE9oi+VZI31xSjy1Ve8Zlg9Q6QopoAhtTMHQ5T5RvQqr1gHL8qNlzaSAAFYgwmZD6EVaZjx5Mg+7zTDClOiHe6MQ2tTUCHgODY2V5ZSSqaxDOSl6IVVQWKoOONNB7tv5jGyUXTK+nIiOnTMPxVa5sdqgU6/ErKin80ZBkAX6uPI6yyxPXxirnBw96NY1Pzr0X0b7e/LTWDX3RYKbH/WdCKsfME1/wFjFAaal5Bln0t5RzTjTUogs2hm6s77+kXrbfyRlREs/Z2O1kamDkvdc7WszTWqScKj+kN7j6U7GVpA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CH2PR12MB9544.namprd12.prod.outlook.com (2603:10b6:610:280::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Fri, 18 Apr 2025 16:10:20 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:20 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org Subject: [PATCH 01/14] rcutorture: Make srcu_lockdep.sh check kernel Kconfig Date: Fri, 18 Apr 2025 12:09:33 -0400 Message-ID: <20250418161005.2425391-2-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0065.namprd03.prod.outlook.com (2603:10b6:408:fc::10) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CH2PR12MB9544:EE_ X-MS-Office365-Filtering-Correlation-Id: 2df093e7-9646-4545-f6d3-08dd7e9384ad X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?EC9UqGpyje7N50c3n/2zSrWSpdzA1moPTFDodiXyZ2tuvuspcXL3h4Svhz7+?= =?us-ascii?Q?rxOq/vvScLZ7xJnD0s7DBYwjjMf8c1CMk1ZpIyaGBwSlAxbLRCfGoHypUIL2?= =?us-ascii?Q?zjynomTmRD51todJ7oeAkpw+Bm7DL2fvHGlzCIQ51fm+2pc+uPZfHJo/sqsF?= =?us-ascii?Q?2AgEDGt4WcBOTsNSn5ihRCBGU21s+YP64fHEtutAYLVAVAnZzUPSm9BVd62Y?= =?us-ascii?Q?tyRO27dhhKYisV3Qbz5LmOk+vquQzhHwy4GvmhIGpWwp2x0GbFl0zNLgLOv6?= =?us-ascii?Q?sz7z/o0ipSNxz0VpeJY9P/DZphroCvp3qcCv72Sdh4b1m+PmYePDpBPePzon?= =?us-ascii?Q?/KCQCMb0HRBsf7HcBfM0k4ELwfruU+JP/4BxIXWLAJQ2RU9A2Xt6Na90rmuv?= =?us-ascii?Q?BNo8/gmLtfxsoglrNsz9moXNROgw0p5UBvUMHwCB+/ymKC0Gf6ODd8W6tPcq?= =?us-ascii?Q?1wPeiYgyQhRzhMmf20b3kgyKpSzrkEvNFSbmMzXg7u1fwAZF0oeEveJy89AR?= =?us-ascii?Q?wqYbHrVmfHYIFgdCkXC6+FU8xnrjEL9z4qNlqxs7GzqzHXusnEhLDT1lhJv2?= =?us-ascii?Q?K6gNG9uoqjVtT4Cq8g+L96/yRUZFDNbnnWAOVag7dz4UNumzfpGB80YGUCZr?= =?us-ascii?Q?dzTGxeUP/TCMgRjbvzN+g3Kh1Rt3OnjU0vBmf4HxXDXvw+tm8ftmxhurxSP6?= =?us-ascii?Q?OilaHmlAeyWFJSWdN6pZoJKhM+aeVq47Lx4LJl1swjxt6YGixarf+2hbOe7P?= =?us-ascii?Q?/YQp9ehUIE7nyfrye35usiiILh0zivvq+zGi4u0L9N0L882/sOXBtxa/52sr?= =?us-ascii?Q?2lippPiWP1v9SwBC8uaWmwC3dEFA1NNI5ifUldq77lpWCkVp62eH0Ey+Cim9?= =?us-ascii?Q?MEIPIYgNOykgny5MMw/09ovh0xCh5NRXtUIqh/w1p9fXk3YTRoAcn2goSU3Q?= =?us-ascii?Q?zqaj1umAecuDBbO/MoquLnkTM8u4zvyc5/GxCqI7mRTkPW/Vz0UNPqSR7QLi?= =?us-ascii?Q?S9nDy8S8T+svhrE3LlKrxQ7WstPXi1w3gTQvs0uf5zzFTmYqRHlB6CqG0kRA?= =?us-ascii?Q?fSg/+kfPBhzyErerbhaNaez0mosXEPcEuUhBB7Z7+TgRogtmhbTwWKFxjbmn?= =?us-ascii?Q?r86kpol6WR1G+TRBxtncDI7W73NB91isepLTwTAkqeKst/7x1O7euPZvV9Yk?= =?us-ascii?Q?nVm9GmVxRUxL+BEXt7gbTcGsNuUJM47oox3r/DC9IT4yfcis82CgsDqiebor?= =?us-ascii?Q?7M1JOkQwUNCl+miQhKZ9xhNe1xXocIoZ/oLH3LrX/+D076cS26tc2FQ1rVVj?= =?us-ascii?Q?xhCLEqy0436u/oaJozrQyEAB4bw6NQR1z7Yim4i0lDpZCsnLArxRE3Fbhy8M?= =?us-ascii?Q?ecZ12lkLh8JXOmsGpw/mQnHO9nG1ChxBKmASvoEot11sGRyDZpvaI6JtGSMV?= =?us-ascii?Q?WIXxSgPw/Kw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?H4WZ4L8FWSOyDs+N1CN+6Y4KGtLy3mB2u10fkHdqPVYfRUOZo80OPdvwPB7v?= =?us-ascii?Q?S0ZOVdPFOAW/AEnD7rRK/CJADne+IMqpKCjLaPjYaquueTehyDsO8CRT6DG9?= =?us-ascii?Q?qjZI9G2GzlR34YlfvCcl8JbGrpiZuOy9J3zti/VHv9t7Qkgbz72mks2WmmzG?= =?us-ascii?Q?R04sdqyxwj27Njym5lNYdtnulqH0SjHiHZTr5rsq15XKdbZiJESHfghS3C8V?= =?us-ascii?Q?1oXwKCQ0Fm1SSnJbNK+QiiJdbjuzkIJVHJERp3MXk0mJ59+VeNbJ1sh3k2t7?= =?us-ascii?Q?qNmEu+lSTwxaFmRrxGmFKFPnnSdr6Fkn7GaLplgFvGailvJWvWmYBNlbRYwO?= =?us-ascii?Q?xT7qh/O/7DKfIiZd9Pdv6r1xxuF6eJqkTAQq4gA1kIur6/LQUwKl0+MyTHI7?= =?us-ascii?Q?WSQz45syuXxc/B90dYyznJ0EjAy3yFNWhzW7QVAS279xkMbgNBFOvLs3KW0a?= =?us-ascii?Q?YUlQAs4FyzmtZU/IRY0VqJhyExhA6C+OeHZSa23vjkjzJZgzEaq5BPlph3tT?= =?us-ascii?Q?v4A8DHvCwNneWqvVYXM/qmzGRS4Z+qfL6z2eNFKkQQjkbGCF0/FYNacDygV7?= =?us-ascii?Q?Zhx51uif+GHe5AtlVYOx0x3Pqnz+bG/dVpNozZsJgttBDMbz1Qd/GHVzXARd?= =?us-ascii?Q?nWTHpsjC2svJkwQKIzJwReJh17556QUxiUkFK95aSSzYKZ7cAqI4d67gIlHP?= =?us-ascii?Q?Vos/IhH1UySyCXfpiF4ERzOMsLsH3f5l03rKcSqplpbWDeZ2XRTBw4vNoMCf?= =?us-ascii?Q?uxKz2FpaDFrLcjikC1msSG2brMDdA1JvgBaetP+CkfSiJiJooX7lM9LVU9TQ?= =?us-ascii?Q?tHwe0zNI7HhPnaN737YVaqLoS7GPwpG+Mn69hZw3uWVp9N6Z98lrqhhgGsEa?= =?us-ascii?Q?4WK829FXOPqpBFd/YvUapbl3H3S9HchEA5zm4Lqk2LkpHrZ3lgG/pVOZZWxo?= =?us-ascii?Q?NZcnn5gMapG09cP5wrS+xs9mjkkdOrWRYepswr9QLjh/Xaa1FC+yfD3L9Clc?= =?us-ascii?Q?NHZM4OvYo0cQtIVYD/h5WYXuu8XC0PHzIk/qVojF4LVOwgM1AgF8IwNEj32C?= =?us-ascii?Q?5vI+6VTJ46lQDWhUY5nwK8xBy04Omu8AA2SHi8kUO82AAtw7hH9LQMG13eHm?= =?us-ascii?Q?WLxMus+HufqLs+vbdS1zjBpyCsPfxibWq+ncuCSe7jmR/EalzcPxqsMF5ikq?= =?us-ascii?Q?sAnWDw5SJfZTz0UrMOOvyK4fAMvnqJYs28q5J89843wcO7QmEziCIDq3PKZb?= =?us-ascii?Q?If441ZlwzVagm887UrO94BvKoWys+s/tUbnoddR3pAzEkYSfsYsdoR0aQ0nb?= =?us-ascii?Q?p8Yy2v8ENXMDRhmSzNZtwz+//t86sBB9bSYSsHvqfWwaV4zCfVOQkZecaatq?= =?us-ascii?Q?lbyUczNp7y7Ir7acF/gQnlVjDtq5u7/3BITQiRPLL2OLghw/6VEvnlZWknn8?= =?us-ascii?Q?lWfcV1BqcX/j8tygGM8kJZtw+wiBLHk8MKGncO8YCDrZB46LJwmutmWOWrHE?= =?us-ascii?Q?KOM04tSSNLRzOCTLwaR6EEYJU+p5ERxuwdGE0xi4dhUq97+3rOkpU2DZPMmN?= =?us-ascii?Q?1QZspJ8V1U5CY38q3Gg7IiD9YHAeWlh/JSBYDwIF?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2df093e7-9646-4545-f6d3-08dd7e9384ad X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:20.8526 (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: AgyiTkgVyeu9lWq+4MKliIADqtGm77qybLByjh7E5aIGx/wzM2l8nuMFM44La2Fxg6AdbwKuCjZ3n6BqoItnpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9544 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The srcu_lockdep.sh currently blindly trusts the rcutorture SRCU-P scenario to build its kernel with lockdep enabled. Of course, this dependency might not be obvious to someone rebalancing SRCU scenarios. This commit therefore adds code to srcu_lockdep.sh that verifies that the .config file has lockdep enabled. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- .../testing/selftests/rcutorture/bin/srcu_lockdep.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh b/tools= /testing/selftests/rcutorture/bin/srcu_lockdep.sh index 2db12c5cad9c..b94f6d3445c6 100755 --- a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh +++ b/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh @@ -39,8 +39,9 @@ do shift done =20 -err=3D nerrs=3D0 + +# Test lockdep's handling of deadlocks. for d in 0 1 do for t in 0 1 2 @@ -52,6 +53,12 @@ do tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 5s -= -configs "SRCU-P" --kconfig "CONFIG_FORCE_NEED_SRCU_NMI_SAFE=3Dy" --bootarg= s "rcutorture.test_srcu_lockdep=3D$val rcutorture.reader_flavor=3D0x2" --tr= ust-make --datestamp "$ds/$val" > "$T/kvm.sh.out" 2>&1 ret=3D$? mv "$T/kvm.sh.out" "$RCUTORTURE/res/$ds/$val" + if ! grep -q '^CONFIG_PROVE_LOCKING=3Dy' .config + then + echo "rcu_torture_init_srcu_lockdep:Error: CONFIG_PROVE_LOCKING disabl= ed in rcutorture SRCU-P scenario" + nerrs=3D$((nerrs+1)) + err=3D1 + fi if test "$d" -ne 0 && test "$ret" -eq 0 then err=3D1 @@ -71,6 +78,8 @@ do done done done + +# Set up exit code. if test "$nerrs" -ne 0 then exit 1 --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2065.outbound.protection.outlook.com [40.107.243.65]) (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 1EC47215168; Fri, 18 Apr 2025 16:10:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992629; cv=fail; b=Xfd6DrwhqGsaDSiI/cxUbvMl0h1SXxlsIKOM13r/MoRYQ3dktpkZrmXdfJOVy99P1yRpA2Q7DUGw4wChGqnEwRxgiQ2dFx7UagIHc/So0iDLF8q/IFMWI57mEv9pXkHDr02JAUkxp7upSY/pMjjwtq2xjPq/C+RMDdtV7QyzIyA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992629; c=relaxed/simple; bh=KEl0LBnU3WQsJrO8Ldcb+Kpi365bGlQph3n39vakKK4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Ia+GU4RlfOhxEaCkr/ekLiXa+MP+v1z1bROmAXJYiRZGeK2zif1AjXvRWQAlppCHrxYHP9oDUn3z0zogyWdRW71iCuMILWjliR3W8nPln3azLyQT+IElZbkyZkY6QL7BIvZARJOop7iLdZE21liH7aXWrKDyfkl7p2PSwn5/zpU= 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=kgm6JJfy; arc=fail smtp.client-ip=40.107.243.65 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="kgm6JJfy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vXSxv1RzeuWFmZtEUJwiPdQGQRywFAnCirI73udUU4XezBa4k7PE7ZqN77SBndiQ52qafaSKzMlk2DYxkvh4wy1A5ZmpV0g3jSVy6IBCpnFIQAIvVHyrP0Lpaod7rc3drWfD3301K9J6HakOw5UzqiL8nks8//UzXpov+43ImLz1U2sH3F9GwIIUNBTCBG5Shjd9543xw7gigJm34OGeIwzVJlNqsJbAmbpEJIiAyRoeZw0ByoLcQreOrdSkFRSxWdw6cNty8yCnSxMu56AZbFTtf1DZ3RSUeGXm8dpHXCa35Q4nT5buqjoqOE1UKhouq89EpF5xB7uyhmCFADeRug== 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=8fcuiC+7oyaqYgvXhDGY6OiNa386pzEP2TCloKjTN1E=; b=LuBPmqP78f8haicDAiVeOauxhDCGVTRE3KsVks3qfznSs0OFSYgNf61iqQSg8jbTzvKAc9jifF8Wxy515R2ErcqJhJToJu5IKowz3WS1HpiWyncWudmJJLq/ubvK5TVBMcrduMzp44ZTouqdHZ6AJzs74itjReC+SrW76TWWSmmfcEv3t0TDofKCP8UZRs71UBiYjA+KT4/aFiVgb/FzoDgzW6ZnBm1IkB0KeJfX5b18ZZau7nP/gBajdVLPYedD8tDxlAgDPY3/4GPjGQsvnbO/Ys0aG1Jbmn6LrPLfewS7Kz5A7bqI0/e19cZXYEiM1PAVqaLW+ri7bEZtWVch7g== 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=8fcuiC+7oyaqYgvXhDGY6OiNa386pzEP2TCloKjTN1E=; b=kgm6JJfy4Z0WBkW4TOnuHgX4T3tAZMVcsCExBlnVG7MlUPub2KD/3uHa8WCpHgJnDJq3p0Ox/SOUluZ2olHAj08Xo4y9qZbFOb841Qjxv40MbAUFjaS38YGoL4YDGlC9pwrPoCqwMWf8g8Wx9bF55BQWbbBLsmz9CGIzv/3kVbKFj7T1CUMYpZ6fnEFjTu2iPXhEIjbxGAPY5C1cqGt178lQm7nGva2LkZ3y2PjIVlZQesjPJzO8KA9wrdcaxanH3AjRghU6RkWIk3PhwWMaTXXHdkiqfCXlRmE1i4N203pT4A/chMmWD2asFgNuuybvS7ngE31NEOtotglO7igJTQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CH2PR12MB9544.namprd12.prod.outlook.com (2603:10b6:610:280::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Fri, 18 Apr 2025 16:10:23 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:23 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org Subject: [PATCH 02/14] rcutorture: Make srcu_lockdep.sh check reader-conflict handling Date: Fri, 18 Apr 2025 12:09:34 -0400 Message-ID: <20250418161005.2425391-3-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAP220CA0028.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::33) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CH2PR12MB9544:EE_ X-MS-Office365-Filtering-Correlation-Id: f5a97f27-4d31-4af3-6818-08dd7e9385ea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YzWc6eAUfZv1GOU4CpZAgNBlqjhqzXhG447oWfWt2WSoV99V3Myg9Y5t4G1M?= =?us-ascii?Q?MItrSH/jmlRsw4n8uTakdv/Xvf8IT8R1MkjMq/aljoK9/QNyXst21mM3TCYz?= =?us-ascii?Q?VHvOYoKoUeDkdRCUTOzPK/kZYH6I4eCoaXjlJTGhVg/BsFCUUNGOvDD8nAWz?= =?us-ascii?Q?HdgrlHr7tuuQ0UDL5R06znXpRQmvGku1hKPjY1q38M0Ea1krnO9KZDrXOSRP?= =?us-ascii?Q?g5oL8ZSSqoJiDFIWrWFF1Dma7JXZuaWffkRq24Bi/Zvt/8DFN0B4gXQuiIQa?= =?us-ascii?Q?kb65D3owF0tQGm+3Dg5WLh1tWl8RkrU2rFvyr/2/gDPlY69D//Y4Zm9vr40H?= =?us-ascii?Q?1MzsjQpx+N3ei+jUWPvj0PieZ07EqjjKEAmdZCLhMF7eEFHJUmvJKb61x3Mj?= =?us-ascii?Q?jdqBpZ2rptuG33FW9TwUStIaRdUEuIO8n+JRrvXaJ1TzKJYH0Lk2ySxCMjZV?= =?us-ascii?Q?0uLlh48cJQYkwxaGLclQAukWtAsCfhBnCVYY193iPgD6uW5Tlv/3YVZ7N546?= =?us-ascii?Q?j/yT39EoBYO/83E+W8ERFfvvZb4Jav1uB/INjJgpTPyenOF/NP8PIsGAF8f0?= =?us-ascii?Q?91ki8ke5xItdVPkdLr01/9qQS8oOMn9+A2OAg5o3YqIa4JXIkkDandpEjlko?= =?us-ascii?Q?EoMKzP78unc8BuFkrdnCvxYMmYQ6ccw0VbrhNfWzrcHbPuoQF3Zv9MHvcmAu?= =?us-ascii?Q?TCyTrmq45XnD2prpNTJFkanRdiw8h5brz4mv5UtDq8XjJb11Y6+RKZOqxgi/?= =?us-ascii?Q?XzCONJlr7grwtRa0MI/V5yCMPxLXxdI5+emucQpOP0Ux6K5Oy65KbpbqVzjg?= =?us-ascii?Q?vqrp5dm5RNzEskQIe+w054z48jXRaXgOvphsCVnmZcErEME1ArJ8MYm+k//G?= =?us-ascii?Q?sY1WnGv2HCLUsQ69xgxXnpt1+oeTWgtjOSNtWwaWsEj2i2ceSsdrg7KZNwgx?= =?us-ascii?Q?3DojEEfvUAVDC3nQIS/N/562ugkpTrvvBakb+HK5f4KBz/EfjjoeWU2iI2QA?= =?us-ascii?Q?eob58TSNivV+V0T292jqsWrgbwDeC4HSxiWfwHncHychhkRusfNYP20JYC0F?= =?us-ascii?Q?jOAyY23uOEUMI9tCXUnj3hWlEDcoFvIws0PcbY4hD1UHozfeeZPAm4ANexVy?= =?us-ascii?Q?BlNAfknxeydNGQ+V3j/W2x2uKEA73cZ2CyKZtgD+N4kT0OM6h6e/pbz2GveH?= =?us-ascii?Q?cQXtTYAfGuC9BDCetOPWoqiY3qaxoFdMX1/Q2Oe+ScBy/s+j1dlCmDYXvmEt?= =?us-ascii?Q?ruH5z4iiuoxF46UixB3A96sERTQsGJqH8Ldgo7P2c1rcmb1heD27Y0HGEAfs?= =?us-ascii?Q?Tl23iVCIT5wuUoW8ei2vcPcO6t0HRlPJbar3HGb0ZAkyk5NlME+0QU/Z21sj?= =?us-ascii?Q?Gi1DRdiz5fBqQdsUd9de7Shw/igsgEUYx2bA2UEcCB1fDMANiyCUsj5Mk7d1?= =?us-ascii?Q?S39la8Zy3NY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?eTd3utZkeMcBUtce6Up9EYQgIUMQz92Z4kdQq/am4Egvpr9LgR8U18NwNaqd?= =?us-ascii?Q?H6dSlpmAVD9DEKPvR9ckSWiBFrvXTpiluXQoek21F1RPfdLkz6eS/aj6Zm1b?= =?us-ascii?Q?W386QSkG99pdFTxClFx5STGKcRj5yBt+rWoA1jh728bbGPqfhiYK2hkAFCgU?= =?us-ascii?Q?UAOBVltwuVHCPewkjHPIj/cfr7M7Lmm01ooplN+1GjeNM82BuXVNTuO7budE?= =?us-ascii?Q?6pJ1UnoRtvOSZJxKSIgONgsPnC6b/Yll0iUAp6kQSRrucYgSgtlTm4ztKcR5?= =?us-ascii?Q?+1T794mrrlSgBabZk7/s12snOUUXZpZeLhaU9dJ/ylqR7kBR25yGFiReeL1n?= =?us-ascii?Q?AH6osuOVhNEavGDg2kteGr8o7lNjvS+g6VFK18fLP5VTWQjr9Ke3gtuzD8QT?= =?us-ascii?Q?T33obWilccfNgx6t/yGuo0g1DZ656kwkugTTekGoyeghMMCmXmfeS9+WeTpb?= =?us-ascii?Q?doT97T3QgDj87D2SSXCcx/hLoFlSalHFSXdVpk43X3gjxm7viEHioQ92Cfxw?= =?us-ascii?Q?fDuhaCArYpUCvmr+05BAtLe46yi4lY3d44JIklWlZ0IioNsHl8hNO128BiEd?= =?us-ascii?Q?NhfBLuoIzl9y0U5xPyD232qI4tchlmAlVZ6C8xN4Eh+6SoaW6wCZr1rTCzqN?= =?us-ascii?Q?vCgNY2Qd8C7DhCrR8wkFAb7Y4iQNPvknYwsc6pYxybKXyLmOOzZsxqO+lHGb?= =?us-ascii?Q?DUzKGPtzCWqdEghCku6SrSvEUcPbsB9c0ENtS1CwLdU2oPKuQmEDynUfztQz?= =?us-ascii?Q?6OGAycyh4rX/B85vsp8E3MYcRKl9EggUS3GALht/9ReICSzu2oFkf5O/uT6P?= =?us-ascii?Q?RGECdlErt07ebN0qjB5zIz9CggQamLNyJgJ90HRc4r4WQIstmTTmST1RrWAq?= =?us-ascii?Q?txxK66FWKepqS8axONwnBe79n92vCwLUpHltluhwuaPTFWS36hUAmrY2NSCv?= =?us-ascii?Q?R81JnMHhd1wcBUf9WSVRAt6ltD+s2DoRtEN3hNW120f/Z+SfEimTh/g+pgWT?= =?us-ascii?Q?9zQi90caPeFSvZ32iIgci/bSkMZeu8yJIcJRz0yW1k3tiQjetK+GlBOqPRXG?= =?us-ascii?Q?IkqnXbJigpmGkvIlFO3YNouo2s09f8eh6Zk+afFrk0fYaWCusFEGoj/dPUEV?= =?us-ascii?Q?1FEx4UUvr4je6WnnCTTQIfG7h5A5BFnXWpyb3HSk/Wt5LuU5+WiIZX2J+d+z?= =?us-ascii?Q?TnbBMqb9EMDixuA8Ktee/i14M6bBznr+NY7UinkGJQQdl/Vk2C9VFv8E5Z5t?= =?us-ascii?Q?DYL3/xsLrxJ7v5BRdqBDbFVBybHLB/+tIq4FH/loayz+DTKb7cREkiwPViaq?= =?us-ascii?Q?gs76cnbd1l/y6RsXVaN3cUeCegfGAap89vTDY/3+9VEz+pi0P1GvteViueCo?= =?us-ascii?Q?8AYwZyQLRJg3MQoQKlLMc5ERT4rlXo3RO+CSPBRTB7xJn726Ir/bgh4EWSxD?= =?us-ascii?Q?W9JabFfq0gbByCXBydA/esmagUjrX1TdIYWAXe1WBpuigFObGGlnK+Ue35Nn?= =?us-ascii?Q?xhPPtN+X0V7pbFNNYsjnySUtpt2dt4+3Xe3mnzY0UVRvpySmdfuH/lx0Kueh?= =?us-ascii?Q?yt7TAS4CfgsKjO51dC3Qv2ciMpd/ciOktJpdDGeD?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f5a97f27-4d31-4af3-6818-08dd7e9385ea X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:22.9413 (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: 0nag/jzAmUDHbxladmoB5jrj7K0GtDUBHZOh3+G5d5k+5TiOLTAQoZLk1ciRHkiMXpqc9nbrYduzznL6rNaXDg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9544 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" Mixing different flavors of RCU readers is forbidden, for example, you should not use srcu_read_lock() and srcu_read_lock_nmisafe() on the same srcu_struct structure. There are checks for this, but these checks are not tested on a regular basis. This commit therefore adds such tests to srcu_lockdep.sh. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- .../selftests/rcutorture/bin/srcu_lockdep.sh | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh b/tools= /testing/selftests/rcutorture/bin/srcu_lockdep.sh index b94f6d3445c6..208be7d09a61 100755 --- a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh +++ b/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh @@ -79,6 +79,37 @@ do done done =20 +# Test lockdep-enabled testing of mixed SRCU readers. +for val in 0x1 0xf +do + err=3D + tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 5s --c= onfigs "SRCU-P" --kconfig "CONFIG_FORCE_NEED_SRCU_NMI_SAFE=3Dy" --bootargs = "rcutorture.reader_flavor=3D$val" --trust-make --datestamp "$ds/$val" > "$T= /kvm.sh.out" 2>&1 + ret=3D$? + mv "$T/kvm.sh.out" "$RCUTORTURE/res/$ds/$val" + if ! grep -q '^CONFIG_PROVE_LOCKING=3Dy' .config + then + echo "rcu_torture_init_srcu_lockdep:Error: CONFIG_PROVE_LOCKING disabled= in rcutorture SRCU-P scenario" + nerrs=3D$((nerrs+1)) + err=3D1 + fi + if test "$val" -eq 0xf && test "$ret" -eq 0 + then + err=3D1 + echo -n Unexpected success for > "$RCUTORTURE/res/$ds/$val/kvm.sh.err" + fi + if test "$val" -eq 0x1 && test "$ret" -ne 0 + then + err=3D1 + echo -n Unexpected failure for > "$RCUTORTURE/res/$ds/$val/kvm.sh.err" + fi + if test -n "$err" + then + grep "rcu_torture_init_srcu_lockdep: test_srcu_lockdep =3D " "$RCUTORTUR= E/res/$ds/$val/SRCU-P/console.log" | sed -e 's/^.*rcu_torture_init_srcu_loc= kdep://' >> "$RCUTORTURE/res/$ds/$val/kvm.sh.err" + cat "$RCUTORTURE/res/$ds/$val/kvm.sh.err" + nerrs=3D$((nerrs+1)) + fi +done + # Set up exit code. if test "$nerrs" -ne 0 then --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 B29C9222597; Fri, 18 Apr 2025 16:10:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992661; cv=fail; b=iKTAlrYNNMjiguYX4bRIglv7UUsVSt5w53eV5tx7T6ugi691Bg/ME8QEHaX4ZZZZGdbNY7aJjHa4RXcr1ghveWyhwr2reAQaInuHnjVE5Q1cqTClC+2trop05Z9Dmy1gIBrBzzLxsuBIbYC6vYo+NHAQsvJqEbnbxRMfujC6rx8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992661; c=relaxed/simple; bh=KEl0LBnU3WQsJrO8Ldcb+Kpi365bGlQph3n39vakKK4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qPp5M2eo2n9eWLZur+rmUED8gkirnk/fe/6xktnQz9PaWFAjS5zt3SxR1wo6SpmxZVu0FhLhi0SHTmwlXbK5H1NKjTheJlT6uGKraVIZPbJcbIfa4H7Cm/8RDEXh9l6a8E0t4eLfDUixBXrbDOwJh9AsUL2M1lUtnqqihn9Kgys= 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=Y67sZ2Y5; arc=fail smtp.client-ip=40.107.94.79 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="Y67sZ2Y5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GGuT82YXUlCDQpQrLaxtanF6A/VScBj9woUFShSSNJ3KocTTviyZttwTXPi9AuOuFtUbkrzn+D05bUGGvALLJOSheY+pwPK19DAHze8lak6iCINI62ZERJ73d1oPOtD83VK43xsOyZy8dEyqz04zN+METb5HiH5UHzlMK+2KE2Vj2NYOxf1y6PJm0iJCZ6hIPKKLdjm7vIFgMX7Dth9z+ElA3dJcCODe2h93y02CZoLSHPRNpKwZNG5UQ1t6F65NVMOQ/MRWPTgot0j4gqZ/2iBYDO4DaqsmhrL3ojAgu9WtFc0owgPwQiW8Ug5sh8QEqcBlJ8HCUYWfsTMx3QTGLA== 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=8fcuiC+7oyaqYgvXhDGY6OiNa386pzEP2TCloKjTN1E=; b=oMtq3uFmSeZS/y6CW1ihx+U7STExCiyRowIL+Z68c0CPzvZVeNnzMVrsVzkoK0OhgX08ZzvdjEAgNPlAMnrdsJcuxBEhO/zM6bd4oJmijSqewmaqU2iH2JcOQQk2Ie2onUHMHKaqQ4M3dvLyup3cwEvPDoIbGC6S2VzeNq3xE2Pjt8yUDxAzktpLRdicV2AuPZdZW1ioSEW9JRXadHlOmJl19LCdx9P7bFuNEIKdCaMiiNo5OcqESK5iQpoey6m2lltSLXRXkP00qSuWyFdBf9w/SKRiSweSU37n/R5p0KkeQbt9Jgn56DSxJIxsf5PKjJVxtGUGC0Bm7pv43WaFCQ== 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=8fcuiC+7oyaqYgvXhDGY6OiNa386pzEP2TCloKjTN1E=; b=Y67sZ2Y5LHrGQH365uPmO8LAg1WcguGVZ+8vkO1zo40JLS+iJTBR/0CqG7rhYRAaySijm100V4HvFuCoZgD1PGxyV61abUqfthRej1biwmuae2lisRrTo6B2k+khgC9KfTZVChcljpbe9YxO9Yo0gLKSHret2d+a+g6cEt8sO8TOFfN9kKhkmEPoGXklan7TDFeyH7fWXDWs1C553PwroU7WkJR8FABrNo2lwUb7WT5lIJJCvecSNmKGs53yO6XnhjM2sC1YbH4oPzFaQXE1WOtFbO0khAmCO7IM9uCO1n0H5ypMM2SQG9/OrGMqTulvLUQwALKzR51W9wFOJZR/EQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:10:55 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:55 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org Subject: [PATCH 02/12] rcutorture: Make srcu_lockdep.sh check reader-conflict handling Date: Fri, 18 Apr 2025 12:09:48 -0400 Message-ID: <20250418161005.2425391-17-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0072.namprd03.prod.outlook.com (2603:10b6:408:fc::17) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 394a2887-0f1f-4a92-38b7-08dd7e939951 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?KPccYWAp0ikPgT8Z+ATsoeS9E+4PS8Gr+zRClmsysU8g2kiX+Bm8DUEFjxSq?= =?us-ascii?Q?8yeFET9t8NkyJLOvAh1fhiPGMyRUuK0t8P/8Xo0lwA0nnBtKBAFviI062rtt?= =?us-ascii?Q?GrFfbHAKNBTqDO1mR3OxzMCQi+GJHWXjKLl6Awd4UnKAZ5/m8ivad80ouA7l?= =?us-ascii?Q?/W9ZuIvVyWLTfT2TE1im8n70i4f2WEu4MCprSXJZUvT4TzmRn5+S89BFjxMb?= =?us-ascii?Q?IWTRi8hmtgWKDqPKXrkcrfLHJ9+5zu8T2FZea06No93I/hm+dSeXiAab4w0j?= =?us-ascii?Q?B8dgTR3MG13Tl5eK4Y1CwDk22sn8I8TExuV14K7hDovkce3nUyv425wuQHyd?= =?us-ascii?Q?4liQ9p131w4dn/QFp8mv72PoY1c2E/4bn+3h3k/22VKgtDkHXa7g3F4KJgK9?= =?us-ascii?Q?3R0qra+9N+B5VTTGfIGCKx0XkBU8DX2X97QMyrSzo+xwqAi9QYvxsSbgUXgP?= =?us-ascii?Q?Xz9cf+Ub5WELrRIll+Kk3Kwa98pM5/9HlR2/G0HM/m3A5kdb7/mKE2VtrRuT?= =?us-ascii?Q?puPCYEWZc07XNR+DsHl50TFAVYuwdoiMRXmq66XmbQbdjJpSHl4Z/UOM0WrQ?= =?us-ascii?Q?YDdzN/ZNLwmCH11jBAE1WP3+XHUURE6C1TONQsPnckwD7MukeUXSplRUBqj0?= =?us-ascii?Q?2k2zkiKxGrylkwgcDhq/vyM98d21SNSi6dvN9djLodLQ1BLBtmCvhQdjt5Wg?= =?us-ascii?Q?f8Sp0dNSuhxuE3HZ7Eb+MlNxC5aLsC8rZDfe8PYge6YTQWBEDPrN7OpLuCCY?= =?us-ascii?Q?RqMhT44dKvszWzii8WZ34Y+cgGiHV9TUQ18YUbhu4aE7u+jopBAtZmJdrkxV?= =?us-ascii?Q?nZnhsArWB0AJzDkNtVomsiQuw8VsrHtrcVUmJ82PYCvLHa0nfe0wVud84kdl?= =?us-ascii?Q?o1C+yAsVavP5s7J3DBESQmfVLLVNL/4QeCvTMCdm8mMnjWLbM3BYIBIbm2w2?= =?us-ascii?Q?uDsbIYBTZ0SlIjlgf4RONkOgyGJe1+oad+aO7aeZusm+1kQL9FV8KJq0fT04?= =?us-ascii?Q?EXPTrEbcu4PkqJXsLftoBaBJulyE+SRJYR+mg1OvE9Q8Ek10tkXXh+Zv8eUE?= =?us-ascii?Q?kWUhnBEYoSQkGVpdY6tUWIBNCgsSYXl+qt0lPHXnyA6SNg7ZBY73ngr5Ha3V?= =?us-ascii?Q?e+Ykxy4WS36U5OMyzKpV3fzKpH77vODusbLyILLHt6Gmog+6xwObW+vpbf1a?= =?us-ascii?Q?nrPUOTA22FSxErZFdOBeGmRcOOAA7dkJUzPuEwaeGzTfb9Ege1SULzWj2vnn?= =?us-ascii?Q?m/mrT5431gxjLwq1HtelPQKaWdQWWkWs4qqxZ5WAeEXtjXV/uFWWYnBdX6oS?= =?us-ascii?Q?3pX7YQZqlwAfH4Fis6Qr26N6A8OtffVBr2h3Xoz+j4NNPwSReFCd7VSk9MnB?= =?us-ascii?Q?/PbTq9EFlGuJACphe90B7ZtUzPMn4V2rAYZjU5vDgBqa8/3v3MXsddOBqm39?= =?us-ascii?Q?+wXQL21K/UQ=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PdU6bjSuTRmKhnBUT6ktXo7NqXMI+PRnBbYCiOEbbwv9VgrCi8JaKWBiYdHM?= =?us-ascii?Q?VZsJsPkDrlcZe5sULX8a9tQMO+NPoNYD3mTwfmt2pRKIWwFGK8HKbXrTPCb+?= =?us-ascii?Q?wS9qZj/q1eh+R8NSdZrAGaEyh6TtPxl7oYb/4DIYDtPS5REYuPjGBHZaDFm9?= =?us-ascii?Q?bXQYcNenjsqQhFl+a6tvoFH5LcZ061Z6/wEuZ+ySl/cabSpioSlYcyySnl1m?= =?us-ascii?Q?KLKoM4vKjxBqpzyZCq4/NGSGDrsAZ7NY7higs/S2IGcx6357bhUOYhur4YJb?= =?us-ascii?Q?fCfmxFsaaOYx/bEQT3k5x+unvg0Ko4j6oI547ai9ibxEMqSyvQq9gMMtYAIP?= =?us-ascii?Q?LOVbGwdRLvugJPiAXGCsC2/Sgho6pFIA5I4G4qV3S92UcwmwLH3WbyT0IRKK?= =?us-ascii?Q?4gsWpWkAFMjvE+w2W3dvkyUNHFCMtuQ+jgY84xNmp1IXrUiG7U/s92yxFrrS?= =?us-ascii?Q?6O3Zxx1MlG4bujZxpf7cfP87ruLJRtmkGUg0zJJ9D5cpaHCvx/upeyHLhJBG?= =?us-ascii?Q?MqSGqL3gfw1wN326Jfq+ziCW8GygEtlF8I+mGc6tMboMU47XN8Lwseno4mgX?= =?us-ascii?Q?YQ2FBs69fspgWcxebXAl+3gqvuXvTQ54nmNu/ZFec6pz/aHESqM0fH3IrUbu?= =?us-ascii?Q?+QOzm7NpNFHsNEmV1bwFnaoCLVqrw0s5cGmSb/HK+p32pKeTntOxTmLik+xZ?= =?us-ascii?Q?DEWJ9QyN/gLHFs/YNc21gbRDc6IrO1w1M7g2Gyxwm4twSHnQEaK4u1SaRNCj?= =?us-ascii?Q?JqvvBEA8lUHSXJFsv8kjo+3o7iKkmvRGiP089JTEy062iKFypF4k/e92ws+D?= =?us-ascii?Q?BJMeXPtxlKUSXDffTD5b1B24mVX78JN8mvWvYu6wbpnAUmfR+Y2qI3pNdcYp?= =?us-ascii?Q?/Zn6APXlwJsXjbElZkAK1A+dJ/BhEzcwUu/yz4j5q5WKV/2Du0TXDEcJ3FxU?= =?us-ascii?Q?JrMA4T/FJoWSzg/+QFWb8gr0iIINBXiEXa9tA9VyPqsV2Ir/2zvYpyDXxFq9?= =?us-ascii?Q?hciw/X1OKkJ67R76NXtV5yec+prp8TT24irCtkoee8Nu3t/d1foydR6Ts1XO?= =?us-ascii?Q?drc+LjC3UkIm4YJXwJDSjnpzGiuXT401iCHW6OfSZxI7+hY6Il1XeJJ4YK1j?= =?us-ascii?Q?He6Z/bE6/qbx9ag03L/k2Iv/gN6uzl+SqDcS91NNvvYBV2mtjJxUlyDpomS1?= =?us-ascii?Q?Pu4BwO1PEsvgmJ8HM6hyIYgP1bBx1PNmToLRKg2YKy0MLg2iL66dhakRNVNZ?= =?us-ascii?Q?DQDYiyrrdXfX07jfAhgC0Dce8z/H3hJvpIHE+4kIpvkX/9qJdV2ZUmKzrg7n?= =?us-ascii?Q?Ea/0qRgk6S+tYMmLnjUpilsPIT2Yuyh+whLRKwqA3lieOAW3oPl4u8MqoDoX?= =?us-ascii?Q?YFKHHmHdf66glmFGQslaht9NR/+PFlwJxXy4Ov2brUdRVCXw5r8Ko50hDzmf?= =?us-ascii?Q?/pjJP6p1OeA+eOtpfado2A8rNQ1s4f62g6x0TWXE+S8KC3OcNbfG/TsEjRlX?= =?us-ascii?Q?/SctyvQ/GZVXDqBqlL/c8LvwTumgNScAGko6c/z6TqRsLKtLGs7gZwQr+4G9?= =?us-ascii?Q?MiUXyGleFfI1bcFrcf/glNDOgmoX+u3C6x1Jg59L?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 394a2887-0f1f-4a92-38b7-08dd7e939951 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:55.5018 (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: 8ytUpvSbhVRtGcEb+HMeI9Q1MvlqdlF0WhBma3SGKOS+nlEkGlcOSEtATfsUu0xWWC0i9rKSRGj1/s48UqN7SQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" Mixing different flavors of RCU readers is forbidden, for example, you should not use srcu_read_lock() and srcu_read_lock_nmisafe() on the same srcu_struct structure. There are checks for this, but these checks are not tested on a regular basis. This commit therefore adds such tests to srcu_lockdep.sh. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- .../selftests/rcutorture/bin/srcu_lockdep.sh | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh b/tools= /testing/selftests/rcutorture/bin/srcu_lockdep.sh index b94f6d3445c6..208be7d09a61 100755 --- a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh +++ b/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh @@ -79,6 +79,37 @@ do done done =20 +# Test lockdep-enabled testing of mixed SRCU readers. +for val in 0x1 0xf +do + err=3D + tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 5s --c= onfigs "SRCU-P" --kconfig "CONFIG_FORCE_NEED_SRCU_NMI_SAFE=3Dy" --bootargs = "rcutorture.reader_flavor=3D$val" --trust-make --datestamp "$ds/$val" > "$T= /kvm.sh.out" 2>&1 + ret=3D$? + mv "$T/kvm.sh.out" "$RCUTORTURE/res/$ds/$val" + if ! grep -q '^CONFIG_PROVE_LOCKING=3Dy' .config + then + echo "rcu_torture_init_srcu_lockdep:Error: CONFIG_PROVE_LOCKING disabled= in rcutorture SRCU-P scenario" + nerrs=3D$((nerrs+1)) + err=3D1 + fi + if test "$val" -eq 0xf && test "$ret" -eq 0 + then + err=3D1 + echo -n Unexpected success for > "$RCUTORTURE/res/$ds/$val/kvm.sh.err" + fi + if test "$val" -eq 0x1 && test "$ret" -ne 0 + then + err=3D1 + echo -n Unexpected failure for > "$RCUTORTURE/res/$ds/$val/kvm.sh.err" + fi + if test -n "$err" + then + grep "rcu_torture_init_srcu_lockdep: test_srcu_lockdep =3D " "$RCUTORTUR= E/res/$ds/$val/SRCU-P/console.log" | sed -e 's/^.*rcu_torture_init_srcu_loc= kdep://' >> "$RCUTORTURE/res/$ds/$val/kvm.sh.err" + cat "$RCUTORTURE/res/$ds/$val/kvm.sh.err" + nerrs=3D$((nerrs+1)) + fi +done + # Set up exit code. if test "$nerrs" -ne 0 then --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 85947223705; Fri, 18 Apr 2025 16:11:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992664; cv=fail; b=ahBQxjYFR0JGfphw1npxO/B7pzdGJS332Q8k2JWoYc/8ArZevW1Ov8+VQ7KtfNl8gmLPJJjH+vm30QY8f3UVyd/NSgNxafIqloYOC1N6jEdHcGd3eiALgCY4X8xrsCHOp+PHKwdhJLMhorOFdOHnZwxUfHl+80X2lvuOuNuQPNU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992664; c=relaxed/simple; bh=vDZHeFv/7V2Ui6IMghiJSFjUDo+2B1F3MwLHL8xGBLM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=S/Jtb8QC7w7wZx1Yg3bj+bjATZHrqvWfarsW4NmNhixts82rTm6N/JLBWOgkeXk0A0ZE+em9DFHVPwOwNgNJMCSjkpZZL4fHdah4yArsu05P+8qNAGIaE+9VW20Cv0wuD1ZgFIhWSA+QuRpmPT7wWvDdokOiD8nNWjECws48/9k= 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=s+LozP+2; arc=fail smtp.client-ip=40.107.94.79 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="s+LozP+2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ikG2rgDV60iEJyoIkDMFoewHPol/c54XyjJ2QcK/Au07cBbpRWmd/VLZV2p9fNK+OZ8ERhN5Xk++Ct3bRJU6Z9fffVii9XHq/GKGW7QS/Ho02cWdi/ZEAzqSEnIIyRNId4+UKL+dVNZKLiTNbHVsteo2BQkBTqdN43UqfFeo9w/A6I64wcZvI8J9+EVYc95lkyy7XmUoCg21cRDYilyyKB6rBL1zDAmmxM6oG2QqmueqifcmRXL9M0nVuoIqkYR6c7b8F70lSa/7r1cFoV5AyHfILOP7hcbkfAtuKerc2USNWOWDfmF/DYUUJFt5lHdHqY9LnguyDgpd9fa2425LSw== 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=ckPPLDIp8R970061sNbVhgUMnKnYoOwbUvDYnA0QvBo=; b=cS6mDn3n7RY/CgWgh/sC1rVE1CNiETDMKFnKWTcV4CB2BY/xUx4rbKcLjQ3TV0g9mp7ztPlaUoAeE533p+XkGgYJQPgN654Pw64gmvFQy9sF0NB0AM07orLH5Syq3LWQnYiM9A/LQpfGsv7oREH6k5sJQmIQrq7aH5DnbP0Wc90SVehc0MQY+kbj8fF2vj+kKcLclXaxchQE7qwJNjPpZeoJkqHfe9v4p9OFZSzwC89vt1mGWoLpmfd+MJguh64/kp6IlnMkESvxD3zZSa4n1qxc35UqU+ZxQe5wCgWT4ioTxYNJ8D7xtq48IH1AQx3xPZpY5cZsZqL8PjsMSB2QvA== 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=ckPPLDIp8R970061sNbVhgUMnKnYoOwbUvDYnA0QvBo=; b=s+LozP+2tCl8wYDsngbsgW3cRVv8pW+exFT17mMgd36T1n01RW7fXITLDfI7UVyFjt1ZcjQFQdQMqUHzj9CeY5viyPY11ZhIDGzq8zDKoWVL2JiSCYDaUn/IlkYNFXq3Tah+FIWRSDFrz9qFHQ1EK65wFn9eW/DAfK4BduHBO1+NBMiyclS3tvR/neZbmhiblUcCB6O+hdXBq4kgdn+OWJ4olZ705xafQLOdzwjLCLF4fob/mVUB0bIuv6hYD2A32H/4Fh68LY88eB6RejdPN4aGDOynfMO7dBMU9aUY5tBfpRrCWsQJhAU0DpEJLYnSGgAbhaVyRCUHs3Eu2rNhlg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:10:57 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:57 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 03/12] rcutorture: Split out beginning and end from rcu_torture_one_read() Date: Fri, 18 Apr 2025 12:09:49 -0400 Message-ID: <20250418161005.2425391-18-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0134.namprd03.prod.outlook.com (2603:10b6:408:fe::19) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 669792f4-e2ab-416c-145b-08dd7e939aad X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?81sEqpZS39oYK7fMRWYibJVNzoRUFkAzNbR71rmkdVeIbuhdI4SEETVYgjdG?= =?us-ascii?Q?ooG9ZgZX5wISD7ZS8lTrmGeN7v3Hdpn7012VsxtYlAjNTaOsf9yEeG/XyC6f?= =?us-ascii?Q?StCbNOlKwHxdcKJ9cqnt8/viQIUD9IbFIyqARUVyY+A905z6/LpbJNA00LkI?= =?us-ascii?Q?2UpoENf2du8ap2HnUkWJaK16v6EKcM0fDlzr1AZDZt4B0+7goxIvPCja9/9P?= =?us-ascii?Q?1LlZS7pNtLDVidkuvLjJldHLa93TULg85k7EASaH963iKHH31BOsquwAraUn?= =?us-ascii?Q?xvsLAgwHwdBO8ZC3X8bYIJY6/FdDm1yx4SyAM8WZdJZCsH4x9+hr/jKS39oq?= =?us-ascii?Q?PhmdnZHbwvDb9MiRkhqfTDZqbYaY4T0MsEXZmGM5boR58UQlC6OjIlTghwj6?= =?us-ascii?Q?a0CiPlDnK9L9FIRC62M5I35V5SKB9uuEyFxQL/TVQxn4WpPqFDmnM9P04rGq?= =?us-ascii?Q?pXW6Gks3ASEYXVglZNTCFO+/UYu0Ep3cCrq5w4+PIiJ58yMF3T9pOH8FNa+A?= =?us-ascii?Q?HJp32O368bhBP88yqRmYJuegu2QNc9NwXmSodAFXcp2KZDMa7rc3i8MX3u3N?= =?us-ascii?Q?lPkFz8IBC544wCFXiYEHfEywEwNLDe7awJY6Eva7e6ObTnH9kpoWW2ZWhSVS?= =?us-ascii?Q?MAVDlXTS6w5vY5XcYtqK7FFZq9xGF+u+JneA5/QyidWaFJM4OoWTyiw0Ke8M?= =?us-ascii?Q?bGC61kYJ5EEhENls9p9ENLWfspWHRg6yP+QEpdc4V2xOWbjI0dJaMKmjznx0?= =?us-ascii?Q?Wcah69/KGg5lbyaBOTTL76Td12jrn+Ph3eKvSJ1aFcehhnaj3x0kLhuynmta?= =?us-ascii?Q?5qv4quUvLxmlluk5qlSTmnHHr0b1kt/syB/IBGbIHcXzO3j1DqoaEoCQXZm3?= =?us-ascii?Q?7Kcpc/TWM+RfseyFT9nxlmwYwBDJ4I44R+W6ylsbPwnFAoEQh/fYth0Ga7ik?= =?us-ascii?Q?U3tW4LNQSu3x3Y1kKk0fZPZhtEIdMATYaE5XzafzfBYZSvwgv5BjM11BF1rW?= =?us-ascii?Q?DSQcy5J8C0Ubw1tN0Cebv6xS49vuBeqNLLgycS0xqlCW+L0iOgVO0k+FT56T?= =?us-ascii?Q?Bd02UYfJjzmTMbfqLxyo5N+iM7kSG0xo4IlqYcyH5vtAiC0w1CvWn8BdmFxk?= =?us-ascii?Q?+oqIIe9MTDm8QKyU5E6kGyk4f72hmnSbOto/sIGiPXMTbCmpilTpJFX/EL0+?= =?us-ascii?Q?di8md+HcqCrnpeIcvxsILHBatRvcuCPs47loEQSu1c7RL4BeMT5P9atH1w+d?= =?us-ascii?Q?OvVaUqjis1GKM1RQjX2+7S2VrwM3Y3ARkvDc6GOIwvUtlqml30z9sgYjokJN?= =?us-ascii?Q?eabs144l0vEk2XR1vgb3lMTVHwhge1zFLgcnxWZmlFPNDPOb/r+YMnLUA1IN?= =?us-ascii?Q?su952tf3OuV6JYsvUsmeng0Fb7PW6KfV4+MfeaAbn9O7pPii+DSOEs7kT3DV?= =?us-ascii?Q?SlVUczNoWrkufOWs5qpGIwFs5KuB09LBUo8yhcaeua3pME/atkqwPA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RJ/jNYQvDtnSXz17A0b4hn2bR4K+UNIJFhHNXkg1mUGVcsHjuzBV4rVT2bzu?= =?us-ascii?Q?lJLUXdxyHb0efecYLp7UzEnnp6hKO6BXFzJ/J22h8sZpMMCzNLKBf2Myblbo?= =?us-ascii?Q?q+tQvi2KqnidYT23Ynn4S1cIqq3LfhnyJlOJ7bvwdiWTk4TSqf0V35j/KFFJ?= =?us-ascii?Q?y7QiY25cqSM2kAWP02krWla7GbAEb+1q1XU740SdiIW2TvSHSjLNWWNOchcK?= =?us-ascii?Q?mlsvyJSJnyzQTR3v40GCIM4Nx1nrRjnblZCirHsJDr18GsFRpgQeLSbwmts0?= =?us-ascii?Q?vAIeIKkIyIG+6i63RsCJQ6RswAsFZBzthAZLG/7Yyz1xgPJwj8VLs1S5/I84?= =?us-ascii?Q?I8fVAXJZYEO1Iw5JdzKyFR/QlOd+RzVWbGmZKo4gXWLu1HrmDpEodlfr8yWo?= =?us-ascii?Q?EmfaN37xvhgJpPxsxrDdYcT+19c7v/Iu9FuYOguIOx5Ms0WNTP+GvdhHefgz?= =?us-ascii?Q?lOE5dFFauCgrAq67UV2Pr4X4dwkfB+gfNU9FyAm5ZIPF81bkxbVuZ6vUIYyB?= =?us-ascii?Q?ePnAel5mPMQ3YwMyBKblyUNvccJQPfDnOIVFjff0zAS884UFIw1cQSH4guNp?= =?us-ascii?Q?Csbex4gQhLWPUeQlQWsfzVFwnMUO8oFd2NxQHaLo3Qet3osszx55c1NQJHCQ?= =?us-ascii?Q?7Yhu2S5vMWDLw6a4T3Gp3b1Px/kCB51H5osSJLPZyuBazs6TiiQ1NDZGLWAC?= =?us-ascii?Q?mEDUVKljj+xVcwbo+Frg0XIvnsjpYYYKrr7qg6z97Yw6ZPm96vvbrJ7Vwjer?= =?us-ascii?Q?vrgEUQ7U+GnFN8EnqP56yktVFtavzUJtsfCdWCN2StuU4Mp5ZMkbmJNU4aY1?= =?us-ascii?Q?0ExVZ2Bb8VgLu9jI/TrcKcL4gRzjU146AyQVSdnlq+nHQIvwrMeRdvSf/gw8?= =?us-ascii?Q?SrfpnDtP/Y96+fzGaSGb6cHcP+iHfHOeJ9f0He1FX0756JkDBovU+fSZJm0F?= =?us-ascii?Q?vIkvWoM1OKro7D/9pqvCuE547sf26l4BO1JG5HiF9y710KPXfRQzcGaOXCsx?= =?us-ascii?Q?RcqsB4cQcIYLcB1ZyvyQDobNGdrRes2S9Efx13kU66Ev7YRZw/NQmXNzHvkJ?= =?us-ascii?Q?tHJFgu1Ah6arF0HnAGoDv3yC+ZXzDUwN5+YxzvFebk76zu5AWPqyQ8FBg7U8?= =?us-ascii?Q?+Gk3idmklEbx4Xi9poau6S+wCSvHrTmRkU2ml6q9VLQrFXD6dAJbpHq51SHd?= =?us-ascii?Q?sUDwaohxo4l8gHOGSXquXtuRCNTPJECRBuEjoR7gq4CK/nWy6xLwfS1jwNCO?= =?us-ascii?Q?PPh/Wxn2XxhrQN06NtQpYkd1+pjxyWKttw7oJyCQnTCV4QDb4YelHKqULm+X?= =?us-ascii?Q?sATz3Eum/4IyfY7i2Cip2XlQrCjhYQDyuc5GQy33vtleix3OHJnpMTf5CURc?= =?us-ascii?Q?4m0Zvx1BohnPDGNZKxSKL3ZJpKSVW83bB6vbgpafuFQ8H0M+ANeswfCHFo4t?= =?us-ascii?Q?jdkjgfHhH+3sN7JDUyk4z34AjD+suLs6nSI8B+ElZYu1P9YyGeLS7JzeYokB?= =?us-ascii?Q?s+qIB2kjm/qoUpDGL2EQfsfyvjOYqeVA9ujjxHVUTvvWlYOP8HGCIQcFGakX?= =?us-ascii?Q?4d9iw9Qf6vMu4djf3d9IiPmT2CEL1NS0GM6QPDeP?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 669792f4-e2ab-416c-145b-08dd7e939aad X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:57.8248 (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: rX1nk5YLAdM4waYbAOhykJhHcQCrPREGIJ5k56ME01NOGrvGjjyTmOvU6eQqbx6bbHlQvqRiZzDyhufJIw0HBw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The rcu_torture_one_read() function is designed for RCU readers that are confined to a task, such that a single thread of control extends from the beginning of a given RCU read-side critical section to its end. This does not suffice for things like srcu_down_read() and srcu_up_read(), where the critical section might start at task level and end in a timer handler. This commit therefore creates separate init_rcu_torture_one_read_state(), rcu_torture_one_read_start(), and rcu_torture_one_read_end() functions, along with a rcu_torture_one_read_state structure to coordinate their actions. These will be used to create tests for srcu_down_read() and friends. One caution: The caller to rcu_torture_one_read_start() must enter the initial read-side critical section prior to the call. This enables use of non-standard primitives such as srcu_down_read() while still using the same validation code. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 124 ++++++++++++++++++++++++++-------------- 1 file changed, 81 insertions(+), 43 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 65095664f5c5..b0e96df63622 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2164,53 +2164,70 @@ rcutorture_loop_extend(int *readstate, bool insofti= rq, struct torture_random_sta return &rtrsp[j]; } =20 -/* - * Do one read-side critical section, returning false if there was - * no data to read. Can be invoked both from process context and - * from a timer handler. - */ -static bool rcu_torture_one_read(struct torture_random_state *trsp, long m= yid) -{ - bool checkpolling =3D !(torture_random(trsp) & 0xfff); +struct rcu_torture_one_read_state { + bool checkpolling; unsigned long cookie; struct rcu_gp_oldstate cookie_full; - int i; unsigned long started; - unsigned long completed; - int newstate; struct rcu_torture *p; - int pipe_count; - bool preempted =3D false; - int readstate =3D 0; - struct rt_read_seg rtseg[RCUTORTURE_RDR_MAX_SEGS] =3D { { 0 } }; - struct rt_read_seg *rtrsp =3D &rtseg[0]; - struct rt_read_seg *rtrsp1; + int readstate; + struct rt_read_seg rtseg[RCUTORTURE_RDR_MAX_SEGS]; + struct rt_read_seg *rtrsp; unsigned long long ts; +}; =20 - WARN_ON_ONCE(!rcu_is_watching()); - newstate =3D rcutorture_extend_mask(readstate, trsp); - rcutorture_one_extend(&readstate, newstate, myid < 0, trsp, rtrsp++); - if (checkpolling) { +static void init_rcu_torture_one_read_state(struct rcu_torture_one_read_st= ate *rtorsp, + struct torture_random_state *trsp) +{ + memset(rtorsp, 0, sizeof(*rtorsp)); + rtorsp->checkpolling =3D !(torture_random(trsp) & 0xfff); + rtorsp->rtrsp =3D &rtorsp->rtseg[0]; +} + +/* + * Set up the first segment of a series of overlapping read-side + * critical sections. The caller must have actually initiated the + * outermost read-side critical section. + */ +static bool rcu_torture_one_read_start(struct rcu_torture_one_read_state *= rtorsp, + struct torture_random_state *trsp, long myid) +{ + if (rtorsp->checkpolling) { if (cur_ops->get_gp_state && cur_ops->poll_gp_state) - cookie =3D cur_ops->get_gp_state(); + rtorsp->cookie =3D cur_ops->get_gp_state(); if (cur_ops->get_gp_state_full && cur_ops->poll_gp_state_full) - cur_ops->get_gp_state_full(&cookie_full); + cur_ops->get_gp_state_full(&rtorsp->cookie_full); } - started =3D cur_ops->get_gp_seq(); - ts =3D rcu_trace_clock_local(); - p =3D rcu_dereference_check(rcu_torture_current, + rtorsp->started =3D cur_ops->get_gp_seq(); + rtorsp->ts =3D rcu_trace_clock_local(); + rtorsp->p =3D rcu_dereference_check(rcu_torture_current, !cur_ops->readlock_held || cur_ops->readlock_held()); - if (p =3D=3D NULL) { + if (rtorsp->p =3D=3D NULL) { /* Wait for rcu_torture_writer to get underway */ - rcutorture_one_extend(&readstate, 0, myid < 0, trsp, rtrsp); + rcutorture_one_extend(&rtorsp->readstate, 0, myid < 0, trsp, rtorsp->rtr= sp); return false; } - if (p->rtort_mbtest =3D=3D 0) + if (rtorsp->p->rtort_mbtest =3D=3D 0) atomic_inc(&n_rcu_torture_mberror); - rcu_torture_reader_do_mbchk(myid, p, trsp); - rtrsp =3D rcutorture_loop_extend(&readstate, myid < 0, trsp, rtrsp); + rcu_torture_reader_do_mbchk(myid, rtorsp->p, trsp); + return true; +} + +/* + * Complete the last segment of a series of overlapping read-side + * critical sections and check for errors. + */ +static void rcu_torture_one_read_end(struct rcu_torture_one_read_state *rt= orsp, + struct torture_random_state *trsp, long myid) +{ + int i; + unsigned long completed; + int pipe_count; + bool preempted =3D false; + struct rt_read_seg *rtrsp1; + preempt_disable(); - pipe_count =3D READ_ONCE(p->rtort_pipe_count); + pipe_count =3D READ_ONCE(rtorsp->p->rtort_pipe_count); if (pipe_count > RCU_TORTURE_PIPE_LEN) { // Should not happen in a correct RCU implementation, // happens quite often for torture_type=3Dbusted. @@ -2218,28 +2235,28 @@ static bool rcu_torture_one_read(struct torture_ran= dom_state *trsp, long myid) } completed =3D cur_ops->get_gp_seq(); if (pipe_count > 1) { - do_trace_rcu_torture_read(cur_ops->name, &p->rtort_rcu, - ts, started, completed); + do_trace_rcu_torture_read(cur_ops->name, &rtorsp->p->rtort_rcu, + rtorsp->ts, rtorsp->started, completed); rcu_ftrace_dump(DUMP_ALL); } __this_cpu_inc(rcu_torture_count[pipe_count]); - completed =3D rcutorture_seq_diff(completed, started); + completed =3D rcutorture_seq_diff(completed, rtorsp->started); if (completed > RCU_TORTURE_PIPE_LEN) { /* Should not happen, but... */ completed =3D RCU_TORTURE_PIPE_LEN; } __this_cpu_inc(rcu_torture_batch[completed]); preempt_enable(); - if (checkpolling) { + if (rtorsp->checkpolling) { if (cur_ops->get_gp_state && cur_ops->poll_gp_state) - WARN_ONCE(cur_ops->poll_gp_state(cookie), + WARN_ONCE(cur_ops->poll_gp_state(rtorsp->cookie), "%s: Cookie check 2 failed %s(%d) %lu->%lu\n", __func__, rcu_torture_writer_state_getname(), rcu_torture_writer_state, - cookie, cur_ops->get_gp_state()); + rtorsp->cookie, cur_ops->get_gp_state()); if (cur_ops->get_gp_state_full && cur_ops->poll_gp_state_full) - WARN_ONCE(cur_ops->poll_gp_state_full(&cookie_full), + WARN_ONCE(cur_ops->poll_gp_state_full(&rtorsp->cookie_full), "%s: Cookie check 6 failed %s(%d) online %*pbl\n", __func__, rcu_torture_writer_state_getname(), @@ -2248,21 +2265,42 @@ static bool rcu_torture_one_read(struct torture_ran= dom_state *trsp, long myid) } if (cur_ops->reader_blocked) preempted =3D cur_ops->reader_blocked(); - rcutorture_one_extend(&readstate, 0, myid < 0, trsp, rtrsp); - WARN_ON_ONCE(readstate); + rcutorture_one_extend(&rtorsp->readstate, 0, myid < 0, trsp, rtorsp->rtrs= p); + WARN_ON_ONCE(rtorsp->readstate); // This next splat is expected behavior if leakpointer, especially // for CONFIG_RCU_STRICT_GRACE_PERIOD=3Dy kernels. - WARN_ON_ONCE(leakpointer && READ_ONCE(p->rtort_pipe_count) > 1); + WARN_ON_ONCE(leakpointer && READ_ONCE(rtorsp->p->rtort_pipe_count) > 1); =20 /* If error or close call, record the sequence of reader protections. */ if ((pipe_count > 1 || completed > 1) && !xchg(&err_segs_recorded, 1)) { i =3D 0; - for (rtrsp1 =3D &rtseg[0]; rtrsp1 < rtrsp; rtrsp1++) + for (rtrsp1 =3D &rtorsp->rtseg[0]; rtrsp1 < rtorsp->rtrsp; rtrsp1++) err_segs[i++] =3D *rtrsp1; rt_read_nsegs =3D i; rt_read_preempted =3D preempted; } +} =20 +/* + * Do one read-side critical section, returning false if there was + * no data to read. Can be invoked both from process context and + * from a timer handler. + */ +static bool rcu_torture_one_read(struct torture_random_state *trsp, long m= yid) +{ + int newstate; + struct rcu_torture_one_read_state rtors; + + WARN_ON_ONCE(!rcu_is_watching()); + init_rcu_torture_one_read_state(&rtors, trsp); + newstate =3D rcutorture_extend_mask(rtors.readstate, trsp); + rcutorture_one_extend(&rtors.readstate, newstate, myid < 0, trsp, rtors.r= trsp++); + if (!rcu_torture_one_read_start(&rtors, trsp, myid)) { + rcutorture_one_extend(&rtors.readstate, 0, myid < 0, trsp, rtors.rtrsp); + return false; + } + rtors.rtrsp =3D rcutorture_loop_extend(&rtors.readstate, myid < 0, trsp, = rtors.rtrsp); + rcu_torture_one_read_end(&rtors, trsp, myid); return true; } =20 --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2073.outbound.protection.outlook.com [40.107.244.73]) (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 D110B215F5F; Fri, 18 Apr 2025 16:10:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992634; cv=fail; b=QSrHR7LDsbHtpiJQOnLzV4ZOOpCWClqQdqScL7Djm69gLY3mN7NGfGnFtPulTe0MIJxCJUEtoJ+Tiy4B6Q4uSIHUU9NejZhWwfP5tUuKG44qSnZ7GBE4BOMhN6fTY+7vLPcUp5PQlZ6o+TFf5iilPgHW7GQuAQl+LLknUxHAMOY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992634; c=relaxed/simple; bh=BrXqNmgwhrFzqbjUmdWHSF9dtcn1ihitGKuSX+9eQlo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=XxxGR7MGeV/Cb576bFin2kVb/2SOfy3hv5EMQTIhZCDtlNaLhmIQl6uRtsY3titJ+pNdZircqQe9qCDDqf4VoAXoMX7ZklTXtQCHqmHQyQWZtbMMRuUI4X/Lf1o12Bl8/WCWonqSofKhNODMGZqIaf441EGpMtMvb+XEFA+uMzY= 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=lqnnpjDD; arc=fail smtp.client-ip=40.107.244.73 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="lqnnpjDD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pIT9TryXauKO6A+uKhR42F+dKok4vvILNTiweOOvPymG6HqIyqnQA78Saw7heHtzAV62Jde8bmo+4LmMdB+FWzOLWRolpBGb3XPEpSbOEHBXjJUDd4+vTpDhRTVMPlZdT8TfXQgYyxkGLRacuJuohpFbTNA4MdI8lqmuFIDmLBgo+MRSJGKRSMfP+pAkipghw0c97RiS2aX4G6wqqqX8U7mLFCPXEZn07TFPUSnxRcd0/MvmNbz2bmI/LuiLQ8X6ES+7Frns0aqVPNe1tmyxsYt6tlretweU14J0DsyP9PtHUghq9Etmc3SVkDnl7hX8QgG6eX20a3yXdUgO/bTNiQ== 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=Gu/KJGG1bO36meIzLlDIYvGc8wgwR2cGLs24TJSUElI=; b=JVCKdZlgfl/c25MSDaiaP24vxQhMsuT3YVWYwUB8ykrheH27ODmXGojsh6OcWFfXUf8wm4pT7cJAfPFNjzY540PaEmT8f492nLWNFN3ooIgf/JP1fO7TjDt+fpWtwHLEvvctkeeSJsrynQ2jHMhpeXULZn/qvZOHPQgwqwkIMPonFgJ35XUQ4JDMm0yk0iocBJzo878TSbtm8lB0WK9EjNgTXUe8PTDqq5oRHYIyCg9EWybVSLw+FlzrDIQm1zgTDeD3jnIAa8MuqW0MGAS03VXIB4PNBIXpBanD4ii2GVg0G0r70PKhsTATFUj2FUWJCA7L1KuwmHfV/0JY1CnRhg== 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=Gu/KJGG1bO36meIzLlDIYvGc8wgwR2cGLs24TJSUElI=; b=lqnnpjDD+KZh0TjbQRokTIjw5tQoqdBPlr7wcdkAJnVv43XXaL8Ch30FmoE0MGv7mMUFk+gJIPBXhBJDXHQ7o+Qdw6btqtMK7Nn3Vwzfwpl5laO3XxU53hraAN7ENHSuE1E9Jt4tbwlvHdjo89wNJwA9yO4CCTGmIVjqUhHlYRBXaQNMMy7t6j6vUvDMtmvYpEz7BonMpqBpvuPGZCEaJzX+AIDvHD5O8W/mpv9OPAuZA4MNUClL6dKtrJ8MrrMldw6Kbkvv7npQdA7VehypflEA5xxpXrFyl9nt8N9z0dvEu1LOHfyvGlNC3lo+xOcio6gANcRp5SgW4NdMSwN/QA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CH2PR12MB9544.namprd12.prod.outlook.com (2603:10b6:610:280::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Fri, 18 Apr 2025 16:10:25 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:25 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 03/14] rcutorture: Split out beginning and end from rcu_torture_one_read() Date: Fri, 18 Apr 2025 12:09:35 -0400 Message-ID: <20250418161005.2425391-4-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAP220CA0009.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::14) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CH2PR12MB9544:EE_ X-MS-Office365-Filtering-Correlation-Id: c14af837-de23-46b2-3bf0-08dd7e938741 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iBgnAVuBwB60EEm0jlwbEv0CwRh6xZxstEi7jN9d+WTdlSCk8GeoBM4ll6eB?= =?us-ascii?Q?8jCPvjb2oZS7I9jzqUrP1RhDYs2FWIxqSjkLuNiYmpO5IGZ9FVDhSShppEEX?= =?us-ascii?Q?eJlDJNV5GClQ+9mqhsM98s3Nk0QdHtEj6m92HJhGXoCs0lTHmml/Ww19AWVN?= =?us-ascii?Q?6LXDVfvof9vKnxN5dVT0oaDW+dPg68Cz5zj1se01S/qUBt6hQROFswr5W342?= =?us-ascii?Q?uQ9GcS2sZ8QlIieYS9+wDUaM0OrSpzdeZHkzeSKH+m/uBA/KfJgn4Trlkvkp?= =?us-ascii?Q?5W1oGwEQg/jt9BDzXQ6+zfUyaA8r9zc/vLgthWFoJlH1fRReaKreMys2ztXU?= =?us-ascii?Q?GgQ9tTU622JsdtoiF2EpsCU5zH7imvtTJVMK7K0kfbw+Rwoz0pCO7zgpJDuo?= =?us-ascii?Q?8MRUPtJ7mY3Lm5ekDdoF4nFa3jefSnh5/+7NwrcHQ6/HZn4R8aWQsHCShu0X?= =?us-ascii?Q?nqDuIvEoNbdX/DGnjkFa/6S2UKP5gWMvfLPopDbVod0IRgiNl1NJOAHWOlFA?= =?us-ascii?Q?syfd+tt1b8DU/GTJXYWjDDNijQGh/I2AEYuIYpwZw4yJYDvpppvybDC6ZJJj?= =?us-ascii?Q?s9Rtf9TSAH4N8qLBrxwRi7cBRnTmecwak+ZxuKWE5sJEnIS7qY1fUTbL3rW0?= =?us-ascii?Q?n/whRYvO1L52t+Sn+Blo43YCpBTgnpBU9rJ01PN+Cy+KGxXphCVHvsGa3wLS?= =?us-ascii?Q?T8qVdM2XAXXIvHFvecFj3MstJtdfN1XFWpUAyDu4jKa9nd/046RpTBhwpmOz?= =?us-ascii?Q?ayzozxD6Gu1SmtppwQX91yZXrgoZ8KzRUplcip2yOLY/2vNKRa429eMc1xxQ?= =?us-ascii?Q?1DPqsGfdOhBQZzkRD0AZxZti+wLJxqeTfEfMg+sO2WpYx+oH/OrmEQeZhuuR?= =?us-ascii?Q?LRwJCQYwx1d8Sp8wF7p53n5NppUHoaeh7uGAr/MVvPOXgFd4TOfRt3q36kQZ?= =?us-ascii?Q?utPAXhQzB4a77H6Y4F9cnnB2RG2tmFFsSqExmNRhzqqY9m+wyqK1HQgUCxsg?= =?us-ascii?Q?0tToSm1W6E5bvr+s8ExO6Cy71wJtDbBl8Bwq0AeAHb3hSP+vTxqDOYnVIS3K?= =?us-ascii?Q?t3my79OcObMFKPmo3XaduBDt5MWslxi0yBjrDY6aAMBBjo85Y1sNEZeIJYA4?= =?us-ascii?Q?5HpGjhrO0Gw8+fq72h63CeldPhknEc26MU33Nxygx0Ha/HHI826kEx+puIKx?= =?us-ascii?Q?Hv4z+Yd9VX+/AiLy2Hz/GfdpAT/BPP2iqz2+Qtsw1hz0hMkTWlf+vzmG0bo6?= =?us-ascii?Q?uEMDZD4fsI9cKSDpCRU4foVipPn2ETzWMKIxq0ik7vuPeG2+Mz9mlvCsOcPP?= =?us-ascii?Q?lumTWzTLUwRrB12bQEKFioYJT+n8pFdqrNvGQ2f3jn3XvoppAsDxWGasYXD+?= =?us-ascii?Q?AAXs1vPD0bQeGWhoV4Wj8KwZRF2W2yQ3az2HwCVTCTXODnGlbkK4sUuqQ8zS?= =?us-ascii?Q?8i/mtnlx1L4E51mzw5F0qaVLu8L7y/fb?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?J2joDm+U6qIsHgAPSnVT1/YLnL/smRshD+mzImnjxNmKThq6OnH0xWBHDXzn?= =?us-ascii?Q?l5lPW2z6/gpjrGxDz/Q53vot41Y5CNHnKAmgb+vw6A6DY1P5gj9M9lJQ+6Pp?= =?us-ascii?Q?X8F+Ctm/rFIsZXDwMt9eNdzcUnmrpXrSd0aefkuXI25nTrxmuvyaJ84iyTZN?= =?us-ascii?Q?TMaSaji0ei1JGkJguXLTFuyD25xoifMA4JLtG8gApVxvw7JZAkawyL7ITE7d?= =?us-ascii?Q?mWBF3k6SMVv+9VztytW3VmsBg33W5VQ4p7cdbOndeVs+SyMjittpzOu6AmfL?= =?us-ascii?Q?M76IQ+mZR6N7aYrQhL66syv6AGAm5fhvVnxpIm7n+v0G4oTEt/ozk8+SP4fS?= =?us-ascii?Q?g0UGV2ffkF2nJMtFGRcrE1h6E/bqBzWblQG33HXam5K01AvwD2k6HbmVm5Qj?= =?us-ascii?Q?yCrjea5AMWcbmxvYrTO8VQcJZtsYVSMdxhZnqI5tvevJvb6oDZgyTI85ypH6?= =?us-ascii?Q?6P/sE0JaDNQeSL39TmFBHpyRdEzhDjL5KCRXv8JQApoakA2iUTsfTCKfOGkX?= =?us-ascii?Q?mB8b+iyZQrD4XJiPjorl34RSRcYT3ntUBREdxhoOIkH5SsfFxcfv4tGasn+Z?= =?us-ascii?Q?KKN96Tmao4kh7+6uW8oFypOqdLb7o4+lnFTWc87tIh0lV1VxdqQTYGRGf7oQ?= =?us-ascii?Q?JsSwj4HYDT0lTGT8nRIA9i+Bkdg6t8UipofQ4UNh5vkb4o5c6pcAZHslLTnE?= =?us-ascii?Q?opl4ETXhyUEcV+MH9z4O2XkMZgoN7Sfbn1Rie2LmBvrDTo60JY+ns/IDKHso?= =?us-ascii?Q?l0kGItzIBe6B7TRRjeb9ObYJLUDngHRA5Gcot+SMOvs/U2sf2zerc2CQQeZ5?= =?us-ascii?Q?0hsUaNtTcxSyBQNqTcX8flYFj0knOkvl5epuH1B6zHAmv3sShmQcCET3OzTz?= =?us-ascii?Q?Yi8+L90Hv8MhKF5nN46oreALNQp5lj6gRGCaVYJVo2cf8+KQOHHi642PBxek?= =?us-ascii?Q?cFMjg1G54Z0l3Yx/Qyr5uYnriGCiTSbce2/1KniNeUrENV62LnyBoPMtXBsn?= =?us-ascii?Q?415bOVm4q5BSR4dPza93ovOd9v2D/pCygL20fkreXFZUwZZRfFNsK4e0ZWlP?= =?us-ascii?Q?9ldDEWDMVzDR/vRElXIdGKvoGLmRO2c1dsDBvfhEGYUa2xwRSCZ6s3i9qYje?= =?us-ascii?Q?mZKdEdxiUu5DpxYgZmTkqIcdbRFIjlksq/mV9iB5WLWoSe5W0JLJFcqC6jH7?= =?us-ascii?Q?sMkVb/IB8PzT9Qj9QsEi42cpwvrc7+BNF2EoZNfmcOIHgY3w2SP9C2BZym7L?= =?us-ascii?Q?iQq2PUvw5xN7pxGDsj3huFQY9n4+6AoMnHNGQt78Df5nGFDtqLaL6humK4Yv?= =?us-ascii?Q?01Z2pOdjjo5xSjcJyEORWAyJATFhH7+H3DEKnnLveY1ex0AaWR5JQYgJRTOD?= =?us-ascii?Q?nsjO7bx5+9/2lxbhKwU6d5SMWxxPVIM6VtbPBCJyztD7vKaHSpTI1RBTTs9U?= =?us-ascii?Q?8exPFPAbfb43zitosAVMSAYTpmSjyBJdY/GMuTGRsSbCLC9eZYc1t/ck5A4A?= =?us-ascii?Q?SHvc0i+maCkJCVOsH0OzPOXBQWl4urVVUcBKdbxlOCBJMUC57TlPCKhFw+N+?= =?us-ascii?Q?P2gPpQ7osVQQ+TVtbHYVT2kEq7r2Y6lS4aidUCbb?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c14af837-de23-46b2-3bf0-08dd7e938741 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:25.2859 (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: EqX9jvQVflzWivUGdbXQRJ/2R1XuyqB7KiNxAA7aqg1XDnOoISa5uPJ5E6UTE51/dR/bOW3d6fiZLHMoG6tWRA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9544 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The rcu_torture_one_read() function is designed for RCU readers that are confined to a task, such that a single thread of control extends from the beginning of a given RCU read-side critical section to its end. This does not suffice for things like srcu_down_read() and srcu_up_read(), where the critical section might start at task level and end in a timer handler. This commit therefore creates separate init_rcu_torture_one_read_state(), rcu_torture_one_read_start(), and rcu_torture_one_read_end() functions, along with a rcu_torture_one_read_state structure to coordinate their actions. These will be used to create tests for srcu_down_read() and friends. One caution: The caller to rcu_torture_one_read_start() must enter the initial read-side critical section prior to the call. This enables use of non-standard primitives such as srcu_down_read() while still using the same validation code. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 124 ++++++++++++++++++++++++++-------------- 1 file changed, 81 insertions(+), 43 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 4fa7772be183..ae7b68043150 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2164,53 +2164,70 @@ rcutorture_loop_extend(int *readstate, bool insofti= rq, struct torture_random_sta return &rtrsp[j]; } =20 -/* - * Do one read-side critical section, returning false if there was - * no data to read. Can be invoked both from process context and - * from a timer handler. - */ -static bool rcu_torture_one_read(struct torture_random_state *trsp, long m= yid) -{ - bool checkpolling =3D !(torture_random(trsp) & 0xfff); +struct rcu_torture_one_read_state { + bool checkpolling; unsigned long cookie; struct rcu_gp_oldstate cookie_full; - int i; unsigned long started; - unsigned long completed; - int newstate; struct rcu_torture *p; - int pipe_count; - bool preempted =3D false; - int readstate =3D 0; - struct rt_read_seg rtseg[RCUTORTURE_RDR_MAX_SEGS] =3D { { 0 } }; - struct rt_read_seg *rtrsp =3D &rtseg[0]; - struct rt_read_seg *rtrsp1; + int readstate; + struct rt_read_seg rtseg[RCUTORTURE_RDR_MAX_SEGS]; + struct rt_read_seg *rtrsp; unsigned long long ts; +}; =20 - WARN_ON_ONCE(!rcu_is_watching()); - newstate =3D rcutorture_extend_mask(readstate, trsp); - rcutorture_one_extend(&readstate, newstate, myid < 0, trsp, rtrsp++); - if (checkpolling) { +static void init_rcu_torture_one_read_state(struct rcu_torture_one_read_st= ate *rtorsp, + struct torture_random_state *trsp) +{ + memset(rtorsp, 0, sizeof(*rtorsp)); + rtorsp->checkpolling =3D !(torture_random(trsp) & 0xfff); + rtorsp->rtrsp =3D &rtorsp->rtseg[0]; +} + +/* + * Set up the first segment of a series of overlapping read-side + * critical sections. The caller must have actually initiated the + * outermost read-side critical section. + */ +static bool rcu_torture_one_read_start(struct rcu_torture_one_read_state *= rtorsp, + struct torture_random_state *trsp, long myid) +{ + if (rtorsp->checkpolling) { if (cur_ops->get_gp_state && cur_ops->poll_gp_state) - cookie =3D cur_ops->get_gp_state(); + rtorsp->cookie =3D cur_ops->get_gp_state(); if (cur_ops->get_gp_state_full && cur_ops->poll_gp_state_full) - cur_ops->get_gp_state_full(&cookie_full); + cur_ops->get_gp_state_full(&rtorsp->cookie_full); } - started =3D cur_ops->get_gp_seq(); - ts =3D rcu_trace_clock_local(); - p =3D rcu_dereference_check(rcu_torture_current, + rtorsp->started =3D cur_ops->get_gp_seq(); + rtorsp->ts =3D rcu_trace_clock_local(); + rtorsp->p =3D rcu_dereference_check(rcu_torture_current, !cur_ops->readlock_held || cur_ops->readlock_held()); - if (p =3D=3D NULL) { + if (rtorsp->p =3D=3D NULL) { /* Wait for rcu_torture_writer to get underway */ - rcutorture_one_extend(&readstate, 0, myid < 0, trsp, rtrsp); + rcutorture_one_extend(&rtorsp->readstate, 0, myid < 0, trsp, rtorsp->rtr= sp); return false; } - if (p->rtort_mbtest =3D=3D 0) + if (rtorsp->p->rtort_mbtest =3D=3D 0) atomic_inc(&n_rcu_torture_mberror); - rcu_torture_reader_do_mbchk(myid, p, trsp); - rtrsp =3D rcutorture_loop_extend(&readstate, myid < 0, trsp, rtrsp); + rcu_torture_reader_do_mbchk(myid, rtorsp->p, trsp); + return true; +} + +/* + * Complete the last segment of a series of overlapping read-side + * critical sections and check for errors. + */ +static void rcu_torture_one_read_end(struct rcu_torture_one_read_state *rt= orsp, + struct torture_random_state *trsp, long myid) +{ + int i; + unsigned long completed; + int pipe_count; + bool preempted =3D false; + struct rt_read_seg *rtrsp1; + preempt_disable(); - pipe_count =3D READ_ONCE(p->rtort_pipe_count); + pipe_count =3D READ_ONCE(rtorsp->p->rtort_pipe_count); if (pipe_count > RCU_TORTURE_PIPE_LEN) { // Should not happen in a correct RCU implementation, // happens quite often for torture_type=3Dbusted. @@ -2218,28 +2235,28 @@ static bool rcu_torture_one_read(struct torture_ran= dom_state *trsp, long myid) } completed =3D cur_ops->get_gp_seq(); if (pipe_count > 1) { - do_trace_rcu_torture_read(cur_ops->name, &p->rtort_rcu, - ts, started, completed); + do_trace_rcu_torture_read(cur_ops->name, &rtorsp->p->rtort_rcu, + rtorsp->ts, rtorsp->started, completed); rcu_ftrace_dump(DUMP_ALL); } __this_cpu_inc(rcu_torture_count[pipe_count]); - completed =3D rcutorture_seq_diff(completed, started); + completed =3D rcutorture_seq_diff(completed, rtorsp->started); if (completed > RCU_TORTURE_PIPE_LEN) { /* Should not happen, but... */ completed =3D RCU_TORTURE_PIPE_LEN; } __this_cpu_inc(rcu_torture_batch[completed]); preempt_enable(); - if (checkpolling) { + if (rtorsp->checkpolling) { if (cur_ops->get_gp_state && cur_ops->poll_gp_state) - WARN_ONCE(cur_ops->poll_gp_state(cookie), + WARN_ONCE(cur_ops->poll_gp_state(rtorsp->cookie), "%s: Cookie check 2 failed %s(%d) %lu->%lu\n", __func__, rcu_torture_writer_state_getname(), rcu_torture_writer_state, - cookie, cur_ops->get_gp_state()); + rtorsp->cookie, cur_ops->get_gp_state()); if (cur_ops->get_gp_state_full && cur_ops->poll_gp_state_full) - WARN_ONCE(cur_ops->poll_gp_state_full(&cookie_full), + WARN_ONCE(cur_ops->poll_gp_state_full(&rtorsp->cookie_full), "%s: Cookie check 6 failed %s(%d) online %*pbl\n", __func__, rcu_torture_writer_state_getname(), @@ -2248,21 +2265,42 @@ static bool rcu_torture_one_read(struct torture_ran= dom_state *trsp, long myid) } if (cur_ops->reader_blocked) preempted =3D cur_ops->reader_blocked(); - rcutorture_one_extend(&readstate, 0, myid < 0, trsp, rtrsp); - WARN_ON_ONCE(readstate); + rcutorture_one_extend(&rtorsp->readstate, 0, myid < 0, trsp, rtorsp->rtrs= p); + WARN_ON_ONCE(rtorsp->readstate); // This next splat is expected behavior if leakpointer, especially // for CONFIG_RCU_STRICT_GRACE_PERIOD=3Dy kernels. - WARN_ON_ONCE(leakpointer && READ_ONCE(p->rtort_pipe_count) > 1); + WARN_ON_ONCE(leakpointer && READ_ONCE(rtorsp->p->rtort_pipe_count) > 1); =20 /* If error or close call, record the sequence of reader protections. */ if ((pipe_count > 1 || completed > 1) && !xchg(&err_segs_recorded, 1)) { i =3D 0; - for (rtrsp1 =3D &rtseg[0]; rtrsp1 < rtrsp; rtrsp1++) + for (rtrsp1 =3D &rtorsp->rtseg[0]; rtrsp1 < rtorsp->rtrsp; rtrsp1++) err_segs[i++] =3D *rtrsp1; rt_read_nsegs =3D i; rt_read_preempted =3D preempted; } +} =20 +/* + * Do one read-side critical section, returning false if there was + * no data to read. Can be invoked both from process context and + * from a timer handler. + */ +static bool rcu_torture_one_read(struct torture_random_state *trsp, long m= yid) +{ + int newstate; + struct rcu_torture_one_read_state rtors; + + WARN_ON_ONCE(!rcu_is_watching()); + init_rcu_torture_one_read_state(&rtors, trsp); + newstate =3D rcutorture_extend_mask(rtors.readstate, trsp); + rcutorture_one_extend(&rtors.readstate, newstate, myid < 0, trsp, rtors.r= trsp++); + if (!rcu_torture_one_read_start(&rtors, trsp, myid)) { + rcutorture_one_extend(&rtors.readstate, 0, myid < 0, trsp, rtors.rtrsp); + return false; + } + rtors.rtrsp =3D rcutorture_loop_extend(&rtors.readstate, myid < 0, trsp, = rtors.rtrsp); + rcu_torture_one_read_end(&rtors, trsp, myid); return true; } =20 --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2073.outbound.protection.outlook.com [40.107.244.73]) (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 0C50021577E; Fri, 18 Apr 2025 16:10:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992632; cv=fail; b=dn0b8xAbxIShKxl8DkWhEhTyLgTEk9iLiuIS28uz4Pjmk+PaRd9RF6mHzb3JOl8svuCJnKMQUkDJmko0oony/1IdqM41XCVJKg4iCh51Ao1wRLRbZRYFP/hj73z9WfHVzolVFvrrNH7pmY3VwQ0/tVfe7LefkjjXad3Ga733zFA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992632; c=relaxed/simple; bh=YP0aKrK7t4dZMo3zpbXvouphDo9hJrnLNLvXuKHYXnk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=csOnEXPAJJulIgCnNwBhGaAUY9x8tW2RddofJ0UH1MMuC0jzznGIUby3OY+cd59biFIn73nXHfdSDV5F7p5ckFe02AuKDB+RuVeXYmCOoky+ygNFcWVNJoT+97bx1f5PkDzTuNKrs7IJLbibtWIN1KIuKQBsDnqvtg+7dLZBiLY= 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=YGm7bcIN; arc=fail smtp.client-ip=40.107.244.73 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="YGm7bcIN" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Npm1a90/VGq6OXuTsw30oVB/Phk0qjAZB0I4vyG1opVe4JMw0drfMZXRJy0wN2HjmcwyehoiHyJNvLfE6Cgy6qd/O2poq/ytvcKhZSHKwhVjOZ0XlIsd9J5IILe1h3+DVEhsQqxTsTcoeZR3uSWlMXPIvcaoXisWclfAMb42MLxHJ7RXh3C5eC2a4WKXjE9oshyfU26DOMeWsb/h/FTpuMYGYmmcyGWIlx4K1nl0yqa3iB1ZJNbXTeg1rMaLpTX4ehEv3frLvsTgbCPrGGhgysUS7mmK3ZqVTuBRqs/E3N0D0Ze1Pzq8i+l0LAnnOhwERcNpOzrkwLoVWJQ3Bgl6TA== 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=vCZQvz2PSjgu7Ewi3GlXCSujigWKeqPHTWNMbcbPoJg=; b=swGJxALkuK0yCp5Z+qtDhGYaCnFc+h077tSpvMa8KkVYh56juXW9hvhfHz1M2bS0yf4k5zVUOuMu1NRWR/SlKvSF8CgWJhpZomcbVwnZfJGzXYtPW8IpYWUNytd1S7X6jwRbKLpoTmW0Q5iBK8dlp43OYNbqgPQQyfPK7zmqxV5E4ShJEBJTyHsWYjGUvxFNETSG0InXQil08UnYaZZnWMlSL/MoP0fp4+/AVEOzSzeVa2yM5JIhq56AJ4+oMTceiEN29kHMX6Rx3ZH5uOsRr6h4ThEn9NOhfHKRg7ImXInVylRbfhO6kWbjSdyblYoyiInSYxxZ2165FVX6Fi9/hA== 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=vCZQvz2PSjgu7Ewi3GlXCSujigWKeqPHTWNMbcbPoJg=; b=YGm7bcINNqBpU7aCUuk486nL8C//voEV64t+khRekXagz1ta7mahTwWqvsNpcANXRq2sAzjxpW7jVnKsJUPQ7GvsrEfMlVF53xCumCTozgkpoHl5WQIrYUgoju2D4IIhA2ZRh0IupC6WNGs9sbmDVT0kJ8sbKHYzno6sUMd6RsZ+iHj+F6gITjPVHQQh2XmyGctyzMDAUzjsT4czg2RU8WKO0unU+J2Q9UzmdgvQGxXm1PDNgDrbL36W5UCAPNsrEOCr+2zUXAA3NrIGA39/Bor6ZP3JBfLPPVJVRCLfy9T5mQpI7PpBBgGemu0KE2w+NDKUQJc0i0I3rpKSci4MIQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CH2PR12MB9544.namprd12.prod.outlook.com (2603:10b6:610:280::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Fri, 18 Apr 2025 16:10:28 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:27 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan , Sebastian Andrzej Siewior , Clark Williams Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org, linux-rt-devel@lists.linux.dev Subject: [PATCH 04/14] rcutorture: Make torture.sh --do-rt use CONFIG_PREEMPT_RT Date: Fri, 18 Apr 2025 12:09:36 -0400 Message-ID: <20250418161005.2425391-5-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0138.namprd03.prod.outlook.com (2603:10b6:408:fe::23) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CH2PR12MB9544:EE_ X-MS-Office365-Filtering-Correlation-Id: 7bbc3fd4-e5e3-45de-c7ac-08dd7e93888d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?krdLJZGUu/4vL3Re3/LHl3CK8iLUPVOTRUmF+zNfLEvWS1gE/b83PhHSzvI9?= =?us-ascii?Q?5bT0SnauJGzL1Q0Wtnk2xZUo2O00mrr/Op0PZA98ruF54z1k2B1CvtJFtGja?= =?us-ascii?Q?yOnJOdxaXy2IYYlRN8CEmT7Za153/njD77Sw7l/8/Ly16oZmPG2F1bA32Aol?= =?us-ascii?Q?5Q0HTJ8joJ5xtsWSo2gp1kP1UCm0/1bSujNQh7ORux4MfQk66FLxUDv44Sas?= =?us-ascii?Q?j2iuBziQHrfN1hKk+xZ6nt3vRChQR+7XdOMAd/ZCLWreQ5njC7dykUrSve1e?= =?us-ascii?Q?tpvTLtwqAnXguNxE9OTXkeuwbSrV0KzGXK/z3y/B5fwPJ31HLNtpzzskFXRK?= =?us-ascii?Q?ccwROqCLMwDtl2cGlFgX7xV9KKYD+fU1CtTDggdgj65YdPGoDxH+cit+rFy5?= =?us-ascii?Q?A3ZERc7o2RUsk4X6uk1R1P1iqlpzaGYei/R7i0bvriGZr+eKSRIq2OxVZcKi?= =?us-ascii?Q?XadZBXt0ro401cAVDQzQvhVusBj2yjM4cOOFeTD49XbXQyJpEl0Z2EG4q6LJ?= =?us-ascii?Q?LuQkszKJZSjrgUfV49E+tFkcM99wM9udym3Y1RhdyMK4tjwWGK1LbumakVlB?= =?us-ascii?Q?AlQOW+96WgsQn8CY0Lcrr1rKLwMtEQXaezsO+jDaW+Rsavw5OZcwzZLneaUM?= =?us-ascii?Q?pROJtDSrma7xN1Xp1zObQhoH9cKHIIMVhHkqzti30pRH4ktIjeTdd3FxCm5X?= =?us-ascii?Q?7067IM1ZsB/yjPxqIwo7eFncedRmj3L4JqPISh9Fw/xD8rjn0ptHGX9wkNVz?= =?us-ascii?Q?49Bb/pEuFRm7aovhQAdLchf2Y7gsxPCZr/V6osFYvAYdMOCoXMywwTntHOm6?= =?us-ascii?Q?Num4dSWfuP7osjTGkJL8DTCX8/cbPuuhw5QVuG9NLHycSDZi3mbMFUEbuGqJ?= =?us-ascii?Q?YhtlWlk+nJ9tECcvfErz6JYBT0s2DwpGSkyEBwgXK0Zu0NOoTjY33W1IzR64?= =?us-ascii?Q?Ore1flh4RvlYvPXVD3v2LTNa0Uqru8m+zU9y9TjjjZeN4RCPmNzzQduPg1s0?= =?us-ascii?Q?Dh7mzrcLgWsGDaDwdilF0xj+10+u/ANgK81cZBvOAkXAXTbSvh9oihAAJNoT?= =?us-ascii?Q?fQM1DiN4YUWFascTyyWvgCtrOOO+pQmq0rLJn+gXCVZXEGNA3uv4Cx5xU+AF?= =?us-ascii?Q?tdWHmwjUuEQxShx4q4gFc9sYnDrJR0iYMq3tuQJ8y7JNmmqch2QntBDuYQWk?= =?us-ascii?Q?4Qs1tEKCVLDTa9tPJlXPgteF5hQxWyDw8cJjVorns2HN2+HZkdi74xbJtfEn?= =?us-ascii?Q?2xOslawrRMFY9Cp7WdNWhjoc2Vh8g6Tz7Mo73tb3AI5W3vU/DTXlg5XHgflt?= =?us-ascii?Q?vyRd9GQ8VzqVAOkGS6IzT6dadO/bmtC/VspPHwxjraShkZYB1iUUKCmW5q5t?= =?us-ascii?Q?CLisiGHpp0w8H6brvAdBFKEhZCrY6tj0+ZZDvqE0Bxs+H1FbrdzqJHlmqWfK?= =?us-ascii?Q?6YsmBkRpQHk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zSVWDZz/ft7YWtifiLBqv3pDLIMDwgPcgAARRmExBXTDk55b0phGlnAOOfl1?= =?us-ascii?Q?82FhnErKdAfnX+EoV+M0qb+In8AvKlV8qwbgxtqof+n8LNDi7rhvMT4toJ7e?= =?us-ascii?Q?L55SlTwJSk5kZnVY/IxuRFyIdvNfyNdcHJ0z1BCqtd6d/TA5BbTM0CM96MAx?= =?us-ascii?Q?I69x4cluw8xhfs4emt3HY/52MwGP7KEgqxg55K4D/eFFfffjyY3thxhI0LFV?= =?us-ascii?Q?qtVGWXS4bs8SVHCKjSSZ+PvX907pHRINua1aTL1pnRmW7PoByYE21KdqLF59?= =?us-ascii?Q?gH/N6rayHp0U8FAOeUDzluPUw7NFonLquZ5XlnegC2c7zAK0QxYGhP1IIVz1?= =?us-ascii?Q?x8vfrIucLo6aQUuH9AtvpOIXg7/fSpLQyeZqZnVG2NcZFJcJ8Hrt2A/77nMF?= =?us-ascii?Q?Cpv5SLrTNBsr0cp148eIu0L4O0h5RjAo8o0i85ZQ4cz7HjlgAh5hFwkN4Bza?= =?us-ascii?Q?AM2XWsYlXZzrrGuppRKjRaBLkU2JXG7zxb/q7Pp9bK7eCdExvDU0zEaRvDPN?= =?us-ascii?Q?57G7C5DMrfJdRoBdSTRACZP/HlRu0+2j4H7CvTFbgXwkvAQULWKvkPFwfvvP?= =?us-ascii?Q?yB5k0Vb1PoUK1vgOiMEqRMfzEQt761Y+4Mr4NkevfbVyqoIIyfrWT15inwKW?= =?us-ascii?Q?omYEtFq5+ZbcQZi7vzY0YwCR4yDD3+i96/ZLZNGJ/GWOQDeDvrIjl+4a0LOO?= =?us-ascii?Q?uwuqcYqpnEOOi8s9tkaHCo3jpgItzw9EdiFIiRLC4W6ZqkDRSRprsaXjuqQV?= =?us-ascii?Q?BlxVwwdpQGewvzRQczMKf1Bz3TjVv3EdVQkdN3+i6bt/dVZqKkSVtU1zsBp6?= =?us-ascii?Q?lyydShd5bEuD289T2kyUOIr81JU9BU0NGbzqrNZLK9426yc0C2DcwhSzdnMp?= =?us-ascii?Q?LlUjpQ6czom0yKmQAZc9ia3xdytMrldNWXvnzUEqT/kgVC1g/2awc/oRn2gv?= =?us-ascii?Q?ZCNgnbEGJqGfCFPeOXNO3nzRcQA7+IG87iF+eE+lfbbcA8uf0FxdgAlUQ6wy?= =?us-ascii?Q?1b7N5o6puCKaYMsHakzhABlxhj8cH5cd8t2OJ6qkJtvNpKUCIqr6dHUOjiGu?= =?us-ascii?Q?rzWVKB8GzWsU0ujWECzpnLlPTbN0JMlWB1v8X9xUcKwy50SBidkASI7M8PBm?= =?us-ascii?Q?7NJNppmWVg2bqPmjXrGbSWQvv/Vd/jxEq1pVpZXv8eeFdy3ZjNZjd3E65SHd?= =?us-ascii?Q?OG5WVxf0qxTni8Z5TA/w9s7428UYQvYmTz0WBSbZtybj5GsWGso7Z/DsGtMN?= =?us-ascii?Q?ZDALGGSvLAPcqatzETlyI9HrRPzxWHJ+dOVF0+P89e55Fn1QaI5/qld2u6mQ?= =?us-ascii?Q?WUgWyHX/Cw6cCoLjvID2xMTRPrs+jx2/mjxiJ3AohVqt1GmwaU9fQniHz2I8?= =?us-ascii?Q?iYoKAjk3QMf3DNmyykFoR3uJiT0wrK4XD0Ma8UYpPExfGGIYtnNEdC0g2T7e?= =?us-ascii?Q?bEGLKORqFLBvAs92e14RZrYihHWUs4LtmslMcDTWFS7QbVfse0Af+iVdcX6f?= =?us-ascii?Q?cp38do/qs7UXGz+6E7cHHMxtaYQqXFkUcSLpfi2qW/UG5ezYH2v/xIH/1yDD?= =?us-ascii?Q?fxW9d+FP3lKDHYSbKck/gbpm7ViHDqnGMM7MNiAy?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7bbc3fd4-e5e3-45de-c7ac-08dd7e93888d X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:27.3791 (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: 4xkEj/wqDTPEaIXE19HuY5XU6ORSKqKKXOD6ZAFVuxf2GN/1IPwyy07IIurLHZnCkc2gVAcsTXmvRCkrTOEa7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9544 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The torture.sh --do-rt command-line parameter is intended to mimic -rt kernels. Now that CONFIG_PREEMPT_RT is upstream, this commit makes this mimicking more precise. Note that testing of RCU priority boosting is disabled in favor of forward-progress testing of RCU callbacks. If it turns out to be possible to make kernels built with CONFIG_PREEMPT_RT=3Dy to tolerate testing of both, both will be enabled. [ paulmck: Apply Sebastian Siewior feedback. ] Signed-off-by: Paul E. McKenney Cc: Sebastian Andrzej Siewior Signed-off-by: Joel Fernandes --- tools/testing/selftests/rcutorture/bin/torture.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh b/tools/test= ing/selftests/rcutorture/bin/torture.sh index 0447c4a00cc4..b64b356f55ff 100755 --- a/tools/testing/selftests/rcutorture/bin/torture.sh +++ b/tools/testing/selftests/rcutorture/bin/torture.sh @@ -448,13 +448,17 @@ fi =20 if test "$do_rt" =3D "yes" then - # With all post-boot grace periods forced to normal. - torture_bootargs=3D"rcupdate.rcu_cpu_stall_suppress_at_boot=3D1 torture.d= isable_onoff_at_boot rcupdate.rcu_task_stall_timeout=3D30000 rcupdate.rcu_n= ormal=3D1" - torture_set "rcurttorture" tools/testing/selftests/rcutorture/bin/kvm.sh = --allcpus --duration "$duration_rcutorture" --configs "TREE03" --trust-make + # In both runs, disable testing of RCU priority boosting because + # -rt doesn't like its interaction with testing of callback + # flooding. + + # With all post-boot grace periods forced to normal (default for PREEMPT_= RT). + torture_bootargs=3D"rcupdate.rcu_cpu_stall_suppress_at_boot=3D1 torture.d= isable_onoff_at_boot rcupdate.rcu_task_stall_timeout=3D30000 rcutorture.tes= t_boost=3D0 rcutorture.preempt_duration=3D0" + torture_set "rcurttorture" tools/testing/selftests/rcutorture/bin/kvm.sh = --allcpus --duration "$duration_rcutorture" --configs "TREE03" --kconfig "C= ONFIG_PREEMPT_RT=3Dy CONFIG_EXPERT=3Dy CONFIG_HZ_PERIODIC=3Dn CONFIG_NO_HZ_= IDLE=3Dy CONFIG_RCU_NOCB_CPU=3Dy" --trust-make =20 # With all post-boot grace periods forced to expedited. - torture_bootargs=3D"rcupdate.rcu_cpu_stall_suppress_at_boot=3D1 torture.d= isable_onoff_at_boot rcupdate.rcu_task_stall_timeout=3D30000 rcupdate.rcu_e= xpedited=3D1" - torture_set "rcurttorture-exp" tools/testing/selftests/rcutorture/bin/kvm= .sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --trust-= make + torture_bootargs=3D"rcupdate.rcu_cpu_stall_suppress_at_boot=3D1 torture.d= isable_onoff_at_boot rcupdate.rcu_task_stall_timeout=3D30000 rcutorture.tes= t_boost=3D0 rcupdate.rcu_normal_after_boot=3D0 rcupdate.rcu_expedited=3D1 r= cutorture.preempt_duration=3D0" + torture_set "rcurttorture-exp" tools/testing/selftests/rcutorture/bin/kvm= .sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --kconfi= g "CONFIG_PREEMPT_RT=3Dy CONFIG_EXPERT=3Dy CONFIG_HZ_PERIODIC=3Dn CONFIG_NO= _HZ_FULL=3Dy CONFIG_RCU_NOCB_CPU=3Dy" --trust-make fi =20 if test "$do_srcu_lockdep" =3D "yes" --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 EFF48217670; Fri, 18 Apr 2025 16:11:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992666; cv=fail; b=Rr3/IG0NaIlAILW5L2xkAhQ77tnkgjMKjPEJwlnyE+XHLP8ouzEFvavMpPdT0uTjEfIIwBBUoWaM49K951Bhj/q7knxYn5ZUVZ4dHBiQdvMWCXbG1jJBmM3N2YVABOimkZjXmUDcA+wien0RL52h3vb8OFoMSdXJJRMJPj3W0q0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992666; c=relaxed/simple; bh=tN0yXp/74IQLMZ5KD4ZSQ93Qy+VXoayWZUatNkARH7E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=aUEQJc/9jhT+QwWA94DD7Hur2P6Mavl3sFsBtm7XL3m6v5MC5RhYEjWsdJb5k3ReW5NoPMWTEXAYAAt17GykDf+JfBYBQwX2Ux/SU9A+iPm8vN+hEn3TD3X0dGRUlfG8ju8GJggoW140VPExz73AMaRY0Q4CjDY5yxdiB4P+N3M= 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=TfpuvV+1; arc=fail smtp.client-ip=40.107.94.79 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="TfpuvV+1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Q2afPzCGh8dvWen9+ZGLloPIWjSwS670Io0GlYsgm+b6FXBKo8x8eEiM36CKtiG/R+J4Rz/pJ+MPNha7K/f2QjO0nLDJ0LcAzRMvxYt+bohOX6LVCwkQlpLYdJT8D9XcDo7RMv/Kburog+1HQnN84Iw6Wd9WHFBNux6rEFv11pyp22qf7fVjuNnf3H82hptUbPbXBWd2ZqGgcplNLDdb+UoQarO6384gAdqqIlwSQQwJsT3wEVkwn7VqqpK1o4MrE3QJ+V3OQUrJDKksEshhiOe9yPx4soSq9S0djZqrcrAJNwDHN0AHPanMlkBHoOaMHKcGHPXsq8UOLfCW7XeSxw== 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=Sy6cGgNJv05JiZ0CKfmr4xNPJ1uZr2IGyejShc2/Dg4=; b=ccQfnCEgJBOuHD9DyCxEukPQrVHWup4aUQsBpSRbWUFfjrEJfzDQF9IS78eHKXbkM5ojekU0ErCC/NrO3JI3uKX9OL2R+zCbyFjM9oq60VkJbH0hAove4NZcS38ByvJ4LU2GGRG91Q3QGugmbm8PfnM0NdDt0NcmxzPds1aUbMqup6bU4BnIDVTl6KoMyW9cGumZ/HXOKgFoas5IM4b3eE+HUql8Z1z87wxfQrqNyTDc+sboyUmpHDlngtG5Lnpes3fgfHJVTHFCuRVhZWa4mY0L5SJp0KPoIE4NWsRT1iOt2irmABYYE6Oihn3or+OBl628d8MFst1+amybiOKejQ== 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=Sy6cGgNJv05JiZ0CKfmr4xNPJ1uZr2IGyejShc2/Dg4=; b=TfpuvV+1G6Hm/05qLgzUy5ziRovFO1uoJEmGyfhvTa8AZDOG0zEDNgFhJ9gkKxF236laF4wUcJcm3Je4x+B6SnBqzylt+83iyoovrhP1iMueGxHMAXid3uIQmo0QOZJeZIf9tZ+YuTrM49D5yCa5dFatQH6SL/yS1GRO6/Y7yqNBc1B+k19EAbaOZAaD/BqGBwriEHkm72jawvbW/obwykrAw+0DxheNjA4KSH6lLJ115M+g+m6buKc3rKZs/OVA2huhzXgJzZVAt4I7szEL5DkUH8vl5ligk3BxIo73ngvYpmmvibuiWf39V1kAEmuNyz9jwuPdKxOSij/+nowwHg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:11:00 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:11:00 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan , Sebastian Andrzej Siewior , Clark Williams Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org, linux-rt-devel@lists.linux.dev Subject: [PATCH 04/12] rcutorture: Make torture.sh --do-rt use CONFIG_PREEMPT_RT Date: Fri, 18 Apr 2025 12:09:50 -0400 Message-ID: <20250418161005.2425391-19-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0146.namprd03.prod.outlook.com (2603:10b6:408:fe::31) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 5236ec27-6fe6-4581-eeb1-08dd7e939c06 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?HIWRXOkX5oMEVEP68DM+jTJ7K9Ay0+FALMCpYXxS1V1uLH37x/A6IWvtMYkv?= =?us-ascii?Q?1O67yn29XCZ80uXNZbEyFUR1vDAbf9q8MCU9fjYX+IkpqBEVfOK3LAfCMFH9?= =?us-ascii?Q?q7NXDTvc5cnXBOuUOQKIXZDA1bBAuGGdkgu5ZFlNARmTzpMUDMAFlzVMlJ+H?= =?us-ascii?Q?4G5YE+RQ7BUaPfUi/nRt1pwuFeG287pPWAECC4hZnJJCIrdgEoyOnJBQ1l2O?= =?us-ascii?Q?CT05NLLke5uUgxrocy0eKsVkJTyW2y8RmlErhSz5/OTIsO0Y2CYbGhq+UBXj?= =?us-ascii?Q?iYNG5Pp07yHQ3hX6UxKPT5poamQf5dc/UCPVSR5QOYLPOqw/DuK8vtrzcl5Z?= =?us-ascii?Q?5H/EcDgFtYY34DfiuK4M6Jmv//s4bjfnp84FNUTLJLCtz37oA7x7T63h7U0U?= =?us-ascii?Q?acTtPFxgozjrSprAlKnljYK/GBatNV3NDapxpsF+0fGOCZhFyBYJql9U6jq9?= =?us-ascii?Q?/sF5e/XC4qMEEhPRT76LX9T9EFTk5M/dL5sw/9ta54L7Pq//lqcSQ42PlmOP?= =?us-ascii?Q?zN9lf8A8CCPj6v2qtm/wsPHMrfRqAZ68iZjxeKaI9mXKDxthuSFffUcXXtBM?= =?us-ascii?Q?aoyuzrbawhEQlb2Z90cgKsZBTklQMDLNaI1rJ0bqLcRZ+z7bGv9nxRlLzPAH?= =?us-ascii?Q?WLC6EM+X5htGmzPWRqjUvMc55/nBAfmuk2j0bGwct84gGqrB44GnRzorV+M7?= =?us-ascii?Q?clX6b5gh5ThDeA4xFJsyVYaI6yB6lFzKuXfV8/ThYIu3TJtLR5OMk1V8adkM?= =?us-ascii?Q?NXCDEFm6UXFlk+Dea9poXnw5y5Wk1JXGSoHO8I68lcFS2L3LMA5dNusGHh3v?= =?us-ascii?Q?AHPyfM9HCxP609TQiXjecSlWjYcRByVjKENBYzOBepGyCDuyuzeB9eTd35nW?= =?us-ascii?Q?5hW2L2JUxDkaz/Hmp1KSQHHxTv2xo56YVOzOX/kL5QXxhRZuaDOiRzbIoxJ/?= =?us-ascii?Q?9W7Q5wI1UGOZBVeO6LRceIPDXXxLq///RWzDu+lkWObkEOiuJwpsYUn20PcN?= =?us-ascii?Q?qIT05GiciJM/7SR3C8FvNur24ODjqNSpP8TP7jozQJOSNShkr/z8w/ssXRSl?= =?us-ascii?Q?zbuZwL5zXoWClF7KEM6/u/JeFMRfrh7keTN7cD0CST0y7sDLJJBWcBT8C0tb?= =?us-ascii?Q?9AFZ5MoyDJQUiVYyiCAzSA96ijNIVn2xOur8ag0qVXGLokBY55GqGD01/Cra?= =?us-ascii?Q?lZHaRk9DV7Kx8z5C0+6w+3U4Fn4wCJbnOe1B4Q0C8j87LUuH0a/l+EHxCSCI?= =?us-ascii?Q?H249EGnpRp9aooiep26gN5RNqNx+Xw250hr4PbSgMNmgy1d+F9PrVd59qyVK?= =?us-ascii?Q?UU3n/uSV+br3xwG2MRTmml4EezO+FL8GprQe819p/Em0fxo2kKgt9n2U2m1W?= =?us-ascii?Q?3jv3yQyT2KbxLrfQbBcXz6Gx4yA1L6xKxjEUUTVn6XXs4q5NA62HINkYb2ow?= =?us-ascii?Q?hg2rSyEnMNo=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UuiQxMrba7CItG0e2R/FgbAxPzidzBORNY/XyxqLHBM7+bc7/Br06hhbqbOI?= =?us-ascii?Q?HeXixB42ltOh21YO7ajnR0eZNtyqOz7GI+73DhriC37Mj+2b/GWuvV8r2cUz?= =?us-ascii?Q?N116Uw/TWwuVT2V3JhrBpSyKanOng62aVq4rCxmLjhv//1I1ngG81/Z5I9gm?= =?us-ascii?Q?XqPUgFmdd8ie3JujZQZBDzNO9LDRjnSIQUqiLZKefaGHxW9XGfIbCYGSCC2h?= =?us-ascii?Q?MtsJtvs0/9jy7A/WPBhkt7PpLU1SayHC1vUgxbU9zc/DdiWH3NylwaIdKzYA?= =?us-ascii?Q?232960wAmZZEl+t3B67xgAhXN1HmYy+vUcEPXusmTgKKczY1M1dOSZd+qvlX?= =?us-ascii?Q?Ctz/nN4s5BkQ62BH27srW+18o/SmZVvpVK+MMog6KZCQQTbWkNDYG27k0afu?= =?us-ascii?Q?knlI6oByg2U1Q0RmgGzcdORLnBvQFKR6YoWoZ6G3yOSrvX7KDFkVvrNYqpEZ?= =?us-ascii?Q?DmFuDQg5OvUjs4Ajd572RHf6GBIF5BuG7wCRVZieOGfw6slL+DUb/Q+mGSzu?= =?us-ascii?Q?rxPurzRcyCbr4EYrvCyyb9NptKJZ1E4zJpKvCCyzuoJtjF8CsClhPaoUYEx6?= =?us-ascii?Q?gU5NXAjmui0DwJcavedxAXvyKEueiJH6ZiqSWBsOSn3qKhWJv6gexgJeEPHP?= =?us-ascii?Q?PUaaSmXjMNC2WGI6BXBktiIBD8XWIjvoBvQmuI5ht5X9Uui03KB7vuJUNMqj?= =?us-ascii?Q?08zs809ug/x9k4Ld17kUxwaoLPH1MGj+iXPXWUpETYG5ZNs7CqY/vSOqhUH5?= =?us-ascii?Q?XyOXE0RIBvjtq9sWgNWJDJbyu8vy3bpYCpeiDKcCbAuLccFvO5XfhJ4OcWYZ?= =?us-ascii?Q?cSL++JffJRerKh4aexUt9EeQYchdqbfBFbKkqdXPQ15fw6SLL+A8bHjGX+eX?= =?us-ascii?Q?hi8D1abhP7aHEzDP611SaJhtdrwCJDkHDmzJVpYok3/cxP0HeNBhDjqyIJWy?= =?us-ascii?Q?xaqB36byYhxne9UT0Pc/0IKG+3/UIHLCfroOjXJT//pp3xZtwav0r3+TsS7b?= =?us-ascii?Q?IJTV28Pb/P3xuDrvhSyVzEjP1wD0cXmo8d1E1/xAzx2kANj+z1BV9gfxcA18?= =?us-ascii?Q?2unrsVACWkIL6muPXBDw025DO2ztBDuTMNmQKKVJ49LGvDiHdRd0nbYbYxDI?= =?us-ascii?Q?j5/8tIySWqokzWgN5BzmmZ+EY8XzUd+kTsB999rqXm7J6i1J6Ffrjwb0xpAu?= =?us-ascii?Q?NiNULM4agvqiyyBb1E06YiqqdK0x5ygaWfXZN8r8UlK7xyu2WkfRzusKjh+c?= =?us-ascii?Q?GenqHp9kBuGPicfyMkQFiblRc6FJ8NvdJHNWK0M0oDhUv6cUA1BdlICXMBgq?= =?us-ascii?Q?1k1u8eIslQSs0AxEd78mtFEjI/msTvLuq3nV9y2D6QNGAZ1kl/1uFUqmxZej?= =?us-ascii?Q?EoLNzJQ2oYFBl+FfEuioqL9Rq+PfkI80jx3sLvaG91bJrZyT8KpYvyLP7kRh?= =?us-ascii?Q?epxX1hOprrK8w6NwT++PIz6lTgW06n3WK3p3PO1RmljORjMf5W37LNx/mmxO?= =?us-ascii?Q?+KcGqRabkTBKPh167xKvE2laoXZGfW2njyn1HtgQL2VjsX8V9LYRjy4RiwAs?= =?us-ascii?Q?VkBNcef8my2oUGRmSpoO2fcR87Km7lBTX2v6yBJn?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5236ec27-6fe6-4581-eeb1-08dd7e939c06 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:11:00.0446 (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: cFfF7TzW7xZ2etGiILt14oMCXZKHTMUs3b8O0CrRYbaeMZjeDszxTzHxNCBrQ5gJlXquk+abjSBquYuqtPPVsA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The torture.sh --do-rt command-line parameter is intended to mimic -rt kernels. Now that CONFIG_PREEMPT_RT is upstream, this commit makes this mimicking more precise. Note that testing of RCU priority boosting is disabled in favor of forward-progress testing of RCU callbacks. If it turns out to be possible to make kernels built with CONFIG_PREEMPT_RT=3Dy to tolerate testing of both, both will be enabled. [ paulmck: Apply Sebastian Siewior feedback. ] Signed-off-by: Paul E. McKenney Cc: Sebastian Andrzej Siewior Signed-off-by: Joel Fernandes --- tools/testing/selftests/rcutorture/bin/torture.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh b/tools/test= ing/selftests/rcutorture/bin/torture.sh index 0447c4a00cc4..d53ee1e0ffc7 100755 --- a/tools/testing/selftests/rcutorture/bin/torture.sh +++ b/tools/testing/selftests/rcutorture/bin/torture.sh @@ -448,13 +448,17 @@ fi =20 if test "$do_rt" =3D "yes" then - # With all post-boot grace periods forced to normal. - torture_bootargs=3D"rcupdate.rcu_cpu_stall_suppress_at_boot=3D1 torture.d= isable_onoff_at_boot rcupdate.rcu_task_stall_timeout=3D30000 rcupdate.rcu_n= ormal=3D1" - torture_set "rcurttorture" tools/testing/selftests/rcutorture/bin/kvm.sh = --allcpus --duration "$duration_rcutorture" --configs "TREE03" --trust-make + # In both runs, disable testing of RCU priority boosting because + # -rt doesn't like its interaction with testing of callback + # flooding. + + # With all post-boot grace periods forced to normal (default for PREEMPT_= RT). + torture_bootargs=3D"rcupdate.rcu_cpu_stall_suppress_at_boot=3D1 torture.d= isable_onoff_at_boot rcupdate.rcu_task_stall_timeout=3D30000 rcutorture.tes= t_boost=3D0 rcutorture.preempt_duration=3D0" + torture_set "rcurttorture" tools/testing/selftests/rcutorture/bin/kvm.sh = --allcpus --duration "$duration_rcutorture" --configs "TREE03" --kconfig "C= ONFIG_PREEMPT_RT=3Dy CONFIG_EXPERT=3Dy CONFIG_HZ_PERIODIC=3Dn CONFIG_NO_HZ_= IDLE=3Dy" --trust-make =20 # With all post-boot grace periods forced to expedited. - torture_bootargs=3D"rcupdate.rcu_cpu_stall_suppress_at_boot=3D1 torture.d= isable_onoff_at_boot rcupdate.rcu_task_stall_timeout=3D30000 rcupdate.rcu_e= xpedited=3D1" - torture_set "rcurttorture-exp" tools/testing/selftests/rcutorture/bin/kvm= .sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --trust-= make + torture_bootargs=3D"rcupdate.rcu_cpu_stall_suppress_at_boot=3D1 torture.d= isable_onoff_at_boot rcupdate.rcu_task_stall_timeout=3D30000 rcutorture.tes= t_boost=3D0 rcupdate.rcu_normal_after_boot=3D0 rcupdate.rcu_expedited=3D1 r= cutorture.preempt_duration=3D0" + torture_set "rcurttorture-exp" tools/testing/selftests/rcutorture/bin/kvm= .sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --kconfi= g "CONFIG_PREEMPT_RT=3Dy CONFIG_EXPERT=3Dy CONFIG_HZ_PERIODIC=3Dn CONFIG_NO= _HZ_FULL=3Dy" --trust-make fi =20 if test "$do_srcu_lockdep" =3D "yes" --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2073.outbound.protection.outlook.com [40.107.244.73]) (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 C21A8215168; Fri, 18 Apr 2025 16:10:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992636; cv=fail; b=mAVTJhWPKIUPJMmSN1LWNJLZJTyWYgTTwMkc489MZwu4rvTs+/w3y8YwKGHM52nS+EAjsgc9dlGWER6HY9VBVea9j6e1e63w+k2d5waHLoBlCbUXJEYkY24a+GAWw1Wa30IFbkCH5CWUiAH3/1rnwUC+2xghZSbPjxoIMBmHrvI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992636; c=relaxed/simple; bh=+Q3u0QY0+yiiew4RuMx5Z8wQhrdyhfgd1kBueQerSXg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Y5SbVLqADY25O2kIE0aeJo1serJoNeGRgHtmICeQotRXE7Ve8v65I/roAHfluK9aPGmjo9/Lto93l797Tz3Ow0qt8wdFeR8Q1km4mEoXLNf2txRW9FrvtsDEwI71F0sRYO/pPvDEFE1jL+Qy9v6k6OdHU13L+3ByLNYsk2yxsZQ= 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=jdS+abWF; arc=fail smtp.client-ip=40.107.244.73 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="jdS+abWF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L6I7hEwzRYdt8kI3Je5MdqJXoYHh6bAXRLq0ldKEHxXxQRC5sxC5LEY0VWnFKfuSEKoJMJJDlwho/uATQSyxYOOkEIJ8v9/NoDYcGy4Ba4Uivy4pZq6bweSGkN8jBReP0iGPomDvJ2/g0SBDtwu47yKaeQtdc1tpBnpzr7940814iWI0z38h9rGmcM3Cg8lfXA/u9AYQeULWN552GRInhAWvhq+r/iYgeO2HN8DhlQZ2VYb1pWD4HEObZfDU4/AVWtcQMoQexj+8bv5JoFqyE1KCmFcVLAY46ulaUoyIOtCASKOy7Ccv1jVKpPt0nlHEyWCLIGFFdEo7sjZ6Slh1GQ== 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=6K+eak0AGvF01Q75FOS0vWO5z2dFzmikQF1tNLrGobc=; b=jRSa/2ZpR06b5q0LQ6gFMVLjAx3AEdbVJRjE4p8wXsRR80krkDtAcW9vnoM4rpqMmcxSswUb/HpkAVtxZYdLVqk35LlcZnF8Lm6htmInDS4cALtb7KnnIXVmRmRKX3nmbgVEJ4e8X6FS8vp118ge+F+g3Oixawc3XjK8RXIsNEJrdofUeFQWCYtePZBzG00LEjcMAPJSDrPUKO9hIQa42Vm1E/xem5o4LTHeeaAlFn+9GsMO055nvIew2AA2wD/GuXcDoETnCu9BbnVvj1yegkx2oelzqFW0bU8S2AnJ0Y/Znl9rr4ztkXWf+LoHIQCmoZPLDpnQcz54rw0oKqxklQ== 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=6K+eak0AGvF01Q75FOS0vWO5z2dFzmikQF1tNLrGobc=; b=jdS+abWFdT4IwF0xxQDz5xsq6flN3FBf3limv1UaxFrCuVT7bFCPQgfHND2w8hwd6pWvtoZ3bCPCt9OwPHAfGWw6Qvjmvz4sJsHnIeodMGTaBdUJpUqYW7gMvEDNZlV0zF2jOWUJB4UmrVhPaOCRmIei0W9V6kiFJ9xnJomuO7hwx7iD/g2wft9HLgmfhi3sVWvzAU+bpe30NO76A0NNx/nmFDxzVvze87OtZe1Fliu82FTMoCmLO2IPX5BlIIs0/bC4uu1VzIAJgvTmjFfzaswG2VRoRBdK5ug7DKJegCaBpGG8UmredlMMjaX6q9z1ggtNX1GZIIrklCncHTK/rg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CH2PR12MB9544.namprd12.prod.outlook.com (2603:10b6:610:280::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Fri, 18 Apr 2025 16:10:29 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:29 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 05/14] rcutorture: Add tests for SRCU up/down reader primitives Date: Fri, 18 Apr 2025 12:09:37 -0400 Message-ID: <20250418161005.2425391-6-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0P223CA0014.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::26) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CH2PR12MB9544:EE_ X-MS-Office365-Filtering-Correlation-Id: 32c25ecb-3276-42ea-2838-08dd7e9389fc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?4HGMa0izHjMCmRwzUc6OUXSTdwgFBf0DVv4AVEfy/opCkUOtCMS5QvZihylQ?= =?us-ascii?Q?uwctc+6qMv5BxyjvykgX6OJUprj/HhMg431gfD/5sfEzkKa0EkY6CgsVF/ez?= =?us-ascii?Q?FOz1BZ72z02MDp+P5B5zNnlbHoPoQNePPLVWbXrVNataHnUjYNvA/Y915LF0?= =?us-ascii?Q?a3BvpaCgbPZOFNid8G9MttK02y6bR+zlzPWPfyCsyUdFT4qn1zz25c7yNjsd?= =?us-ascii?Q?hWqsdSaNg+ljs57WAy3M16EEf9E+T+qpAW0L72oBH7DsKIFNx4DHHXDajXun?= =?us-ascii?Q?Pu3GsNJDy2ZvEHtLU7yk/cJeg4rDCf2z9ywGpFxAoQM0SQynIQmnyrqpf/4s?= =?us-ascii?Q?Vekafj3EDKj5wVJEQ4VT4e+or9CqtbRkG6JEn1q7hfDnyajaM1Kbg+VOC593?= =?us-ascii?Q?TBinoVT5aFH5kK6LwzXSZtuMKLiH4OXbg7D9VqjT/DJSrHMFzkSMrstGJbud?= =?us-ascii?Q?SzeSL4/ozKFQ7KezwbwsLEstXRVsK1/fmokb2sSZ95I2U7IN3oX7aAB8CciG?= =?us-ascii?Q?hnqHlCnNDWKdUDT4El2dreoh2qfmQFWJUReqXkLeGBmzB3ZNNe26HyV3uPK8?= =?us-ascii?Q?BrN+uvCP00P7JNfLaBV7vya7IjmO6aBsC+wsxulmFdv5vj9N+QhldxfbDpvD?= =?us-ascii?Q?1qTPNRGNm05F05+YTxr+/sgIousgbjcEQEJ5jQwWaD7kKT+9nINB/czydiea?= =?us-ascii?Q?4LsGhoFZdRQ1nWXUjSpaJmIVENd7ArVqXM9l3DTnpLpXC214sHPOZyuEEZPY?= =?us-ascii?Q?+v08Pr4SOcWGd9tmW3amQlbIP7G/jtFQiq1my6wct4pslNhPY7q+D1vvOqSw?= =?us-ascii?Q?J5x/a1sJRatTXYHVk8QXVnGCBkkLm3WaH4w9zAUHWCBolx8Hya46q7PPxEVM?= =?us-ascii?Q?4ZuQxWcWfRi2nShxXxdI6aWf9NwoUPZ6v3LYm5tvEKEFjvcbg2E5Q4SaI5db?= =?us-ascii?Q?US1T8Sl+orCIdc88iEoJ/UKnF6WGq9+VfnNgqTxlArqxOD34ZIN0Nu2pLAqI?= =?us-ascii?Q?y+5Ko9grr9lTnRRH2K1uHswRiFwZU1LUSbQ1b/pUi6GGgqS60yRon5iLTYtp?= =?us-ascii?Q?9o6qidaBSYQDgrlaChMygM3V4syRNdZKrE7T2xTGrgva07+/TreNQADtr+nO?= =?us-ascii?Q?cHVs3K+FrqowyEB44cdJf8mDbeV5sqWm9rdh3SofulgEyDT2GziNupnZ87In?= =?us-ascii?Q?friiJg3FbWM50RVqNeHJAM/pQWEZxyqh0vKhAa3vjyrYngOokXiUxkXIrCt8?= =?us-ascii?Q?i+QxJ4Ub+BkhK3+i2bmTPdGyJsN9pyS0v+VRJz3A2z7EBDw60Bv2DxHgjh71?= =?us-ascii?Q?fxLPLWAWJkPl+iFWMcmmjHmMnRUf4RFDjJcRMQViOo3Wk/HqiOSeYe55JceZ?= =?us-ascii?Q?E1DnEyO0+dMkH7I+qvMugAjVSsT8cYiKSORSOKgw0n01n9vOwQNmeEcchyBt?= =?us-ascii?Q?TmqiDvW9C4YCoH9rKc4mRk5StLeo50r4vFj96cq8o0w6elTxBCl3KQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iXyr1S21zJhCEhwwq7XzrP+VXOTFj4ryxxbhTYhvN3yi1m1kI7It3hl9E56W?= =?us-ascii?Q?XonduOjYC0BQ6n2Y3wX/aitsLSR7wm4hBcY3p5pCFZkUsh6R4+yUgk4/cIZC?= =?us-ascii?Q?OrbyHdYscGOiHjAVJrv3ofBUiv/wzfvzg7woIzJ8G7RhV3dlsqtxUwBocrgv?= =?us-ascii?Q?30MmA5Pdh95R1JLcf6ylcez3TaSOy20ME8dgvH1gTNmFnDU2MjHtWv5Ig+ZS?= =?us-ascii?Q?uX+bRLwHBBupfHY42JnDn+Oo0qvJbzF1EtYmx/+fh6jnt2E82FUvUhy190Yp?= =?us-ascii?Q?SV01pCt+zkIQlfl5h5Pb4a6ZCrIU75E6SajdlbAKfUtZws3SYDstCR9Txt9Q?= =?us-ascii?Q?WdywxNs6b5ndbxwHl1Shwro1t/bEbqLdQ9gwuD7renuDeuQ3FJak8XXYmmFu?= =?us-ascii?Q?rPPbYXE+lnkVTMKbE68CTCE/WDqx6EpqoN5eXUt/qVn2DS9yteYtvAD6LCjk?= =?us-ascii?Q?nIMoNMsxBW+t5O6oRRcTcEMH8EaiEn/p0JzL7E8vKUHWMe6s64n1rKy+D501?= =?us-ascii?Q?8yDHrMA/Mm9xrxXk8wBiNm90/jk9clVBBzRRPgrH2W4eGg0ORiWy5keI7EQq?= =?us-ascii?Q?s4j3UxzZOGoGp4eyn5zsi+6/G5N8ybqqNwdVhpWjCCEtIDIqYu4XOgnhQxZD?= =?us-ascii?Q?B4hnKDugTEpzZUp2cTqzjKPax4bwgDIgvEF4IqF2qIaQ3NNTbRac5v79+IWu?= =?us-ascii?Q?EYE+ILjxtY/EnTLbGfw30/pb8ex0uV3nOT3GQaI6IZOBaiRzpheQ23zc1ZqD?= =?us-ascii?Q?sW2SIvF6LoEW9EZFKnZdGhEeTn2MNYDXrQNSWzQz/JxdekUis4rBsnhtoxe7?= =?us-ascii?Q?P4obaYV4kW5wsyNP3J00PNTP4lOTc+/gVR+BeHrZZSM21XzN6n5uMdbHkd7Y?= =?us-ascii?Q?DbDj2ipJWUEo1R/aI4fW/T4Mu48P5/Wkzao85xI5oXNcL6aR0bDuf993L7rP?= =?us-ascii?Q?Ctq+evkPyKZXy5EGTbD30uGNIYtvuStfUTwNuB+MmCY8Oht1cRTUvEk7WSrT?= =?us-ascii?Q?joUnkUkDPIv3XUlXnbDOmJNeoWXoj0TdsYGWC+TqNZpvWwFaTcSu1cOrZlaf?= =?us-ascii?Q?H+oVltjZT0tRRCabSNfQS/cNom8NGG/k5v1a9xdzj0i4gx4jyqhNs/9oWN2z?= =?us-ascii?Q?wPz7byl0xcgEi+3NY4d0u8kPzUhiobhZQXDO33CvFMpAvxqSky4M4K3idB7T?= =?us-ascii?Q?iE7SH9IlvNqcWCiJ4V38azVOZStUwdnUTvxwWIG7odbUHF8SO5uTg7j/z+Vr?= =?us-ascii?Q?G0fI7DvTbqvqFCVfLo6nkwMU3/c/ShS9h0jU/nXnIB2V+geKXGYC6YGw6JUI?= =?us-ascii?Q?uqRxnvSPHaqOSlXAZXZ5IpWb3KtK5LgsRcNtgLm5JFjT+4yXNAvpV/xTAy3y?= =?us-ascii?Q?E+NI84+8bZ7YvG8YD3vg3SwyaFj83U0YzMUsHYLvCqkuamVz55N/J4+6l/W1?= =?us-ascii?Q?HhAwQ8KHkxGaiXvjZC6SB6nh86hIrUM2S0qsLrRdQIq5gb8MePnLlqi3V7if?= =?us-ascii?Q?c8RRhdGrvAVmVJSuN6TMLRFps+eMG9ao+qbggZQQbOdKeWOlznf/lsg6iwdq?= =?us-ascii?Q?32UODFq99n4lG9UxXKO6CDt3FMAQ7Iqa1QFungJz?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 32c25ecb-3276-42ea-2838-08dd7e9389fc X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:29.7838 (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: EPqSK6TxPQpb6Qi2RO6E2HIv6+0o9Nra6VQXoQJoivPLTGn0mMGjOZLMkif9enGYumfObWys9VjojdDQ+eyv4w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9544 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" This commit adds a new rcutorture.n_up_down kernel boot parameter that specifies the number of outstanding SRCU up/down readers, which begin in kthread context and end in an hrtimer handler. There is a new kthread ("rcu_torture_updown") that scans an per-reader array looking for elements whose readers have ended. This kthread sleeps between one and two milliseconds between consecutive scans. [ paulmck: Apply kernel test robot feedback. ] [ paulmck: Apply Z qiang feedback. ] [ joel: Fix build error: hrtimer_init is replaced by hrtimer_setup. ] [ joel: Apply Boqun bug fix to drop extra up_read() call in rcu_torture_updown()]. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 225 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 206 insertions(+), 19 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index ae7b68043150..be671e09c1ce 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -55,22 +55,24 @@ MODULE_DESCRIPTION("Read-Copy Update module-based tortu= re test facility"); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Paul E. McKenney and Josh Triplett = "); =20 -/* Bits for ->extendables field, extendables param, and related definition= s. */ -#define RCUTORTURE_RDR_SHIFT_1 8 /* Put SRCU index in upper bits. */ -#define RCUTORTURE_RDR_MASK_1 (0xff << RCUTORTURE_RDR_SHIFT_1) -#define RCUTORTURE_RDR_SHIFT_2 16 /* Put SRCU index in upper bits. */ -#define RCUTORTURE_RDR_MASK_2 (0xff << RCUTORTURE_RDR_SHIFT_2) -#define RCUTORTURE_RDR_BH 0x01 /* Extend readers by disabling bh. */ -#define RCUTORTURE_RDR_IRQ 0x02 /* ... disabling interrupts. */ -#define RCUTORTURE_RDR_PREEMPT 0x04 /* ... disabling preemption. */ -#define RCUTORTURE_RDR_RBH 0x08 /* ... rcu_read_lock_bh(). */ -#define RCUTORTURE_RDR_SCHED 0x10 /* ... rcu_read_lock_sched(). */ -#define RCUTORTURE_RDR_RCU_1 0x20 /* ... entering another RCU reader. */ -#define RCUTORTURE_RDR_RCU_2 0x40 /* ... entering another RCU reader. */ -#define RCUTORTURE_RDR_NBITS 7 /* Number of bits defined above. */ -#define RCUTORTURE_MAX_EXTEND \ +// Bits for ->extendables field, extendables param, and related definition= s. +#define RCUTORTURE_RDR_SHIFT_1 8 // Put SRCU index in upper bits. +#define RCUTORTURE_RDR_MASK_1 (0xff << RCUTORTURE_RDR_SHIFT_1) +#define RCUTORTURE_RDR_SHIFT_2 16 // Put SRCU index in upper bits. +#define RCUTORTURE_RDR_MASK_2 (0xff << RCUTORTURE_RDR_SHIFT_2) +#define RCUTORTURE_RDR_BH 0x01 // Extend readers by disabling bh. +#define RCUTORTURE_RDR_IRQ 0x02 // ... disabling interrupts. +#define RCUTORTURE_RDR_PREEMPT 0x04 // ... disabling preemption. +#define RCUTORTURE_RDR_RBH 0x08 // ... rcu_read_lock_bh(). +#define RCUTORTURE_RDR_SCHED 0x10 // ... rcu_read_lock_sched(). +#define RCUTORTURE_RDR_RCU_1 0x20 // ... entering another RCU reader. +#define RCUTORTURE_RDR_RCU_2 0x40 // ... entering another RCU reader. +#define RCUTORTURE_RDR_UPDOWN 0x80 // ... up-read from task, down-read fr= om timer. + // Note: Manual start, automatic end. +#define RCUTORTURE_RDR_NBITS 8 // Number of bits defined above. +#define RCUTORTURE_MAX_EXTEND \ (RCUTORTURE_RDR_BH | RCUTORTURE_RDR_IRQ | RCUTORTURE_RDR_PREEMPT | \ - RCUTORTURE_RDR_RBH | RCUTORTURE_RDR_SCHED) + RCUTORTURE_RDR_RBH | RCUTORTURE_RDR_SCHED) // Intentionally omit RCUTOR= TURE_RDR_UPDOWN. #define RCUTORTURE_RDR_ALLBITS \ (RCUTORTURE_MAX_EXTEND | RCUTORTURE_RDR_RCU_1 | RCUTORTURE_RDR_RCU_2 | \ RCUTORTURE_RDR_MASK_1 | RCUTORTURE_RDR_MASK_2) @@ -110,6 +112,7 @@ torture_param(bool, gp_sync, false, "Use synchronous GP= wait primitives"); torture_param(int, irqreader, 1, "Allow RCU readers from irq handlers"); torture_param(int, leakpointer, 0, "Leak pointer dereferences from readers= "); torture_param(int, n_barrier_cbs, 0, "# of callbacks/kthreads for barrier = testing"); +torture_param(int, n_up_down, 32, "# of concurrent up/down hrtimer-based R= CU readers"); torture_param(int, nfakewriters, 4, "Number of RCU fake writer threads"); torture_param(int, nreaders, -1, "Number of RCU reader threads"); torture_param(int, object_debug, 0, "Enable debug-object double call_rcu()= testing"); @@ -152,6 +155,7 @@ static int nrealfakewriters; static struct task_struct *writer_task; static struct task_struct **fakewriter_tasks; static struct task_struct **reader_tasks; +static struct task_struct *updown_task; static struct task_struct **nocb_tasks; static struct task_struct *stats_task; static struct task_struct *fqs_task; @@ -374,6 +378,8 @@ struct rcu_torture_ops { void (*readunlock)(int idx); int (*readlock_held)(void); // lockdep. int (*readlock_nesting)(void); // actual nesting, if available, -1 if not. + int (*down_read)(void); + void (*up_read)(int idx); unsigned long (*get_gp_seq)(void); unsigned long (*gp_diff)(unsigned long new, unsigned long old); void (*deferred_free)(struct rcu_torture *p); @@ -421,6 +427,7 @@ struct rcu_torture_ops { int no_pi_lock; int debug_objects; int start_poll_irqsoff; + int have_up_down; const char *name; }; =20 @@ -754,6 +761,50 @@ static int torture_srcu_read_lock_held(void) return srcu_read_lock_held(srcu_ctlp); } =20 +static bool srcu_torture_have_up_down(void) +{ + int rf =3D reader_flavor; + + if (!rf) + rf =3D SRCU_READ_FLAVOR_NORMAL; + return !!(cur_ops->have_up_down & rf); +} + +static int srcu_torture_down_read(void) +{ + int idx; + struct srcu_ctr __percpu *scp; + + WARN_ON_ONCE(reader_flavor & ~SRCU_READ_FLAVOR_ALL); + WARN_ON_ONCE(reader_flavor & (reader_flavor - 1)); + + if ((reader_flavor & SRCU_READ_FLAVOR_NORMAL) || !(reader_flavor & SRCU_R= EAD_FLAVOR_ALL)) { + idx =3D srcu_down_read(srcu_ctlp); + WARN_ON_ONCE(idx & ~0x1); + return idx; + } + if (reader_flavor & SRCU_READ_FLAVOR_FAST) { + scp =3D srcu_down_read_fast(srcu_ctlp); + idx =3D __srcu_ptr_to_ctr(srcu_ctlp, scp); + WARN_ON_ONCE(idx & ~0x1); + return idx << 3; + } + WARN_ON_ONCE(1); + return 0; +} + +static void srcu_torture_up_read(int idx) +{ + WARN_ON_ONCE((reader_flavor && (idx & ~reader_flavor)) || (!reader_flavor= && (idx & ~0x1))); + if (reader_flavor & SRCU_READ_FLAVOR_FAST) + srcu_up_read_fast(srcu_ctlp, __srcu_ctr_to_ptr(srcu_ctlp, (idx & 0x8) >>= 3)); + else if ((reader_flavor & SRCU_READ_FLAVOR_NORMAL) || + !(reader_flavor & SRCU_READ_FLAVOR_ALL)) + srcu_up_read(srcu_ctlp, idx & 0x1); + else + WARN_ON_ONCE(1); +} + static unsigned long srcu_torture_completed(void) { return srcu_batches_completed(srcu_ctlp); @@ -811,6 +862,8 @@ static struct rcu_torture_ops srcu_ops =3D { .readlock =3D srcu_torture_read_lock, .read_delay =3D srcu_read_delay, .readunlock =3D srcu_torture_read_unlock, + .down_read =3D srcu_torture_down_read, + .up_read =3D srcu_torture_up_read, .readlock_held =3D torture_srcu_read_lock_held, .get_gp_seq =3D srcu_torture_completed, .gp_diff =3D rcu_seq_diff, @@ -831,6 +884,8 @@ static struct rcu_torture_ops srcu_ops =3D { .irq_capable =3D 1, .no_pi_lock =3D IS_ENABLED(CONFIG_TINY_SRCU), .debug_objects =3D 1, + .have_up_down =3D IS_ENABLED(CONFIG_TINY_SRCU) + ? 0 : SRCU_READ_FLAVOR_NORMAL | SRCU_READ_FLAVOR_FAST, .name =3D "srcu" }; =20 @@ -856,6 +911,8 @@ static struct rcu_torture_ops srcud_ops =3D { .read_delay =3D srcu_read_delay, .readunlock =3D srcu_torture_read_unlock, .readlock_held =3D torture_srcu_read_lock_held, + .down_read =3D srcu_torture_down_read, + .up_read =3D srcu_torture_up_read, .get_gp_seq =3D srcu_torture_completed, .gp_diff =3D rcu_seq_diff, .deferred_free =3D srcu_torture_deferred_free, @@ -875,6 +932,8 @@ static struct rcu_torture_ops srcud_ops =3D { .irq_capable =3D 1, .no_pi_lock =3D IS_ENABLED(CONFIG_TINY_SRCU), .debug_objects =3D 1, + .have_up_down =3D IS_ENABLED(CONFIG_TINY_SRCU) + ? 0 : SRCU_READ_FLAVOR_NORMAL | SRCU_READ_FLAVOR_FAST, .name =3D "srcud" }; =20 @@ -1985,7 +2044,7 @@ static void rcutorture_one_extend(int *readstate, int= newstate, bool insoftirq, =20 first =3D idxold1 =3D=3D 0; WARN_ON_ONCE(idxold2 < 0); - WARN_ON_ONCE(idxold2 & ~RCUTORTURE_RDR_ALLBITS); + WARN_ON_ONCE(idxold2 & ~(RCUTORTURE_RDR_ALLBITS | RCUTORTURE_RDR_UPDOWN)); rcutorture_one_extend_check("before change", idxold1, statesnew, statesol= d, insoftirq); rtrsp->rt_readstate =3D newstate; =20 @@ -2061,6 +2120,11 @@ static void rcutorture_one_extend(int *readstate, in= t newstate, bool insoftirq, if (lockit) raw_spin_unlock_irqrestore(¤t->pi_lock, flags); } + if (statesold & RCUTORTURE_RDR_UPDOWN) { + cur_ops->up_read((idxold1 & RCUTORTURE_RDR_MASK_1) >> RCUTORTURE_RDR_SHI= FT_1); + WARN_ON_ONCE(idxnew1 !=3D -1); + idxold1 =3D 0; + } =20 /* Delay if neither beginning nor end and there was a change. */ if ((statesnew || statesold) && *readstate && newstate) @@ -2201,7 +2265,8 @@ static bool rcu_torture_one_read_start(struct rcu_tor= ture_one_read_state *rtorsp rtorsp->started =3D cur_ops->get_gp_seq(); rtorsp->ts =3D rcu_trace_clock_local(); rtorsp->p =3D rcu_dereference_check(rcu_torture_current, - !cur_ops->readlock_held || cur_ops->readlock_held()); + !cur_ops->readlock_held || cur_ops->readlock_held() || + (rtorsp->readstate & RCUTORTURE_RDR_UPDOWN)); if (rtorsp->p =3D=3D NULL) { /* Wait for rcu_torture_writer to get underway */ rcutorture_one_extend(&rtorsp->readstate, 0, myid < 0, trsp, rtorsp->rtr= sp); @@ -2370,6 +2435,121 @@ rcu_torture_reader(void *arg) return 0; } =20 +struct rcu_torture_one_read_state_updown { + struct hrtimer rtorsu_hrt; + bool rtorsu_inuse; + struct torture_random_state rtorsu_trs; + struct rcu_torture_one_read_state rtorsu_rtors; +}; + +static struct rcu_torture_one_read_state_updown *updownreaders; +static DEFINE_TORTURE_RANDOM(rcu_torture_updown_rand); +static int rcu_torture_updown(void *arg); + +static enum hrtimer_restart rcu_torture_updown_hrt(struct hrtimer *hrtp) +{ + struct rcu_torture_one_read_state_updown *rtorsup; + + rtorsup =3D container_of(hrtp, struct rcu_torture_one_read_state_updown, = rtorsu_hrt); + rcu_torture_one_read_end(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_trs, -1= ); + smp_store_release(&rtorsup->rtorsu_inuse, false); + return HRTIMER_NORESTART; +} + +static int rcu_torture_updown_init(void) +{ + int i; + struct torture_random_state *rand =3D &rcu_torture_updown_rand; + int ret; + + if (n_up_down < 0) + return 0; + if (!srcu_torture_have_up_down()) { + VERBOSE_TOROUT_STRING("rcu_torture_updown_init: Disabling up/down reader= tests due to lack of primitives"); + return 0; + } + updownreaders =3D kcalloc(n_up_down, sizeof(*updownreaders), GFP_KERNEL); + if (!updownreaders) { + VERBOSE_TOROUT_STRING("rcu_torture_updown_init: Out of memory, disabling= up/down reader tests"); + return -ENOMEM; + } + for (i =3D 0; i < n_up_down; i++) { + init_rcu_torture_one_read_state(&updownreaders[i].rtorsu_rtors, rand); + hrtimer_setup(&updownreaders[i].rtorsu_hrt, rcu_torture_updown_hrt, CLOC= K_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_SOFT); + torture_random_init(&updownreaders[i].rtorsu_trs); + init_rcu_torture_one_read_state(&updownreaders[i].rtorsu_rtors, + &updownreaders[i].rtorsu_trs); + } + ret =3D torture_create_kthread(rcu_torture_updown, rand, updown_task); + if (ret) { + kfree(updownreaders); + updownreaders =3D NULL; + } + return ret; +} + +static void rcu_torture_updown_cleanup(void) +{ + struct rcu_torture_one_read_state_updown *rtorsup; + + for (rtorsup =3D updownreaders; rtorsup < &updownreaders[n_up_down]; rtor= sup++) { + if (!smp_load_acquire(&rtorsup->rtorsu_inuse)) + continue; + if (!hrtimer_cancel(&rtorsup->rtorsu_hrt)) + WARN_ON_ONCE(rtorsup->rtorsu_inuse); + + } + kfree(updownreaders); + updownreaders =3D NULL; +} + +/* + * RCU torture up/down reader kthread, starting RCU readers in kthread + * context and ending them in hrtimer handlers. Otherwise similar to + * rcu_torture_reader(). + */ +static int +rcu_torture_updown(void *arg) +{ + int idx; + int rawidx; + struct rcu_torture_one_read_state_updown *rtorsup; + ktime_t t; + + VERBOSE_TOROUT_STRING("rcu_torture_updown task started"); + do { + for (rtorsup =3D updownreaders; rtorsup < &updownreaders[n_up_down]; rto= rsup++) { + if (torture_must_stop()) + break; + if (smp_load_acquire(&rtorsup->rtorsu_inuse)) + continue; + init_rcu_torture_one_read_state(&rtorsup->rtorsu_rtors, + &rtorsup->rtorsu_trs); + rawidx =3D cur_ops->down_read(); + idx =3D (rawidx << RCUTORTURE_RDR_SHIFT_1) & RCUTORTURE_RDR_MASK_1; + rtorsup->rtorsu_rtors.readstate =3D idx | RCUTORTURE_RDR_UPDOWN; + rtorsup->rtorsu_rtors.rtrsp++; + if (!rcu_torture_one_read_start(&rtorsup->rtorsu_rtors, + &rtorsup->rtorsu_trs, -1)) { + schedule_timeout_idle(HZ); + continue; + } + smp_store_release(&rtorsup->rtorsu_inuse, true); + t =3D torture_random(&rtorsup->rtorsu_trs) & 0xfffff; // One per millio= n. + if (t < 10 * 1000) + t =3D 200 * 1000 * 1000; + hrtimer_start(&rtorsup->rtorsu_hrt, t, + HRTIMER_MODE_REL | HRTIMER_MODE_SOFT); + } + torture_hrtimeout_ms(1, 1000, &rcu_torture_updown_rand); + stutter_wait("rcu_torture_updown"); + } while (!torture_must_stop()); + rcu_torture_updown_cleanup(); + torture_kthread_stopping("rcu_torture_updown"); + return 0; +} + /* * Randomly Toggle CPUs' callback-offload state. This uses hrtimers to * increase race probabilities and fuzzes the interval between toggling. @@ -2620,7 +2800,7 @@ rcu_torture_print_module_parms(struct rcu_torture_ops= *cur_ops, const char *tag) "reader_flavor=3D%x " "nocbs_nthreads=3D%d nocbs_toggle=3D%d " "test_nmis=3D%d " - "preempt_duration=3D%d preempt_interval=3D%d\n", + "preempt_duration=3D%d preempt_interval=3D%d n_up_down=3D%d\n", torture_type, tag, nrealreaders, nrealfakewriters, stat_interval, verbose, test_no_idle_hz, shuffle_interval, stutter, irqreader, fqs_duration, fqs_holdoff, fqs_stutter, @@ -2634,7 +2814,7 @@ rcu_torture_print_module_parms(struct rcu_torture_ops= *cur_ops, const char *tag) reader_flavor, nocbs_nthreads, nocbs_toggle, test_nmis, - preempt_duration, preempt_interval); + preempt_duration, preempt_interval, n_up_down); } =20 static int rcutorture_booster_cleanup(unsigned int cpu) @@ -3686,6 +3866,10 @@ rcu_torture_cleanup(void) nocb_tasks =3D NULL; } =20 + if (updown_task) { + torture_stop_kthread(rcu_torture_updown, updown_task); + updown_task =3D NULL; + } if (reader_tasks) { for (i =3D 0; i < nrealreaders; i++) torture_stop_kthread(rcu_torture_reader, @@ -4216,6 +4400,9 @@ rcu_torture_init(void) if (torture_init_error(firsterr)) goto unwind; } + firsterr =3D rcu_torture_updown_init(); + if (torture_init_error(firsterr)) + goto unwind; nrealnocbers =3D nocbs_nthreads; if (WARN_ON(nrealnocbers < 0)) nrealnocbers =3D 1; --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 27F6F225396; Fri, 18 Apr 2025 16:11:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992672; cv=fail; b=fPI1ooxpOOMKmqXonJfca1AtcDEabsUflD5mdmSJD6kCGoN8pHbG9rBgiIo1woUDg95JftWTLPC1o0lD/uxLGoHLHgv+4HM2Cqqz4j2BD/r5ar9K6MUvS1f6d3U+goLIU6JhAkLe891G8rDeUKiRLnTwUD7MdIDf154ma974+kM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992672; c=relaxed/simple; bh=uZw6vJE3txH426aYUhKnCJE67RQTx9pWxkC4WC2tS5Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=HKTmxnMxFlkiEDbtqZrp5p4SKk8lzPjAZFQQDwPGdp751s88H4Wpm0BzC3RoFgtkR9xJgNrOiQPSZUwnrE6AWz65qR6kT8FD10p5Z2K7VgvxTPD/6QUcy74sncTpbzSlpjJnXVPYqyT5+42J52Ai9WGLwnyjMBB8xDQHaharNl0= 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=Y8WAX3Dp; arc=fail smtp.client-ip=40.107.94.79 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="Y8WAX3Dp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GbPJdIt6rWgeDkNF6Nr3dzxqkExzdPT+Yf3aTRqiKZGz93rw1b/aXOKzH4ROAWnl5hb6y0fjIiw+lZb7HwxXSoDxPcYW4Sf72ZxoQQygoCjXO+ywTNWeP2fkUSt+rqb2i/eEVp5h1UhZ4FDnsmHYgT92poM1SkbyIo9meendnCGqkS+N6R5Vx1C7gJQ3Juvxh3oohWU4OLcRYlIJtxbUqDgniqmHSZrpK+Bws8y0c4QX3Ll1rMqYR6VRAPVOC7wnzBukLpXIRn/0/vT6nxbtecOfe1/HMAsnXE4SKv4T22u1o8epsT8aV+Cb3eh/Axx9VgX6lfK2k117iWjOaZjBxg== 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=RIQqoMc/ZwLJlXJdQd2WCjtQLfJPP1ny8zqRE38qSJw=; b=X7AkXh6l2phlz0Zl+/MqLpi45nVvzSwBCjkppPmU9LvJkG+FAsgDOnCD/11oR67KDVC1fmoUH+N6tdDG2pfAFxm7p8fr58NdPTXNxNyY3w+5dRAKUqCFt3dFhRlGD2U+FNvy+6B7RcPGcj/uuKA+8j+DtxVHXDfcyRi3VjwgohRdZMYfjPz1uvIIUqYwgTozTViyfp/0ttzV6Y1oe3O9T6llE2G9g90LIS1CT8+auc2MhMeoX7y1nblEHksH5p2DKUp/V0cvzvl/SoRHWHJkd4xrwHlGT1Crjew33b8WAjasQ2xllZHIRoTebC2AZbImlw7RCaaLmnvpNw6wA+ALQA== 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=RIQqoMc/ZwLJlXJdQd2WCjtQLfJPP1ny8zqRE38qSJw=; b=Y8WAX3Dp71YxVfS0m7v//VnaRpGSdlpQLFcTF4RL0qXYGi69dODJ6Kx5+uKiITVpvZTY7ZDZXfdPElNL123Mgw1gGuBkbK9av0WHRSksJnWprCLxwA/zPqwgjcaNPTaCmOTJntppEH9WEvd1FxZqZsqGBps4OywMyH0R+Gxmu4Cqe62r30BQJ+Yxh2eaE5Y7yCZfheZaVsmYIW3AKXYJZOeT8lJS+CC7bkVnSPpU5WbMHZ4ZNSZXiObaYaj/6lqYYzwHe6SPKdTaSV1uwuF5mRSMXTwhrE2NRvqx9dCvGEdFSY35BgDCMnlHmAIu3NKK8RT6f8rXBOzypkBobOkEmg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:11:02 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:11:02 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 05/12] rcutorture: Add tests for SRCU up/down reader primitives Date: Fri, 18 Apr 2025 12:09:51 -0400 Message-ID: <20250418161005.2425391-20-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0P223CA0024.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::31) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: fa4616f0-c536-4eb4-65e5-08dd7e939d7e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LWFedtQUu7g8aHRvrxmwWWisLGNehkxoy6iIURFr6BWt9vOn+atmH2p1Fswr?= =?us-ascii?Q?9I4czCqdqH1jfJpKEt0IXoEeLNm+f8MND+ldnk6UJ6Wi23UER7qBD3OLgyCO?= =?us-ascii?Q?vPo4ntUl8niSd3WE0mYomA7tWakyH4aTiWmh6oaa5yaiqdeG9lUwXThyvZOi?= =?us-ascii?Q?dCUajkNJap7gYa2CKwPTxbJKBFEiT36icowEMdrdEVjjUHfqNM+Ma34XS4no?= =?us-ascii?Q?DjXSVBWwHW/ej2vDxApO1goAJd+Zw/qkgcOdephV7+N8Yc+Weny8FYYW3IxC?= =?us-ascii?Q?8Wa5apdS8w2Yh49oR39bneeMe2IGlDewyfJ7aTd6vsC3+KuoN9oDHJFdhPD5?= =?us-ascii?Q?zWz0Aq47c0G4SW6llTio2Pnx3Lyp7aomu5ZABGRPjDTmC6Xjg0zOtZyQ1F6+?= =?us-ascii?Q?Lwmi9mQOQoi2yAoydEAG5cGjcSOfF38MB5stbgX4+6SkB852pq5hOlu4cC/G?= =?us-ascii?Q?soMaWnJfZN2vnH2jcIp9/cSCvpAJedC+lVHF7yPtNHWRBeDDTVDjqmk53BKL?= =?us-ascii?Q?jm6PejVEmefdSYEM8XUXRv8JE+AJTzh2foWf1+WUc1YDb8CpQsqyEWwPdKL9?= =?us-ascii?Q?VbfDOAO4Bi0CVurOx3imacKzbCDzn+BQHhln2OUW864X9fFx0fojn0alK+mA?= =?us-ascii?Q?KlyY65g04QPGfxd0glrffh10aYpCiDX6i/pUDWqUGzU7FMWDR24ZT9J7n4Hn?= =?us-ascii?Q?93dl/pmrkksZeHzSOEb5mvjlSzDgcrGLvfin90mbD9Rlz6S071ap2JD0NRoh?= =?us-ascii?Q?94s8jkTN1dfZBL/5UQR/cDXfMNVvRC2p4wHTKrIOzoaMkpPSugZeusWy6Prm?= =?us-ascii?Q?q0xDS+38lus0Viv1Pij6vyM5ZqwXmvczrIItgaZhtF0aB4wARDsfBbGKTKLa?= =?us-ascii?Q?ZSdcb/fLQNpvLDJrJszmG1oKhoncM2y2B0PvergSvuyLc3QxAesCXgG81kZF?= =?us-ascii?Q?js11y1+A83yNH5wRBZv8Q5fc7dcNGDPBQIQYeTrhc/mmNjFsXw0t5Wsw00su?= =?us-ascii?Q?BDBh4SsfuK2/f4yswKSE4Bq2TIgFtjwrEjHTcijwlB9mWBrRjOk2ylR/WXCu?= =?us-ascii?Q?RvXA/BjQOLN9Kzgd4sOlgrNJMDwyy95+C0jtctrH0e64vcZSVdoxmeBl9KLc?= =?us-ascii?Q?d7UC6YJblTRLt5EixSAGp/AGiZUffo3p9kdT4PS3Gb99ARkJdzhn9QsdirUN?= =?us-ascii?Q?7yPWu7vx78Px6R3zO121GoGbZNFvrVlkj67GGDfzndjiH1yKiCk8Bj67fvH9?= =?us-ascii?Q?wraILyOHeCumi7xJ0hSTR/luRIizl0XztH0yf8ICjKlKobRYpgBENT8nC37B?= =?us-ascii?Q?Q+DNk7SJD6rHvUT2HREvDdseowLWQS0vQRWQZh+Y84RuqltLUbKiiUJ8Es04?= =?us-ascii?Q?JgTgUECfoG3iv8o3wpPKALImMqnWQ733CCTEYqgFb87U5BQOfhwGMRxD+RC9?= =?us-ascii?Q?zsedeRYan17ziR9lGNalIGhGZhJw4G0SunRANY/9tgs8cKqC95wZ9Q=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0j/QHRLLJlnUDP0te4vJ/dZG9iT76y/KLQaXB6+fnG+Fp6NnOXlqh5Ayjtgc?= =?us-ascii?Q?AVVl7vm+Mp7Y1oed/Ymgv1HoUvf6qdscjcEt6evygKg+gkEmWjlwZmHG/rpU?= =?us-ascii?Q?eSXT3yFr5ap0AfkRp0tY0r4yF5g3J60FxYlOSSeO5/QoCYg78tVr3ockyFHQ?= =?us-ascii?Q?Fy6OR4gjPWJkshXu2UB8ZUEQ2PJvdlNTzjbCwSxZTLHeVzf9g4KJnDjvVnhY?= =?us-ascii?Q?lzANR1zqSpJtHpGiAvy5540I0ae3elLpX6qApPKd3Ee7zOADQbFuOUtv5PIa?= =?us-ascii?Q?6010gIttvr2+I7/wtgLj+gnQf8LA1TuCTMVHBwp9A7YzsgX+zEAE4TTxCr7H?= =?us-ascii?Q?J4YQs7hJxLRaE1LAfogjCAGGvBkh6lklUbBbz+ppHm8wtt+iDhOklUOlwbKc?= =?us-ascii?Q?wf8OvkIMy0dRhIhqweEBxbW5tEwL49J9EFxaZfGXAHVz7AJ9oyZMmMQJVFHY?= =?us-ascii?Q?GgGjOfAAI3F1YM2kR2RbYYFJmtVc7wj9IPVu5+TnylXkzjouUEi8IBVw0nvZ?= =?us-ascii?Q?hAAvuwtS8KZL7yqadS76ivT0BcX6aJoh8A+fkYFNgn75TmmXxwlJeNMcoVNR?= =?us-ascii?Q?P77x9E6sVaJj6VqmjAcdQCtOkQhd/aPPwe/ZucioFzTlPUJJGsSFy7ZzJWrD?= =?us-ascii?Q?j9P6yB75JgjldPFRZQxv7tUoTcXpaPa2znDr/uftEGG3OG8oEtrCH2li7fLF?= =?us-ascii?Q?EeotFwJ57eRU9sa8+aVUoCM9C//z82anfkYr0iLDBXzSrkSQmJgkX4otMarP?= =?us-ascii?Q?1eXLgmX65+JiJA6OIZuBc2Auy/tljLkZQhUHa3NvBBktZtQ7IBo/s9MGWJRm?= =?us-ascii?Q?wW0uL2fXd0d9gJTHodJPErhjWwemFCn+LikKxapRGX6Cz/30tjNHnwiW7SuP?= =?us-ascii?Q?HVsfjXvMdies65wjTPnaoW8Uen4ot02/GP1AqJHNpxqpwvBvqWRRtKy95CMd?= =?us-ascii?Q?NMCI35rRUGdT0ldiCzPA2aIdbMhYvkSD0XhMD3wc7PIHtIaQY2b2OybmZfgI?= =?us-ascii?Q?lNG4CWvwTq7gg7mb3iVSqfCaCZh88ToGQJcwn3mAJhQhmsK5vWOxz1b/rLg4?= =?us-ascii?Q?G1PpPHWCKh/pQyI3WZXUDF6qKhGmXECkJucYqKemGMFG7rqy/aBfoaEsxoAY?= =?us-ascii?Q?Vf0JQnt/k5cTg4CNYMSC6SHpEhXV32a26TdcP9WDwd3yk4/X3Y+ZbH2MZktR?= =?us-ascii?Q?NKRAUDbB6IcwtZHK28bFiFwctpTvvRSUHQbV+5YOGd+tVlMaPMjKTYwOtQrP?= =?us-ascii?Q?apMr8/Hm5R4smugQZ3c8Uc8lux6o9I2ZUxiSXarUV3amANya7AD9bUmWRKbz?= =?us-ascii?Q?f/Sj7YzpkI2ItK8FqQ/6PKWU4S5zx1QoLHlzBzOhZxvvJ6Abi/o3wPjwwUly?= =?us-ascii?Q?GMv91ijwh/b64MH5X6HfU506ZDvplFC1QVlcknvJJFC+Jn7uOocSkUkAqFkz?= =?us-ascii?Q?PxEhgPcwKDpfgatkDV6DoDo6uzTpR9/7bU3+p86SBWbnZuPHQKv3ZXZZjV6G?= =?us-ascii?Q?R/0sR19hzSIujlnORouHdg6Sqn22eFz9BXfZDHmz6HxmUwFUqRq0ExQWzt+I?= =?us-ascii?Q?gyzVc42c8kMzvL1njwHP2jChlm+BSvVw3QOqLzw7?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa4616f0-c536-4eb4-65e5-08dd7e939d7e X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:11:02.5356 (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: itBb5zfDPbc1B5FXAhN4+0gSGRJUco762gmAisc6vIP9j0JwZvbpLVHQvLRXvXFrN1ijaHwtpmcrjRilLf8NJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" This commit adds a new rcutorture.n_up_down kernel boot parameter that specifies the number of outstanding SRCU up/down readers, which begin in kthread context and end in an hrtimer handler. There is a new kthread ("rcu_torture_updown") that scans an per-reader array looking for elements whose readers have ended. This kthread sleeps between one and two milliseconds between consecutive scans. [ paulmck: Apply kernel test robot feedback. ] [ paulmck: Apply Z qiang feedback. ] Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 227 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 208 insertions(+), 19 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index b0e96df63622..e7f0521c56d0 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -55,22 +55,24 @@ MODULE_DESCRIPTION("Read-Copy Update module-based tortu= re test facility"); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Paul E. McKenney and Josh Triplett = "); =20 -/* Bits for ->extendables field, extendables param, and related definition= s. */ -#define RCUTORTURE_RDR_SHIFT_1 8 /* Put SRCU index in upper bits. */ -#define RCUTORTURE_RDR_MASK_1 (0xff << RCUTORTURE_RDR_SHIFT_1) -#define RCUTORTURE_RDR_SHIFT_2 16 /* Put SRCU index in upper bits. */ -#define RCUTORTURE_RDR_MASK_2 (0xff << RCUTORTURE_RDR_SHIFT_2) -#define RCUTORTURE_RDR_BH 0x01 /* Extend readers by disabling bh. */ -#define RCUTORTURE_RDR_IRQ 0x02 /* ... disabling interrupts. */ -#define RCUTORTURE_RDR_PREEMPT 0x04 /* ... disabling preemption. */ -#define RCUTORTURE_RDR_RBH 0x08 /* ... rcu_read_lock_bh(). */ -#define RCUTORTURE_RDR_SCHED 0x10 /* ... rcu_read_lock_sched(). */ -#define RCUTORTURE_RDR_RCU_1 0x20 /* ... entering another RCU reader. */ -#define RCUTORTURE_RDR_RCU_2 0x40 /* ... entering another RCU reader. */ -#define RCUTORTURE_RDR_NBITS 7 /* Number of bits defined above. */ -#define RCUTORTURE_MAX_EXTEND \ +// Bits for ->extendables field, extendables param, and related definition= s. +#define RCUTORTURE_RDR_SHIFT_1 8 // Put SRCU index in upper bits. +#define RCUTORTURE_RDR_MASK_1 (0xff << RCUTORTURE_RDR_SHIFT_1) +#define RCUTORTURE_RDR_SHIFT_2 16 // Put SRCU index in upper bits. +#define RCUTORTURE_RDR_MASK_2 (0xff << RCUTORTURE_RDR_SHIFT_2) +#define RCUTORTURE_RDR_BH 0x01 // Extend readers by disabling bh. +#define RCUTORTURE_RDR_IRQ 0x02 // ... disabling interrupts. +#define RCUTORTURE_RDR_PREEMPT 0x04 // ... disabling preemption. +#define RCUTORTURE_RDR_RBH 0x08 // ... rcu_read_lock_bh(). +#define RCUTORTURE_RDR_SCHED 0x10 // ... rcu_read_lock_sched(). +#define RCUTORTURE_RDR_RCU_1 0x20 // ... entering another RCU reader. +#define RCUTORTURE_RDR_RCU_2 0x40 // ... entering another RCU reader. +#define RCUTORTURE_RDR_UPDOWN 0x80 // ... up-read from task, down-read fr= om timer. + // Note: Manual start, automatic end. +#define RCUTORTURE_RDR_NBITS 8 // Number of bits defined above. +#define RCUTORTURE_MAX_EXTEND \ (RCUTORTURE_RDR_BH | RCUTORTURE_RDR_IRQ | RCUTORTURE_RDR_PREEMPT | \ - RCUTORTURE_RDR_RBH | RCUTORTURE_RDR_SCHED) + RCUTORTURE_RDR_RBH | RCUTORTURE_RDR_SCHED) // Intentionally omit RCUTOR= TURE_RDR_UPDOWN. #define RCUTORTURE_RDR_ALLBITS \ (RCUTORTURE_MAX_EXTEND | RCUTORTURE_RDR_RCU_1 | RCUTORTURE_RDR_RCU_2 | \ RCUTORTURE_RDR_MASK_1 | RCUTORTURE_RDR_MASK_2) @@ -110,6 +112,7 @@ torture_param(bool, gp_sync, false, "Use synchronous GP= wait primitives"); torture_param(int, irqreader, 1, "Allow RCU readers from irq handlers"); torture_param(int, leakpointer, 0, "Leak pointer dereferences from readers= "); torture_param(int, n_barrier_cbs, 0, "# of callbacks/kthreads for barrier = testing"); +torture_param(int, n_up_down, 32, "# of concurrent up/down hrtimer-based R= CU readers"); torture_param(int, nfakewriters, 4, "Number of RCU fake writer threads"); torture_param(int, nreaders, -1, "Number of RCU reader threads"); torture_param(int, object_debug, 0, "Enable debug-object double call_rcu()= testing"); @@ -152,6 +155,7 @@ static int nrealfakewriters; static struct task_struct *writer_task; static struct task_struct **fakewriter_tasks; static struct task_struct **reader_tasks; +static struct task_struct *updown_task; static struct task_struct **nocb_tasks; static struct task_struct *stats_task; static struct task_struct *fqs_task; @@ -374,6 +378,8 @@ struct rcu_torture_ops { void (*readunlock)(int idx); int (*readlock_held)(void); // lockdep. int (*readlock_nesting)(void); // actual nesting, if available, -1 if not. + int (*down_read)(void); + void (*up_read)(int idx); unsigned long (*get_gp_seq)(void); unsigned long (*gp_diff)(unsigned long new, unsigned long old); void (*deferred_free)(struct rcu_torture *p); @@ -421,6 +427,7 @@ struct rcu_torture_ops { int no_pi_lock; int debug_objects; int start_poll_irqsoff; + int have_up_down; const char *name; }; =20 @@ -754,6 +761,50 @@ static int torture_srcu_read_lock_held(void) return srcu_read_lock_held(srcu_ctlp); } =20 +static bool srcu_torture_have_up_down(void) +{ + int rf =3D reader_flavor; + + if (!rf) + rf =3D SRCU_READ_FLAVOR_NORMAL; + return !!(cur_ops->have_up_down & rf); +} + +static int srcu_torture_down_read(void) +{ + int idx; + struct srcu_ctr __percpu *scp; + + WARN_ON_ONCE(reader_flavor & ~SRCU_READ_FLAVOR_ALL); + WARN_ON_ONCE(reader_flavor & (reader_flavor - 1)); + + if ((reader_flavor & SRCU_READ_FLAVOR_NORMAL) || !(reader_flavor & SRCU_R= EAD_FLAVOR_ALL)) { + idx =3D srcu_down_read(srcu_ctlp); + WARN_ON_ONCE(idx & ~0x1); + return idx; + } + if (reader_flavor & SRCU_READ_FLAVOR_FAST) { + scp =3D srcu_down_read_fast(srcu_ctlp); + idx =3D __srcu_ptr_to_ctr(srcu_ctlp, scp); + WARN_ON_ONCE(idx & ~0x1); + return idx << 3; + } + WARN_ON_ONCE(1); + return 0; +} + +static void srcu_torture_up_read(int idx) +{ + WARN_ON_ONCE((reader_flavor && (idx & ~reader_flavor)) || (!reader_flavor= && (idx & ~0x1))); + if (reader_flavor & SRCU_READ_FLAVOR_FAST) + srcu_up_read_fast(srcu_ctlp, __srcu_ctr_to_ptr(srcu_ctlp, (idx & 0x8) >>= 3)); + else if ((reader_flavor & SRCU_READ_FLAVOR_NORMAL) || + !(reader_flavor & SRCU_READ_FLAVOR_ALL)) + srcu_up_read(srcu_ctlp, idx & 0x1); + else + WARN_ON_ONCE(1); +} + static unsigned long srcu_torture_completed(void) { return srcu_batches_completed(srcu_ctlp); @@ -811,6 +862,8 @@ static struct rcu_torture_ops srcu_ops =3D { .readlock =3D srcu_torture_read_lock, .read_delay =3D srcu_read_delay, .readunlock =3D srcu_torture_read_unlock, + .down_read =3D srcu_torture_down_read, + .up_read =3D srcu_torture_up_read, .readlock_held =3D torture_srcu_read_lock_held, .get_gp_seq =3D srcu_torture_completed, .gp_diff =3D rcu_seq_diff, @@ -831,6 +884,8 @@ static struct rcu_torture_ops srcu_ops =3D { .irq_capable =3D 1, .no_pi_lock =3D IS_ENABLED(CONFIG_TINY_SRCU), .debug_objects =3D 1, + .have_up_down =3D IS_ENABLED(CONFIG_TINY_SRCU) + ? 0 : SRCU_READ_FLAVOR_NORMAL | SRCU_READ_FLAVOR_FAST, .name =3D "srcu" }; =20 @@ -856,6 +911,8 @@ static struct rcu_torture_ops srcud_ops =3D { .read_delay =3D srcu_read_delay, .readunlock =3D srcu_torture_read_unlock, .readlock_held =3D torture_srcu_read_lock_held, + .down_read =3D srcu_torture_down_read, + .up_read =3D srcu_torture_up_read, .get_gp_seq =3D srcu_torture_completed, .gp_diff =3D rcu_seq_diff, .deferred_free =3D srcu_torture_deferred_free, @@ -875,6 +932,8 @@ static struct rcu_torture_ops srcud_ops =3D { .irq_capable =3D 1, .no_pi_lock =3D IS_ENABLED(CONFIG_TINY_SRCU), .debug_objects =3D 1, + .have_up_down =3D IS_ENABLED(CONFIG_TINY_SRCU) + ? 0 : SRCU_READ_FLAVOR_NORMAL | SRCU_READ_FLAVOR_FAST, .name =3D "srcud" }; =20 @@ -1985,7 +2044,7 @@ static void rcutorture_one_extend(int *readstate, int= newstate, bool insoftirq, =20 first =3D idxold1 =3D=3D 0; WARN_ON_ONCE(idxold2 < 0); - WARN_ON_ONCE(idxold2 & ~RCUTORTURE_RDR_ALLBITS); + WARN_ON_ONCE(idxold2 & ~(RCUTORTURE_RDR_ALLBITS | RCUTORTURE_RDR_UPDOWN)); rcutorture_one_extend_check("before change", idxold1, statesnew, statesol= d, insoftirq); rtrsp->rt_readstate =3D newstate; =20 @@ -2061,6 +2120,11 @@ static void rcutorture_one_extend(int *readstate, in= t newstate, bool insoftirq, if (lockit) raw_spin_unlock_irqrestore(¤t->pi_lock, flags); } + if (statesold & RCUTORTURE_RDR_UPDOWN) { + cur_ops->up_read((idxold1 & RCUTORTURE_RDR_MASK_1) >> RCUTORTURE_RDR_SHI= FT_1); + WARN_ON_ONCE(idxnew1 !=3D -1); + idxold1 =3D 0; + } =20 /* Delay if neither beginning nor end and there was a change. */ if ((statesnew || statesold) && *readstate && newstate) @@ -2201,7 +2265,8 @@ static bool rcu_torture_one_read_start(struct rcu_tor= ture_one_read_state *rtorsp rtorsp->started =3D cur_ops->get_gp_seq(); rtorsp->ts =3D rcu_trace_clock_local(); rtorsp->p =3D rcu_dereference_check(rcu_torture_current, - !cur_ops->readlock_held || cur_ops->readlock_held()); + !cur_ops->readlock_held || cur_ops->readlock_held() || + (rtorsp->readstate & RCUTORTURE_RDR_UPDOWN)); if (rtorsp->p =3D=3D NULL) { /* Wait for rcu_torture_writer to get underway */ rcutorture_one_extend(&rtorsp->readstate, 0, myid < 0, trsp, rtorsp->rtr= sp); @@ -2370,6 +2435,123 @@ rcu_torture_reader(void *arg) return 0; } =20 +struct rcu_torture_one_read_state_updown { + struct hrtimer rtorsu_hrt; + bool rtorsu_inuse; + struct torture_random_state rtorsu_trs; + struct rcu_torture_one_read_state rtorsu_rtors; +}; + +static struct rcu_torture_one_read_state_updown *updownreaders; +static DEFINE_TORTURE_RANDOM(rcu_torture_updown_rand); +static int rcu_torture_updown(void *arg); + +static enum hrtimer_restart rcu_torture_updown_hrt(struct hrtimer *hrtp) +{ + struct rcu_torture_one_read_state_updown *rtorsup; + + rtorsup =3D container_of(hrtp, struct rcu_torture_one_read_state_updown, = rtorsu_hrt); + rcu_torture_one_read_end(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_trs, -1= ); + smp_store_release(&rtorsup->rtorsu_inuse, false); + return HRTIMER_NORESTART; +} + +static int rcu_torture_updown_init(void) +{ + int i; + struct torture_random_state *rand =3D &rcu_torture_updown_rand; + int ret; + + if (n_up_down < 0) + return 0; + if (!srcu_torture_have_up_down()) { + VERBOSE_TOROUT_STRING("rcu_torture_updown_init: Disabling up/down reader= tests due to lack of primitives"); + return 0; + } + updownreaders =3D kcalloc(n_up_down, sizeof(*updownreaders), GFP_KERNEL); + if (!updownreaders) { + VERBOSE_TOROUT_STRING("rcu_torture_updown_init: Out of memory, disabling= up/down reader tests"); + return -ENOMEM; + } + for (i =3D 0; i < n_up_down; i++) { + init_rcu_torture_one_read_state(&updownreaders[i].rtorsu_rtors, rand); + hrtimer_init(&updownreaders[i].rtorsu_hrt, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_SOFT); + updownreaders[i].rtorsu_hrt.function =3D rcu_torture_updown_hrt; + torture_random_init(&updownreaders[i].rtorsu_trs); + init_rcu_torture_one_read_state(&updownreaders[i].rtorsu_rtors, + &updownreaders[i].rtorsu_trs); + } + ret =3D torture_create_kthread(rcu_torture_updown, rand, updown_task); + if (ret) { + kfree(updownreaders); + updownreaders =3D NULL; + } + return ret; +} + +static void rcu_torture_updown_cleanup(void) +{ + struct rcu_torture_one_read_state_updown *rtorsup; + + for (rtorsup =3D updownreaders; rtorsup < &updownreaders[n_up_down]; rtor= sup++) { + if (!smp_load_acquire(&rtorsup->rtorsu_inuse)) + continue; + if (!hrtimer_cancel(&rtorsup->rtorsu_hrt)) + WARN_ON_ONCE(rtorsup->rtorsu_inuse); + + } + kfree(updownreaders); + updownreaders =3D NULL; +} + +/* + * RCU torture up/down reader kthread, starting RCU readers in kthread + * context and ending them in hrtimer handlers. Otherwise similar to + * rcu_torture_reader(). + */ +static int +rcu_torture_updown(void *arg) +{ + int idx; + int rawidx; + struct rcu_torture_one_read_state_updown *rtorsup; + ktime_t t; + + VERBOSE_TOROUT_STRING("rcu_torture_updown task started"); + do { + for (rtorsup =3D updownreaders; rtorsup < &updownreaders[n_up_down]; rto= rsup++) { + if (torture_must_stop()) + break; + if (smp_load_acquire(&rtorsup->rtorsu_inuse)) + continue; + init_rcu_torture_one_read_state(&rtorsup->rtorsu_rtors, + &rtorsup->rtorsu_trs); + rawidx =3D cur_ops->down_read(); + idx =3D (rawidx << RCUTORTURE_RDR_SHIFT_1) & RCUTORTURE_RDR_MASK_1; + rtorsup->rtorsu_rtors.readstate =3D idx | RCUTORTURE_RDR_UPDOWN; + rtorsup->rtorsu_rtors.rtrsp++; + if (!rcu_torture_one_read_start(&rtorsup->rtorsu_rtors, + &rtorsup->rtorsu_trs, -1)) { + cur_ops->up_read(rawidx); + schedule_timeout_idle(HZ); + continue; + } + smp_store_release(&rtorsup->rtorsu_inuse, true); + t =3D torture_random(&rtorsup->rtorsu_trs) & 0xfffff; // One per millio= n. + if (t < 10 * 1000) + t =3D 200 * 1000 * 1000; + hrtimer_start(&rtorsup->rtorsu_hrt, t, + HRTIMER_MODE_REL | HRTIMER_MODE_SOFT); + } + torture_hrtimeout_ms(1, 1000, &rcu_torture_updown_rand); + stutter_wait("rcu_torture_updown"); + } while (!torture_must_stop()); + rcu_torture_updown_cleanup(); + torture_kthread_stopping("rcu_torture_updown"); + return 0; +} + /* * Randomly Toggle CPUs' callback-offload state. This uses hrtimers to * increase race probabilities and fuzzes the interval between toggling. @@ -2620,7 +2802,7 @@ rcu_torture_print_module_parms(struct rcu_torture_ops= *cur_ops, const char *tag) "reader_flavor=3D%x " "nocbs_nthreads=3D%d nocbs_toggle=3D%d " "test_nmis=3D%d " - "preempt_duration=3D%d preempt_interval=3D%d\n", + "preempt_duration=3D%d preempt_interval=3D%d n_up_down=3D%d\n", torture_type, tag, nrealreaders, nrealfakewriters, stat_interval, verbose, test_no_idle_hz, shuffle_interval, stutter, irqreader, fqs_duration, fqs_holdoff, fqs_stutter, @@ -2634,7 +2816,7 @@ rcu_torture_print_module_parms(struct rcu_torture_ops= *cur_ops, const char *tag) reader_flavor, nocbs_nthreads, nocbs_toggle, test_nmis, - preempt_duration, preempt_interval); + preempt_duration, preempt_interval, n_up_down); } =20 static int rcutorture_booster_cleanup(unsigned int cpu) @@ -3686,6 +3868,10 @@ rcu_torture_cleanup(void) nocb_tasks =3D NULL; } =20 + if (updown_task) { + torture_stop_kthread(rcu_torture_updown, updown_task); + updown_task =3D NULL; + } if (reader_tasks) { for (i =3D 0; i < nrealreaders; i++) torture_stop_kthread(rcu_torture_reader, @@ -4216,6 +4402,9 @@ rcu_torture_init(void) if (torture_init_error(firsterr)) goto unwind; } + firsterr =3D rcu_torture_updown_init(); + if (torture_init_error(firsterr)) + goto unwind; nrealnocbers =3D nocbs_nthreads; if (WARN_ON(nrealnocbers < 0)) nrealnocbers =3D 1; --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2073.outbound.protection.outlook.com [40.107.244.73]) (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 E5474218EB0; Fri, 18 Apr 2025 16:10:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992638; cv=fail; b=rWvOX5ENEG8q6ZjMPIpgMJEqaIpPeEk2ZJUlWTs+BD4vpofHYC2iuZIF+G0rjEA7wnZ4XU8wpSg6xwD1oibBcolO33CEHrXoU48VTp8wb+mDKPIps1uDTEDETeLIiNQ8xoihWDyXYf2aB7tqA/ncer1MouFR/YmLdqdykSotjxA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992638; c=relaxed/simple; bh=tNCx2mYnQMNmulcWceg8DXaH/UKDpZs2ig+s9KrZzbk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=knsdZaYXDP9h7AIJRim2P5TdS8sbmqki/7Jmulf086ExPVlIkxYDHRmsijLib9GuPb8TGV6efLuuxd2EEma9dhMGYkayPay5Zo5ese2+nAxZ84TO/aC1iY0Jtdvy1qtk0yKz4GcqY4b0Kd/p3qpSSrQAd62zhfal5yllSEvsXoI= 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=TmLr9q/u; arc=fail smtp.client-ip=40.107.244.73 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="TmLr9q/u" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SGR8cKwUXe6dLX3WVTIGIouSQ7RvXmuxey5i3YSos/hHKRFbVA3bDUYsr/ZTdlRufGNaOnnDnlvUkyePbXGXwwGovgKvARMkz+j7jLPTGZMlzCDmgQSimTmcB2BDGp5xBSUH70/Dr7Y7sZ0nqNYUqJX3xHYBu9ea2HmBFYtKvdPa8wa5CC6zw6EUIK9KpAG8BUmDtj20YSGDCI8vXjm1iX+3phi28un/cNGuPPA7ZCfyUcunGCnLw0SN7WVHadbigBBzAZJa3H2kc2/q4AVzpqIT/4YZkCO/AhifL+ip+R+hWX0+N2Fwf3zXdGHms2X+OHf3NUqban9XK4jli8z6kg== 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=jD4d50DTtGGewEZi87L8Ne+Ij5yp7H5IML+PzLsFSDs=; b=pVhTqyxZQPR4uK6CTsexKzEjzqBeTCLVFqbf4tm0GyaCkJyvYmaDp9+IVUHlEuO+7oUUKXV+WKVoTM2wXFqDViKYdmB5phxkvgURxW3JLwDDxbR9Vl2sWdFpqslVIFiLrJCavh4Lsug6yUWzWmQLAcq6i+Koz8mr6RJOsCo1rv/DTvDPvaYh/7M+ciIPprBFtpVom1CFqq3iRR/DN0ZAE0GCIFswjMTCO2SIBE5e+H48wxXOV4DyEW7kn1Nwzg4AvB+6vg95P33wee6baGxfvRBlIZfp6ww1KeL0zDF4XnMthjJdpvO0koEnBmKrBMXiv3g5zYH7i8JPrFwFd3YCmQ== 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=jD4d50DTtGGewEZi87L8Ne+Ij5yp7H5IML+PzLsFSDs=; b=TmLr9q/uwB+6OpjBdaai+SVAOIATeInigaSsFR15N2reGJvY3qeq+YHNGjUebG/clfMGh4NILWH0fgKzCGp4K4fcCya6FFt71V2Zf3XYFoKizjFXC9snFzWknJCV6zn1rsENDe0WVRXYyHAymhxdkyP+gOY6qfV3+9LEA33gwyjjwkLQl+sNNN08VgvQ0YXlmd+lWeTouYyYKZOH7tUwAo4tGc420Szt9lPK96og2ENiD+tj5NqUBzmz4fwn5FXXu+V/KErwmLuATjlrjNdw1KWvB6/noCA/WniHV1xBvu3NzkAHg6LDCcjrx2X1pvXy6dvIA2/X9cRRe4565bOQRg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CH2PR12MB9544.namprd12.prod.outlook.com (2603:10b6:610:280::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Fri, 18 Apr 2025 16:10:32 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:32 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 06/14] rcutorture: Pull rcu_torture_updown() loop body into new function Date: Fri, 18 Apr 2025 12:09:38 -0400 Message-ID: <20250418161005.2425391-7-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0070.namprd03.prod.outlook.com (2603:10b6:408:fc::15) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CH2PR12MB9544:EE_ X-MS-Office365-Filtering-Correlation-Id: 9dd5f8fa-fe67-4d78-e30e-08dd7e938b78 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5jdgRHBBxLNLJT5EIytBioFUyxAKzvqQty9abb/ql4VT5xNraCG3A1m1lZrs?= =?us-ascii?Q?T3EvIgfkQPzNjkyPO6AqsM6pt1GoH60Vr0Tlisr8Y7CIedU0ECfd98SX7tD7?= =?us-ascii?Q?SiFhDTeNCX8uOcEY2u5f13bvzQ3rj2n34yOI79tpYAE3G1XHlHQsXsGtb7PJ?= =?us-ascii?Q?bvCEXSFaLDecRlyTXeEW2swnkedXugXiMotAidq5XE2qZr+cRh5TjtNzYpMt?= =?us-ascii?Q?xAdZBGcEcOXpuAZFCOIsMtybPajTneHGC2L1vTcY0P/wFZGzDQteNn8JllJ1?= =?us-ascii?Q?nJ1eUj+TxAcplvcmYwl8y2BvTpX2aSYpl/KJ5g5IkWda27hxH/QuqIeiPZft?= =?us-ascii?Q?NjLv6int91M9BrjgGjhsuWJ4Yp8Hoe134tuFvxMl/Gcebj7A30ohF7P/vWm6?= =?us-ascii?Q?sUcWj8+ahD64wgF6MId7wBcU8zHL3IqNHoXsAfoiF8G4/Q222ag+mqbF/19s?= =?us-ascii?Q?w9MD3Tn0fhneCKMNUOvcP0I87vccPXF0/XPmDgygdmBMVFCALo8XGybcfLKi?= =?us-ascii?Q?UXhDmUh13regA9hJgK/fyl+mUcqlskeUt58cekpdacDHOi5ClHifFLsADz0M?= =?us-ascii?Q?LpQbjkPbZs7/XPQsJaIV+yBA6ACVg2gOApw8QqyI8jgo7BMMxMrnXW10dOqK?= =?us-ascii?Q?c9sZLTTa3x3FyQ0t4KQl/e7jUy4Epmv9I8TLiHWPTOKtT8CKUGJ05ohjML2K?= =?us-ascii?Q?WKfhP3Xo2JRbrlCao0mpvVGqD0ujnwDztIJh3pUAWpVNWQxgc9W63uXTOY0D?= =?us-ascii?Q?kcE8FvAqAMBDFXFtGtX2YfSOpWaYXqUCn/kOLB7kD73ta5zJ8MdC97q703l4?= =?us-ascii?Q?FqZ50UqFgY8VhVAOVnP+meG/ZyPT1hjun988RzLsC3j3ZzZvJvEIZE0+cqys?= =?us-ascii?Q?sF+kQXL+YdcX1RshTxvADa7RS4V8IvJ80bBGa609yr23AOwO2ffOKWSrpBW6?= =?us-ascii?Q?+MggXOd1LA6rndL2CleAXAs5IquC4KBo37/Hy8919IuMuBKaVkXpSFzjFPGW?= =?us-ascii?Q?b+zB0KWqC74DCbqsK1kz/5xDTnhzb8ZYmrSWqFEv3wa6eaX4v5UL74N0Fq7R?= =?us-ascii?Q?ZYWU37uBjVeA9C2CeKFS0bv6tQ7Q4UeoWHJOSl/jQk5V9S0IiE8psnSsLFt/?= =?us-ascii?Q?UQh9xZlGzNXh0HlfM8a8G1yBlaOkN/CfHOQ1c7hlgiLmElsWzsHYLu7IOxNS?= =?us-ascii?Q?RMgAemoL8WSYBLGr9E0hBCjyrpJFHZpYna3BrmwaH58jekm8IHav1ODlxMwh?= =?us-ascii?Q?fLoZog62c+7Y8Hv/6Sf9OWE++vryCqqLeZBkSXyahwFPZZNqZXQldczRnRDj?= =?us-ascii?Q?C80NBtPmyLqXm+w/p21nIrEczkivoN+Z3ntyXjYOToXBks+h3Yt4VAJHLaHw?= =?us-ascii?Q?FZ48pIAgcy9kLuTKm+85Ekx5N6Mh4FRwJS8PZfHBnOjA+1xoFqmFz5vtj6ov?= =?us-ascii?Q?dexX3rpzOG/lZq9Ip3ucu0+cwxKthbLOIVftNLOhZIfOb2W6cS/WDA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?y32mJ0uzV5Pq6ONNkCHzgSVYM+t34iACLKMIfvU1jgh25+seuBEJ0lrp3Hl5?= =?us-ascii?Q?zpGYQqffchJdgZLMUaJbU493JJc9qc9JFCkmwesjwIWoDPOTuy+YPVe5wGab?= =?us-ascii?Q?4X7Pn5jNlDk82mBtneRz1EFidfzTZubL7mjewoNQmtRi5Pjphgss7hLiaTfb?= =?us-ascii?Q?GiCLnCPLczdW70mta/IeOJdKsVWeY7C2CY6ZQMCxjD8gS7OYvjhx0UGZrKL8?= =?us-ascii?Q?IQZrWxAEuLQ6UrhOP4uZVzS/UHRfxf5MG0cmwo0mqDZgi9tVqweVD2h+RF6+?= =?us-ascii?Q?T14sNsU9iyVqljQAqfPDeq166Of7dox12oXSl37m6U50H9RzmLdOULhPbrVi?= =?us-ascii?Q?QEhqRxVNEKhj3M9keqto8zKlh2zpWKegjOwJl4l5Xxe/jYeJQcKMwWGT1RuY?= =?us-ascii?Q?Xml08DyyB4x11w5cqHE8SIDBqIqXT7tT9bo5LW1GxU3VkFr4T0fzwdwp43C5?= =?us-ascii?Q?fr4FIaJXLz8P6f6imlzaijUUW42Ce21MG7P4Q25g/E//dEPLrhfwtVmZXP/y?= =?us-ascii?Q?tU3wXaPWgoVoMgP7eSIfrOt92vYGIcs9wjFU1/kQHnZTJEexlnsWP2Sw5XZy?= =?us-ascii?Q?5/FvzzBoOZ4xqKnAFxK3v8KF4X6ibAR6vFZaSvL/kndlGQMGdMiVaqaH3Oi3?= =?us-ascii?Q?sARHKdRyEK70DywycGYpzh+kFBiOEyHHg8Kka4LQ9/IRg3yGrmOmQiUr0peX?= =?us-ascii?Q?EXW3+xh3gHPzlN4KHWDe0tuJ8X9Fdu2sLaFllb2CIIkEMF04Jy3DZYD/y2Mn?= =?us-ascii?Q?ZYw2CNoaQLSw2t6kJWhVZsK9Whef1BaGcwsnSTjibAuzjArVBfAiyM6YjXfg?= =?us-ascii?Q?UoOFE57+SUCTPiQa1DpQ+OUv3EwmXNqichZWVtsYVKSB+T8AWLKbJVGpY6/m?= =?us-ascii?Q?26MS2z1+eoK4HEATjKh5d8otAnDa9BU5cW6cAgMOrZORD+hkZSQAA+zvVe3v?= =?us-ascii?Q?i1hsHHUVwaFfIIMh+j0Rw6QSUDHUxLyuz/XDNOpG6AklWLkoXd/khUwnLgHh?= =?us-ascii?Q?eug/w7L4TXMwnwUk/yT+6zhXUH9yu8FMZqXBrwJeHIx8bNI8MyBwIJAVzx7H?= =?us-ascii?Q?LCMewXwdgF2eIcqFw/RU37d6Ar336C+muOpWmZyDn2df+7Cd83LfyhE2jNha?= =?us-ascii?Q?UJu1rb+mO8518fmjr0XItiHCuHxGl1sAHvSwke4jGvbYUYk9fNa+2qubheyq?= =?us-ascii?Q?4zQ7Hvx5hbiHvOU0SWIStlynSZit80dhrqNH4odqCdN7SYlyc8wPcvpMvz0Q?= =?us-ascii?Q?Tj6V8OBaEjnu1MbilFAn4HO1EzB96XhiT8tdeFZhkLVh/i0jT3IJ/3XIWA3C?= =?us-ascii?Q?eghVS5VSqZU5zGS1JbvOYoo6xnMEGIB8oz6nlkcnu1GW26tjZmBVevytt79a?= =?us-ascii?Q?N+9qf3XfpfJcIWhvIIiVIatPpp5KLyMFUmDUqIoAAebyJwniKkHVb1VhbOdr?= =?us-ascii?Q?DAENPttP4AP2PDnnftGnJ8dWR/V0oxHLyKqOleNsUfsJtDFdeU9vgpAf91tN?= =?us-ascii?Q?D8bkZ9l3wMuVD0bd3Xh5uECRWBvr/0+jejiNy5TPH26uC1LnMaoVAAa+JHoE?= =?us-ascii?Q?Z1N4XHFF4HYbZV0PsIg7jhJBZRsykEVpq60Jc/AR?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9dd5f8fa-fe67-4d78-e30e-08dd7e938b78 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:32.3229 (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: EPN+cnTNs4/iFVOvZINqROX61kZi0+hbFwE31k9DbRfvhvlK2XY2d+E3tW9iC1sfOaDlGR4YaSvNipt1P8W62Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9544 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" This is strictly a code-movement commit, pulling that part of the rcu_torture_updown() function's loop body that processes one rcu_torture_one_read_state_updown structure into a new rcu_torture_updown_one() function. The checks for the end of the torture test and the current structure being in use remain in the rcu_torture_updown() function. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 44 ++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index be671e09c1ce..daa55ff05570 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2504,6 +2504,29 @@ static void rcu_torture_updown_cleanup(void) updownreaders =3D NULL; } =20 +// Do one reader for rcu_torture_updown(). +static void rcu_torture_updown_one(struct rcu_torture_one_read_state_updow= n *rtorsup) +{ + int idx; + int rawidx; + ktime_t t; + + init_rcu_torture_one_read_state(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_= trs); + rawidx =3D cur_ops->down_read(); + idx =3D (rawidx << RCUTORTURE_RDR_SHIFT_1) & RCUTORTURE_RDR_MASK_1; + rtorsup->rtorsu_rtors.readstate =3D idx | RCUTORTURE_RDR_UPDOWN; + rtorsup->rtorsu_rtors.rtrsp++; + if (!rcu_torture_one_read_start(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_= trs, -1)) { + schedule_timeout_idle(HZ); + return; + } + smp_store_release(&rtorsup->rtorsu_inuse, true); + t =3D torture_random(&rtorsup->rtorsu_trs) & 0xfffff; // One per million. + if (t < 10 * 1000) + t =3D 200 * 1000 * 1000; + hrtimer_start(&rtorsup->rtorsu_hrt, t, HRTIMER_MODE_REL | HRTIMER_MODE_SO= FT); +} + /* * RCU torture up/down reader kthread, starting RCU readers in kthread * context and ending them in hrtimer handlers. Otherwise similar to @@ -2512,10 +2535,7 @@ static void rcu_torture_updown_cleanup(void) static int rcu_torture_updown(void *arg) { - int idx; - int rawidx; struct rcu_torture_one_read_state_updown *rtorsup; - ktime_t t; =20 VERBOSE_TOROUT_STRING("rcu_torture_updown task started"); do { @@ -2524,23 +2544,7 @@ rcu_torture_updown(void *arg) break; if (smp_load_acquire(&rtorsup->rtorsu_inuse)) continue; - init_rcu_torture_one_read_state(&rtorsup->rtorsu_rtors, - &rtorsup->rtorsu_trs); - rawidx =3D cur_ops->down_read(); - idx =3D (rawidx << RCUTORTURE_RDR_SHIFT_1) & RCUTORTURE_RDR_MASK_1; - rtorsup->rtorsu_rtors.readstate =3D idx | RCUTORTURE_RDR_UPDOWN; - rtorsup->rtorsu_rtors.rtrsp++; - if (!rcu_torture_one_read_start(&rtorsup->rtorsu_rtors, - &rtorsup->rtorsu_trs, -1)) { - schedule_timeout_idle(HZ); - continue; - } - smp_store_release(&rtorsup->rtorsu_inuse, true); - t =3D torture_random(&rtorsup->rtorsu_trs) & 0xfffff; // One per millio= n. - if (t < 10 * 1000) - t =3D 200 * 1000 * 1000; - hrtimer_start(&rtorsup->rtorsu_hrt, t, - HRTIMER_MODE_REL | HRTIMER_MODE_SOFT); + rcu_torture_updown_one(rtorsup); } torture_hrtimeout_ms(1, 1000, &rcu_torture_updown_rand); stutter_wait("rcu_torture_updown"); --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 47854225405; Fri, 18 Apr 2025 16:11:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992674; cv=fail; b=gq8WYS2ZbMU1p1RubKgpsUaFHNR29F3AO5XiuKEzBY5lcKPGWOLHxdBAlDuvEdOHcmTdwLwtKx4I/QWPkYSA908hTTpHybG78jowolhH6Zc0oZltcPTj9NG82Zthr92y3YcKy/YonEJyWyKIFzpV550RlKvVgJ8m/AK8T+GT0qI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992674; c=relaxed/simple; bh=d71YRLve32MsFx+UTDRArVLNdPD2yvUsrctWzW3piqA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lmw3ZsvVjbj+/aFCs+3yw8AYZpQSQP7jBgAbXpAhwktzDPANCnDahg51PdW4wiJO0iEYbDQcoSBN7ArZcIrrBA5TveMEbU46kVtWa50c4WHnuvYQ5qbeY3524fBfbLlJHFFY9blu2L7J/820Bf3V1NJ7mG3pUfke2GhaeLYADVk= 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=RhiC5n99; arc=fail smtp.client-ip=40.107.94.79 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="RhiC5n99" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DbaVFKN1Tfpvj0ZP3hPxrEIQRqFhaCDdSqPkK4l1xd0zukb/CBNxODDxzS+zVS8beLfxt0jLnvYYWAcA7ChR0xKTQJErpJN0j011yZTLQQuiIQSy31ogs2evYMxVrWHfe13Lo8NdfqvoakwJkb6M6q1FBGztt8vca2ATZz80nnEUi/kDyj307oIqcypdMNmCoSs2EeKfobAy2+vd+60IXOhiQrM3o86b5rXdVJqQfC5ukY1hVjs3EzNm4zEW7UoxqRdYFX7tcZGLDuThf1jSX5kyf2xvOw9m1sjEdexzOJrJrCyk/iUWwAmOvXsViD301NCnG+oPqKAdwAuCjv7Xlw== 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=1v754Ow3u5cYq0mL3m2Vg3oeSxRac/bUHEjIQn9ht7A=; b=jrpYXUatG0uDjKeZbzJoVkhGPwOPnu/PmMp9MXUVDduVEgO3evEPRyYR1wpZl/LKseDSrJ7nvie3hJAw2mV4j4kkNtcdcBwUTIZaUipUCFR6Lsgg07zg44OC1tdVAODYa4RP+tr3N/ZEB2lmT0NOgWN0Sq2UYEw39roPWuf/JY1hZs2nLPxNe05TsRAFvlgBAAOXZCK/tiq4Zdc0208E0c1mAKU8cLhQLPNk+sl19YKw3Tl2IQVkg+amxitX1SlSwqfFHs+tNEbW5Q+xKtFLpgjWDhq7PWong6Qq5wH/Z40A375et0P4sC9cIA7yutnWf3qdb5LgBoT2m14DX1Gd4w== 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=1v754Ow3u5cYq0mL3m2Vg3oeSxRac/bUHEjIQn9ht7A=; b=RhiC5n99cf4VevlrV2vK2J2cy7XibYIb0wR8VlN78ixqZtEt0S8ObkmQNWnCPeUG+JT20cqG9325kzv3X6LokvlXLiQvgnXb90y2hA7R/G+ZLzljv1zpP5174HopCxiEg+ypn9oBuA/lJYqLEtxmme/bvX5HFQo6+p8msWEM3QxtFZOKWnUqvj+ki7LBQU7pAXgGFzIPfSzaVvCWHe9XJJlB0GFBZkily8hlHq14JryAr2fzwYf4DqRni/LQKeha+8jRmgsHZgxy376TYJ6b0boqnqOcKJaoVVGtyloD3OTMyo2VBKulz5lnM3jozzBvTGBwljkuM8ZoC8H6q5ITQg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:11:04 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:11:04 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 06/12] rcutorture: Pull rcu_torture_updown() loop body into new function Date: Fri, 18 Apr 2025 12:09:52 -0400 Message-ID: <20250418161005.2425391-21-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN8PR15CA0064.namprd15.prod.outlook.com (2603:10b6:408:80::41) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 98d901b6-c9e1-4e21-c1ed-08dd7e939ee7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?PmcMXqsN730xkzlr61mUqZzzz0uVIY3ad3rl8jxUKsfwCVYg2BWfPbWJ2jh5?= =?us-ascii?Q?3uONNt97ghir4ymDFQYt/8xNe+dUyyZ1DqkmKKGcHfCnkiapkdu94/fRVWFT?= =?us-ascii?Q?2cawv7EbS5cbRaOKDiIejnzY3pkZgZaKCOi/C3cLhMHmUz0hw2cmxgjkmTda?= =?us-ascii?Q?bO0vQQTR3iznW1Bgrh30v0pe+8AhL61fxN32vZbAI2mtGO6g2g/Gkqdpb5UO?= =?us-ascii?Q?br/ViCSNa5IoUUXJUx0+4UVEo8ENqh21p6EmU0sXiJI9qt/rs8TCCoTcVl7/?= =?us-ascii?Q?0DByOE07T6dWWrGNpzGvKXw5QKQzyR3rwzIsoZU2KDpkjINcOB52VhmlKPvT?= =?us-ascii?Q?dm1pRHrPlEXyKK3+NTtP2aOVQjv8OpV/P7XLnZJtAT2likolTLdTMibAl1HZ?= =?us-ascii?Q?pNxJUbUSfoCMG05uWn+TlhoebXbPAMwwIfKrtHA2wcko6WgfNPIwl7VT8h5o?= =?us-ascii?Q?sJ0en67oFGEtZ+5dnTZe9TNAIcnvH2l8j5vSZskIjRPkRW0JgQL/vgl1+E4w?= =?us-ascii?Q?zFecAx29ETRqJFadVPQNc48Iho2s8wjh3q8CTEkzH8rSBIUiqNoJ2v6bXUfZ?= =?us-ascii?Q?ADQmSGGyUr/SEB+LyPocqqVC1HRkFXxxkA48DgqPXYwdqaivU7WsCht/SLt/?= =?us-ascii?Q?U57bexEP/dQV02TLiyW8eCU8rbt16tC2JgdR31zJNtt8HRRPe/AJ2rYU5F8C?= =?us-ascii?Q?esjcFlxZRU72K2LjELZgvbCsGviwB7/tnjjpqV5OUj7LErC1muCgU5524joC?= =?us-ascii?Q?FD2Tq9cQ+498f2FEnoCIAyCFnXV5R1ywaAef84lkISlkGiPbWkKmZTs+UaaZ?= =?us-ascii?Q?I+JN56JGJrQxia857yhQ8DSnateq/5WOxQVPLODAV5TIKnUSQ9WR4GDxTwtY?= =?us-ascii?Q?O3LRQa8CPJK1+ab9QYvH0sjrjEORJSFcLL0LZKWeO+tyOwIqJIoTT2Uq+EPF?= =?us-ascii?Q?L+FMM+T0Cz5wKRoTUSfw799SvLAGlw+6cGiWBEdv5SzUajIuYXh5ptv4EN8f?= =?us-ascii?Q?Asyvu0FmpBXg1LpjG8ZX72QXCaPZ5SAZTmIK799GkjV8ZTjEGLyk5WVMFmJC?= =?us-ascii?Q?mYUVcbzRgPQ4OnBAbmfihsEvrfULAWetTHKRMwltIZIPXmQAwoiqDemF3jHD?= =?us-ascii?Q?yqeRUlKyqGTCshlJQRJF9gbzpw1WmhOp/07CeYmNbWyF800hzTElC0a4tzee?= =?us-ascii?Q?6gPuYErVgb+aq0vGk/GpvvW4/X3IEHX4rZXapJP/lE/ZhNbtRAopR+dB0SMw?= =?us-ascii?Q?W5GZPM37YfCXcasq6gShJmOFw8XdpSCl10r3MlpOjZAsRbODHyJDECqlEdJB?= =?us-ascii?Q?8EB44HBiZxgWfIdVw6q61aJvAtGVujl/wBfXo5z5S2wUfD0b0j0qD+q28UZ/?= =?us-ascii?Q?4gGvoQyNGHcZLMwCpuSn3h2zKSjZJlJPcnK+7wHSyVQszWuUQE4o/IkS3adD?= =?us-ascii?Q?X5gAT6r4tPtkmUDm/eJmEDHF4oqNnGwoScuIR4Xv7pSlKq2IXLBeSg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NLCwESrOHfOtZpJQWHz3joVWmAjOIy4t7m2PVpc3wkLzjIpiZ/RVubMhc+hv?= =?us-ascii?Q?L9GyL0IecL4kSwbl0AS9vCxSe5/89OpFPBsJL+99XXQf6VqLvCJ0Zn3JYAYP?= =?us-ascii?Q?/pAyK4o4/VhKVW4yAPQKXlmSURUK7K+GuUuGT/4isCdlydj54eu2hHeuzB7T?= =?us-ascii?Q?JEhVdhjObpSVxmAFZt5A0/U325rvJ/+Ba+vTXq61snSvS4++vtrwn+BYVv1o?= =?us-ascii?Q?xpdvmX/mv+bKpz/DeBMlZee05SRvudTjw9PSbHgZLNzi4IQiXcc1KOc9xuzP?= =?us-ascii?Q?+Vj4U4y+cKxyDfkibfzlofikZ2K9eNDSP4qS6yOATL8a13S0bWuzOYkEPwBA?= =?us-ascii?Q?3GmmRM7b4KU/Bsdn9Yql/cGef5KT63e7Pfz298COU0rg/nAxJaWSvPhf2Mh8?= =?us-ascii?Q?nmlI+m0OP5zkADBhw4anCsFPh7ge6SZzV8qlKTT6enSUQoNNMgDd7HRiwr0Z?= =?us-ascii?Q?iJLxPBVZ0aIikKgvBAMfdyplRK1+HBYWRNDxpjdZ4LnRSuzGCQesSw7SjLQ0?= =?us-ascii?Q?QyW2kKiXkp6mBbIOntPEIKNvktc4xG1Ul3z+YPzEoARSI5iSZwwMvhotiEWV?= =?us-ascii?Q?qH+qXJPOSXa6B8p2/y4PcYPC7DToTFUwDvRypST+wMazbrfnI8cJS2F7Hnmj?= =?us-ascii?Q?XA4Th2aSbV/eLDTuBN6w81tBxR1XmgQhM2FLzCpAHIV5XYolkKcKrcf55arV?= =?us-ascii?Q?ob1J9II0czDeKaTAvnMxf1NmmgvD8ZolWqk+4KfdY8R5wxNB7jqfDRdLGTL4?= =?us-ascii?Q?1q6RBxcpOcfirJ+2o9HeiWdc+ykSUGlENoBruPn3gu7BFrJXpP0cxkSrP/mD?= =?us-ascii?Q?8KjfCP3ZtEz//RtnSSbUMlUpA+OUiV3xDK60JgFaRC68GrorNJaqucBbygW4?= =?us-ascii?Q?QMW4QwSxq6giWG2iBrZuArXFmMy8hQzyjshcSJIowC8knHVvlKnFg7m+RDwb?= =?us-ascii?Q?c0CEkAzMmrMcdKY0m5/bf8++P1bqk74PQkCkAqRndgE25tUBzmpYD83tvaIV?= =?us-ascii?Q?ps9hXlzIHGyDAtq4IYzv3EQY6iPTXw76tTJGr6XosBFZCvhzMIxcj4IP2dOK?= =?us-ascii?Q?dQQXN5rkGkaeXOwqWFcQAer2u0dzYRQEyuUSLmOPo2ISjzl6DnBkPVjEIXQo?= =?us-ascii?Q?GQJy3+WJ3DuwsQXstw7+zTJZwNcYw6hhsWmKSWQspsVALl/pe9kD5XdID+wR?= =?us-ascii?Q?AkvXQiQ7+DS3zJQRth8oqS0moKn3uX/R3bjlTxCVpOIRJ7Ah0vMge2EMTXSQ?= =?us-ascii?Q?O+fW0YuRJh4tpiU+LG5Ib6/l4k0bW5UHYue6VHcuLLdso4ZTQ3zkyRsBlmFp?= =?us-ascii?Q?4ynZS29wzq/T4Q9ae3S9tTSZomj74MoJFuDIvgY6qVPK4hksCIyN8okUOTek?= =?us-ascii?Q?DmIo5Lna1T0h2ObLC2PpzrCkFiUnkNJxhmKQpwlNTtt+ylLszI/hya1jPbM9?= =?us-ascii?Q?4VhAubjLhkjeD1uOTyZc4FSF6Cc6TBvIOCnSGtvbkKmJS/hzy1e/3vAc9XF3?= =?us-ascii?Q?DJ+g3AxNb7EWkLFGwqOVMo1sxRqp4BpVKNAXoLh+ndtDIfEguX/ztVKfYEJx?= =?us-ascii?Q?8KlGoM4EqIjK4oqz+lWk8mEz3j/uH2rNWwp+3+Zw?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98d901b6-c9e1-4e21-c1ed-08dd7e939ee7 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:11:04.8940 (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: LoPp7y5/gQmP4K8a9VDfNS6hCoA5fg9z7PffQ6J/O8SZXOOT8MFnGpunahCuz3d8FFYTL3xUhyBic/FV/JhI/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" This is strictly a code-movement commit, pulling that part of the rcu_torture_updown() function's loop body that processes one rcu_torture_one_read_state_updown structure into a new rcu_torture_updown_one() function. The checks for the end of the torture test and the current structure being in use remain in the rcu_torture_updown() function. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 46 ++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index e7f0521c56d0..7eccc74e60a7 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2505,6 +2505,30 @@ static void rcu_torture_updown_cleanup(void) updownreaders =3D NULL; } =20 +// Do one reader for rcu_torture_updown(). +static void rcu_torture_updown_one(struct rcu_torture_one_read_state_updow= n *rtorsup) +{ + int idx; + int rawidx; + ktime_t t; + + init_rcu_torture_one_read_state(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_= trs); + rawidx =3D cur_ops->down_read(); + idx =3D (rawidx << RCUTORTURE_RDR_SHIFT_1) & RCUTORTURE_RDR_MASK_1; + rtorsup->rtorsu_rtors.readstate =3D idx | RCUTORTURE_RDR_UPDOWN; + rtorsup->rtorsu_rtors.rtrsp++; + if (!rcu_torture_one_read_start(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_= trs, -1)) { + cur_ops->up_read(rawidx); + schedule_timeout_idle(HZ); + return; + } + smp_store_release(&rtorsup->rtorsu_inuse, true); + t =3D torture_random(&rtorsup->rtorsu_trs) & 0xfffff; // One per million. + if (t < 10 * 1000) + t =3D 200 * 1000 * 1000; + hrtimer_start(&rtorsup->rtorsu_hrt, t, HRTIMER_MODE_REL | HRTIMER_MODE_SO= FT); +} + /* * RCU torture up/down reader kthread, starting RCU readers in kthread * context and ending them in hrtimer handlers. Otherwise similar to @@ -2513,10 +2537,7 @@ static void rcu_torture_updown_cleanup(void) static int rcu_torture_updown(void *arg) { - int idx; - int rawidx; struct rcu_torture_one_read_state_updown *rtorsup; - ktime_t t; =20 VERBOSE_TOROUT_STRING("rcu_torture_updown task started"); do { @@ -2525,24 +2546,7 @@ rcu_torture_updown(void *arg) break; if (smp_load_acquire(&rtorsup->rtorsu_inuse)) continue; - init_rcu_torture_one_read_state(&rtorsup->rtorsu_rtors, - &rtorsup->rtorsu_trs); - rawidx =3D cur_ops->down_read(); - idx =3D (rawidx << RCUTORTURE_RDR_SHIFT_1) & RCUTORTURE_RDR_MASK_1; - rtorsup->rtorsu_rtors.readstate =3D idx | RCUTORTURE_RDR_UPDOWN; - rtorsup->rtorsu_rtors.rtrsp++; - if (!rcu_torture_one_read_start(&rtorsup->rtorsu_rtors, - &rtorsup->rtorsu_trs, -1)) { - cur_ops->up_read(rawidx); - schedule_timeout_idle(HZ); - continue; - } - smp_store_release(&rtorsup->rtorsu_inuse, true); - t =3D torture_random(&rtorsup->rtorsu_trs) & 0xfffff; // One per millio= n. - if (t < 10 * 1000) - t =3D 200 * 1000 * 1000; - hrtimer_start(&rtorsup->rtorsu_hrt, t, - HRTIMER_MODE_REL | HRTIMER_MODE_SOFT); + rcu_torture_updown_one(rtorsup); } torture_hrtimeout_ms(1, 1000, &rcu_torture_updown_rand); stutter_wait("rcu_torture_updown"); --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 2FCDD225415; Fri, 18 Apr 2025 16:11:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992675; cv=fail; b=JJRbowDUgT999BP35QZJaUyCEer1DtHCcHFYtI842MEaEZAtvU/tSezdD/r63S1tRHWJoIWWVWHaS20ev8wxuovr1cYHwMQSevTcwRGOkmbhWpFOBGNsu8MIpHeOIBK2zgIT1tBpIsLw7hSgnDpOjaLPqUXPCI+ZOSRCWpB1OWc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992675; c=relaxed/simple; bh=IN1ZQG4QVBu4mmS9yqPZCfUFrZf8GOg7XYHSG+b883k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WszLs4XKYAd55fFnFOmibDmcGshVGqbkf6EYIo+K0B03XRQ2M8GKPQVRNifU+ZXdNe6X7NrCjOp9Pt4QyFp+b8jePmhPpChR0q68lgW2NF8MHtj8pPR7PDPXTvxd2u3lSNLLEsY3zn49F39O/J8rFRLCCjbaHQSC/jyBR+tUPvA= 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=uQUeJ6pA; arc=fail smtp.client-ip=40.107.94.79 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="uQUeJ6pA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y/BtHOxA+VQrr3IoCJjD+fBq5uwJfZ8PHGInc1xc2nAskk8l/u3CdRTZenCRAZUhHHu/Eh0SS35pc1gQK59lnyc8Sut7RIHtvQw+7x//0KQ5HOmV9Ybz6xz9YsEOpbHiHJFvQ+Nme3wY62TvzIZTqJT8IofXe8PSNF3ZejjQuEkBrSyEy7cnVDblanq+LYx4FjHiBvmnMvzuVOVUDKK8UVgfGcJyQeErTFsJCmelIj5cMGsL34YZv8qFKY6KKVzseANYaurG09cb2FUOSSTwjYjzwBcwGZn1Hnw6N4bg25hhKRRd9HBg9m38QMWIlYrfgS76s70OF80Cn2Ll6zigZg== 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=XTNQg5JsGys++ns2mGdmrcyIsr3Ti0kFeYpbkqUk4QY=; b=lQ9eNubOBgM/BEUoT7w5OpZTEWSMpUriN949NkAf7dPMh8f9IMdsgLV0lYSPLEXj8MqfzS2oaQeuWVvTnRGmPptvOy4WU5jto0+QUI9VAjqFiQEDVcayUqxVKpn9QeZQR7sF4sq4oYQEXWfSbBZozyBe0AUISiC+uius+WWvnHoak1E3MmOH117Xo8R+XarXdxqtNhgU7htUoJq8460c+CbIwPyLEEZuy/rKQkGJruJGVQmOAC416JtlMhWEV1ir/hTvYDclOijFZFMQd2Ts0k1FLE0p9DOIyAv5ka54qgt0Ry303PqHoU/JDvz5gqbYEWI2ryMoGfMhHSXSk+3Rfw== 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=XTNQg5JsGys++ns2mGdmrcyIsr3Ti0kFeYpbkqUk4QY=; b=uQUeJ6pAxqapLBsinrFG3ioBZVI91Hsh5FZhovxI0JciaA9lumA3ifMZDNV9fldSLbrMs6dUk9wbw0UWg5bAF/VtycQOt6KwXhqPR91lj4Ti5Y6ZUx3FV2MnPcSEEBuoIeF16fEGntB7k4Qz9AabMgcGwmnw6QyR8tBxUhQbWv7+/UQLQWNrJ8BZzneKdXtvG0Yc9jxXtg6niX8K3mJMIQhskGl92npb5LAgqcyy40t1eN6K5ZXu/3IsSZAGaTVQ5/UBxflCglOkfZ2fa4XjgsDNYj/EKsuzI/+lWHtYuhJGwvHzAuG27H/MBZvutktGybunrcT4dFw9ZPycjVRj+g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:11:07 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:11:07 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 07/12] rcutorture: Comment invocations of tick_dep_set_task() Date: Fri, 18 Apr 2025 12:09:53 -0400 Message-ID: <20250418161005.2425391-22-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAPR03CA0094.namprd03.prod.outlook.com (2603:10b6:208:32a::9) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 144a4281-1653-498c-ae7a-08dd7e93a025 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yISaxc/E4rIeBKK9M4r+beopNzDQ96sppt9ZhkvXueoTLwRUyQF+vsdlK0v0?= =?us-ascii?Q?wN3Rt3n2u0btx+KVqifWOK3EJVO0BYg1WhgFHEhD40MRwKNc6yXNkmWFl3Ik?= =?us-ascii?Q?gtu7H9ExI45yHOm6/X1YR5DkmUKYVqtDg43PuDadFXf4/BSh20+Fv/gcaXeF?= =?us-ascii?Q?CIGuWIu65H3HyMF2DOHx3ml8akY83MoiT4v16Zv4A0yydIS8dD+3rv+ZRBPo?= =?us-ascii?Q?pEWNswHZgkg757oafvGrUHJlOQpaKBptKbEyJFO6JeXmJAOaFZTpdU4gmtBc?= =?us-ascii?Q?/8m4cTJKXMGu8uSx7I+wPSuqJj1OLlnnWCNcPYvUOdm534Jd78KRie3pork6?= =?us-ascii?Q?cIZr4uYa+wcjc4NG2Ir6OIIUXSQlzdxW3VuqIqZrb0o/7T9j47B+ahzlJWGx?= =?us-ascii?Q?lazNQ7RtqoSpRVM3T8s6CAUWm2YR2RcZlG0Y7cbs8Xji+qzsP2e2gjvLcb00?= =?us-ascii?Q?3HoPploEJOuZozsZllrVgmF6JJ80WEDX2U9tMcWHC4t44rtkD6wVR06zxpBQ?= =?us-ascii?Q?F7jMIK4iH56184lRbZrxzmBsKS4isuiXy+LRGoDzbzZzzi1TIot5wmbVVoiC?= =?us-ascii?Q?Y/L28yAVurn3krK/aOsDX5IOGpl8jmCvCvIfyTPtFTUgUt2fKEt6/IFMXg0U?= =?us-ascii?Q?rYFtyNV9F2kjTVN2R10UTqsCfoPWUlY601BQ3EstJx+3WizqOmNprlKnLg0S?= =?us-ascii?Q?3g4YkfwP/C9WlNmIKuGuJuxDIlCo4PEcW0A5baAHePnvwONXt/Gh7gdyEhKa?= =?us-ascii?Q?zsUJtVvxq1sAhqQqtxWKFxCYeMinlhnknMbN3KjP9Xyl6yLR5+vDtEeCyXpA?= =?us-ascii?Q?6ZSbsv6L1pSPgDaYOZV0Esb9XCO8GDA2j+5qX7Sy9zWtzpcHMdEAhQfAU4vN?= =?us-ascii?Q?xFvrcrWqSkX8npdLqF4MpBszM37r2INCPPYeweQYvbm/XPRIBSc9OD9b0kxa?= =?us-ascii?Q?j6EjOrppDGGalRM457ydjXNNHsCNiWkUe/MuBSojvOFZ+SyLG8eK8atXQZx6?= =?us-ascii?Q?m/0Jc41dhEOXr5vvYGzixipHCCPOlgTotxyyh4WAIsX78Wc+NELvZRYtbMtM?= =?us-ascii?Q?wIndpZKjBa9xq6/KoXmOk8sWOnpp4Gf7lwLf7dQYrfZmeQZOphdpzAZnkOk2?= =?us-ascii?Q?M16EVzHbR64OrXsO2+KP+LkOJQfGkTOEsFBa28Lj/RjwgmKmdcm25o9oRbTs?= =?us-ascii?Q?v7xxLusZPXUArZT+8bqftFu33CK2NA9OgvY0yDj/STnqtEsVfp64EkzCF8QD?= =?us-ascii?Q?AEBGGE1h/MaZDCIw63FOYfIiPTrqQyiS/oeIApE9WILyB5i/tlNc6RjkZuJu?= =?us-ascii?Q?flOxCMM8KvMD5vjjxDY38mqSb9SbLFYksEy6Z19YA+cxS6bgH1UBPxqW2TnO?= =?us-ascii?Q?48Ja8xXDQMFA8uWdlXzmyjgaUtkJV+0T2b9beFW9lrn+57vf4s6JlC9Rm0AS?= =?us-ascii?Q?E3hbPY9185aV6vYuRgA77y+U6GFFNECwOa0Ec9XgRUTNtFrbrL7OxQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+sq8mHDAD0GnY0mpGLjD9IWZiGb2kuwxrJQogjvN1RNhswtU4WlbTESf616c?= =?us-ascii?Q?JEw+IakUEoGYEaQTYlUQBqCyVkUKnXqAvIzjUxR/USaRfqLrR8YieuZlFzbA?= =?us-ascii?Q?eWdqkLhj2cPHsL7BjgGw8GFrU17iRqdTMKyqXbY/2xTj/r7opR+7JaKxsJss?= =?us-ascii?Q?SIwAyGC++mvnBjXgvFT/DqsqGnibP8ucmMC+brO+4lXORUUHrKaPv3S4Sx+f?= =?us-ascii?Q?xY3Z47/KFfsKdc9n+BuDo3Iy8PiOVJQjWmd+JvyaUJ/cd0Ozr56u8TQPaLfL?= =?us-ascii?Q?jviqh0qwJqP17PLzjcqObScUIR6Y1+BYc6QsNTUCcjAWpNTuPbgiFISdpPUk?= =?us-ascii?Q?0JTGciajSLI1PHaAjaf4FjGZe+0PD2eig7CYMTpFdCzUOicixJpkzVWWGr2d?= =?us-ascii?Q?K7++y4dC3VioyBxu/CyIswdfwR14gure/dvAZsEt8xb3/pN4NA2KoDZSKKnu?= =?us-ascii?Q?E2NvxSxzbAVSDfpeWXmqmJJ1NeemHKFPJbVxoI653+XydjPKWm8wRPDmOuW9?= =?us-ascii?Q?lNg4uRDcqtJ95dIOS4Ue2k6JfX5VErQJKVowEv2nz18kwdH3yHJXtB+o981Z?= =?us-ascii?Q?Lx8LKF7NZjeqLGrFt+wDVrgyVpxCOWoZGvFdKqFvSTIV2r2kALX5Sna0KqJw?= =?us-ascii?Q?njCI9WMMTCEk7T0mBcI6dMMEbss2ODbNMTPmBXcNCzE9UVqSlGEzM6szBDL/?= =?us-ascii?Q?t8pfn4EH6NGFqh9n0RlNTVsq9KbioK1OwOpOkCHJbqMS+UDTQeiB9LF0lg/P?= =?us-ascii?Q?/Rrn9YKcXPPS/VVZCNk7LTptqdi5Ad9hdX4QhThpzkJ8CWV1o6/l7QoZeeH5?= =?us-ascii?Q?Z8l4pY649UuP3qo1XkFPSIFzrByALUwgk4JVfrKvD1tIbWfupQVKSKnOcbJy?= =?us-ascii?Q?ZUs0nElCmhen7LG8tUvLEYTfQCSIajYawXfBr/H5+iNShAL3TuGbSIRGEigj?= =?us-ascii?Q?pq5bss4LzlrWxnyGeHXbmeOnpm4owfxkeSxEIT3ddpckJ7iRwICE7LcbfjZW?= =?us-ascii?Q?KaHgl8bI+TBO98IMU/KXDd+1iodk/8Kc4YcCuFRc5FnsyQEAZqzhHaK6Mlh6?= =?us-ascii?Q?G2AiHowiRphrh8hRs9Qo1BVNpEuzTwaTsglNKNJAibW6SqvSMKozrrJLLF16?= =?us-ascii?Q?kjE7cX5XBWXoJ116o8I65BsUCuRSe2Layw3XVyi9m4pgsJWnj2WiBhr/qchs?= =?us-ascii?Q?bXzWgEslue78NDMcO8+NIN4R0/XL32tRuNaNfjawjWmZF4+5qjkNqH+C4PLX?= =?us-ascii?Q?Zgn5rzZ3f+Yda1F3awDRmj4x0jCZS0SR6hrF38vcLiPXJ0xtFKNSr4XgIG8g?= =?us-ascii?Q?WORV/jWuSuehWEU/mX1NxbLDh77SArrdenjewaGIRyT4HcmG1DoRN8ay+UDg?= =?us-ascii?Q?ikwMe9eBs8vvjlvW6Y5ZTQSo0xODPIT6kTllwi5nvT/riWyxpbBI0AIW5f1I?= =?us-ascii?Q?fjSyYVDRlbCks2YqUvzw427NVWY9VSfMvMg9QTr+mIPXcU07SfIuGsGQIWty?= =?us-ascii?Q?HqdbBVF007potn6RRApQDCryngYtUvc98X27KpQ8z4QCoszE2So+AzDrwaZ5?= =?us-ascii?Q?PmS/98hJVWwubeYp1kPxY9luwiVvQ//kPrUVAT6/?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 144a4281-1653-498c-ae7a-08dd7e93a025 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:11:06.9656 (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: rvDZSPeHP01gZTHKMhHVwiFC0kRJ5pgYFJ0lrLsE3ciJHKY6T5eVnwZ/9oFzwQUj+/R+z9DDZowcVR0b7LDc/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The rcu_torture_reader() and rcu_torture_fwd_prog_cr() functions run CPU-bound for extended periods of time (tens or even hundreds of milliseconds), so they invoke tick_dep_set_task() and tick_dep_clear_task() to ensure that the scheduling-clock tick helps move grace periods forward. So why doesn't rcu_torture_fwd_prog_nr() also invoke tick_dep_set_task() and tick_dep_clear_task()? Because the point of this function is to test RCU's ability to (eventually) force grace periods forward even when the tick has been disabled during long CPU-bound kernel execution. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 7eccc74e60a7..ea40f3ad32dc 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2410,7 +2410,7 @@ rcu_torture_reader(void *arg) set_user_nice(current, MAX_NICE); if (irqreader && cur_ops->irq_capable) timer_setup_on_stack(&t, rcu_torture_timer, 0); - tick_dep_set_task(current, TICK_DEP_BIT_RCU); + tick_dep_set_task(current, TICK_DEP_BIT_RCU); // CPU bound, so need tick. do { if (irqreader && cur_ops->irq_capable) { if (!timer_pending(&t)) @@ -3260,7 +3260,7 @@ static void rcu_torture_fwd_prog_cr(struct rcu_fwd *r= fp) cver =3D READ_ONCE(rcu_torture_current_version); gps =3D cur_ops->get_gp_seq(); rfp->rcu_launder_gp_seq_start =3D gps; - tick_dep_set_task(current, TICK_DEP_BIT_RCU); + tick_dep_set_task(current, TICK_DEP_BIT_RCU); // CPU bound, so need tick. while (time_before(jiffies, stopat) && !shutdown_time_arrived() && !READ_ONCE(rcu_fwd_emergency_stop) && !torture_must_stop()) { --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2073.outbound.protection.outlook.com [40.107.244.73]) (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 A7AE4219311; Fri, 18 Apr 2025 16:10:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992640; cv=fail; b=tks0Mt3L7IRYmnqqKA6bvZGVDn7m1UIdojKMUk9kBJ7LhljDUwPUKZI3QEof8Xk0fNfzefkcfd5VYiDoTa4v7amm2Kqf0k1iWh7U+hzwKUYX8kQpfpbCCppT/dQg9vM+sSTAtPxXL3MZV4l0bdLBpZyxHmE3VMEoNpX9TJ3a/Mc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992640; c=relaxed/simple; bh=keh6BvML8HojlxkMI0MXymmJ3ZYlFk6P8eExBENpuEw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Fp6FlDOLDFIG/Di6tG8vXk4Zna27Bz/vK12hj9YhunXTinC6hLI3LnOcE7NCMW4+Vhwcq1+Key5OLs/rwwrs3ST5ipRmLuGc3mFBpSEauEGCai3Y/DC4IYTHWUsWgTiFje0bjeL/RW9T8Q/a+cvrr1QmydysCFGlLUZaZKVucoc= 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=GtgYNoH4; arc=fail smtp.client-ip=40.107.244.73 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="GtgYNoH4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KX8GS9+7uLFyrng2a6z94ybjfyGO/XjniWRRgIEOTJpL8F7kmMS8fqaxrY5oSt//+kYDMehJ3MGNKOj9RvXG9FmWn7/tyHH0D3apOmJiMoTlRjIzuA2dRCGr7IhitC+yWZ68a57Zji2S8QcWvq7n5vMqgpptYENlQfNgAj5zmYbwuMcJr/h1rnn6k5sPUqgVRRAQfmCE1pa0JrM3JE7lzWKCHpKLDWNpssvSLyw9J8TWzNn4HXo7qjPgWeRcOgtePIlS6nFWBDvODBEKWjGa/M/KLASeUK6lTZ7iSkVYYxq8udiHKSGhCNYEX9ncpw9diop75BlzdGXn9YmbshvHEA== 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=BotCbURfJtn+w7FkKp/46IRYrY4Bm5tWf0k35okr1KM=; b=RCFPITLufUr5mn0cwngP3uYZT96VwZk9ImHUumQw7FlHq6QlbhHxShZQ/z9lLx6/P+bsIj2SP1ZZvghcOGZALdtP5KOBHWJINxCRKV7aNdmF+P2P8YagBEjcLE+4YYOz+DIWXemA33/XDyvlgbK2RYPW6s2CDCG29XDFG8efnQUGAI1oE1TCnb63TMLGy/0Ce9eV+LOv/3nFkg84HggUGNGja46RQyDSuXOG17iiYYPjZ4Twuxw4AQD2PV4mfnU/zxCQdh7bwFtLtafEoY/ztooC6DETryaciDrOj8+CbSxEPi7bMUwtbWMe3diAoOcvGTraCPo32HmJZqcjadWKYw== 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=BotCbURfJtn+w7FkKp/46IRYrY4Bm5tWf0k35okr1KM=; b=GtgYNoH4VzfOMJdaZNL14M1k1CA7UQLLECqtzKaScW+4tnKDP3ZRqFmfcKAccGN97zJ3taT+XkqpmO/5dEV4WKLcLAycg4O9YdSjxIqZsfr2hbHiZ+K1uqfe7XNuC7UcVs6ATJTp/pn77bFkw9ZBYiKtFDhpP0/eAmp58o9AmAMOZMlZN0sXLAqvYltAAZyxBAxLAS3TV8GIbo/PNr51fR3PMBKxe3IP5D+t3twSk1HhJ0SErB6tcguM2Qj47ZdOyzcPdYYD0+QvDR8unoe3B+KEIyvuvBh6gOuYmJVkBPjtmA6VNkIwzdO/pFlEuOabdq0RrNgMG0Hw8qfXX8kdpw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CH2PR12MB9544.namprd12.prod.outlook.com (2603:10b6:610:280::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Fri, 18 Apr 2025 16:10:34 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:34 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 07/14] rcutorture: Comment invocations of tick_dep_set_task() Date: Fri, 18 Apr 2025 12:09:39 -0400 Message-ID: <20250418161005.2425391-8-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAP220CA0014.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::19) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CH2PR12MB9544:EE_ X-MS-Office365-Filtering-Correlation-Id: 3d789ec3-f464-4b48-6d63-08dd7e938cf4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?19Xm5DmbVpSjSgXeWGdykMfUpgcoDw0ci4nWsyRx7v9rTUOSo9FcaL0fttkj?= =?us-ascii?Q?xHFbSt34jTHDsJkztjW3k1jaP1UW9bnY0xZnvjTdC/GsPTIkJJ1bSJmDcjiD?= =?us-ascii?Q?D7D8P6xHz7Ule8eqoY5ZjwaFdViJx4sEnBBJcuB8+dkp76ULhEdxItiCpE/3?= =?us-ascii?Q?abldO41Jfo1YdC7ZHuO0819VK35Kilv7aFB+llSorXvFJHETpAWWWTZJK35L?= =?us-ascii?Q?0rBjzCh9szSC1FkqcX4Icv2VbiZANWZvRMOvkNazgac8u0nF9IVMks2Qg75p?= =?us-ascii?Q?ZtrGnzssYa07WTdhJagmsqsFPHIXmntBUMzsszWCMjKlqjgGWmbxofNeEysV?= =?us-ascii?Q?/02aaMWJimL9Ca0kTJOtb87sBYDW0JYWfPw8NFm8UM0sY9JCz2s65nQukVvJ?= =?us-ascii?Q?hT+gRMPO2kTneRap+tUewO2KHe++OGHYbv/6QTfwMOt6qrABp7FPM2gwe7Iw?= =?us-ascii?Q?dUH5Twk4SAXYRUkRsgj0YoeEYJxL2o5WxVI0hr/evQj5hM1adUb0j3eJIvGX?= =?us-ascii?Q?s+mQ142xkDv1oPWDq++geeIM3QAdVNYgNsjCVlpYmFF49fCzLCe2mHaxFaHX?= =?us-ascii?Q?2/KjEDATOOh4SC1KjLOxKO3v3dIxzXAWyuJS0/KEsmq0GCrkMCy70ktHO1u8?= =?us-ascii?Q?N3q0ITb9g0P2LhOLV7rbDNxfVYGUWCSFHNZSXW4rSZOewWdBwpxJ/k2t9dWg?= =?us-ascii?Q?NLnSu5z0OrqSXPNbnsRB9X5yoNnnRsmLapgJNysMDDu4bV2PAPd9jEEFt2f+?= =?us-ascii?Q?9hZANkWm4jSwDdAw72pmKKmVWQizdkjELpMqaRAJuzc5w45vK7zdMSdfvpOl?= =?us-ascii?Q?2zzR94b7dKm/KVLGUq877wrDQzh7yEMVG4Oz3rp/Jt0G9dHpzFAdaMTB1d5N?= =?us-ascii?Q?bDjyoU+0dwFSBZ/UL35D4C2knTsfnDBLX1kmMwBrpi0nRdmzQLDS5Nue7GxQ?= =?us-ascii?Q?YAE4WdSVOPHp/orqLoFnJ4oNrHNemEjXQ6mVbmGN99drH1wPZJogwqevi0PK?= =?us-ascii?Q?lSKWJWymgpoc5B6pQImphf8ycGP/EeuE45te/gx2AJ/u2KqFH677tc2yWclz?= =?us-ascii?Q?E86VnJw6vCH1/a9ludIFj4//NhgITlzhAy5JGaKDr+leXZCwU+SK5uT0D1kV?= =?us-ascii?Q?T+oJDd7lA8hUQYC2fslBCdtGUtZ7080s6tkNiXM1lAzQhDH7wildGvjaZDDK?= =?us-ascii?Q?dFqB3rWf+0qf4RGpen9S6OLGJtTPO/CXOhAqvmkQ+TUxW4/B5yD7m+llkKFX?= =?us-ascii?Q?1qZp75AO6S6oIUWrxdOZYtMCTrHPhDGYm+m6tkmZ/Cwyv+77N309F4dH8lBe?= =?us-ascii?Q?SpQKFACnW9p6UnxRdbkQfhKP+aQDQODSWgyDPkmeTPWXtkEtT8nH/lT/WgQi?= =?us-ascii?Q?h+gb5uMe4lVXHTDn2ubW+HUmzjbCR+O4niljoeTv1/nR77aOfwhnPX94pAtI?= =?us-ascii?Q?yZBsNSBClClQQrQ6z2/DJ4UEh8diHPOU1cR+drKp9557Aow0D6z3qw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JcH9XrlkTGN2YpwO8YY4qqGHLD9yZvBzIgohAHSie/dqFXDWYL7Bs5oeGbOy?= =?us-ascii?Q?1B6zVWJAC+RXAa43gRnRLfjWYYZL94S9FfUIGFNR3LsRJ0VYBi1oUsCz9iIP?= =?us-ascii?Q?x/nV783lNWjgF10ZFOIeqMVb7rhion1oersM8JLU5lFxIAnG9IoCLDsv2JhL?= =?us-ascii?Q?q0LQ5bawqeObuaoC07hImcvwCG9Ge1RErWQfzTtHrTWON2fxr/3+l1AD0fCY?= =?us-ascii?Q?OMY3FQ7lVoexyYtyEdKCUqR8VKNAd6iynOETurkCoFxdziSpakrOce8ewOEI?= =?us-ascii?Q?i9y8gieBm1oJfGdff0dhTOLwASoRnzqdLyz8eZlb3W4fgWZk4HrKIXq+8W8r?= =?us-ascii?Q?ZVSW/odB2UM7DCr8mY0+pzmLe+1jqO863D55w0emJBGstGnF4Coc6bC73uoI?= =?us-ascii?Q?lsLmPDjv1H/ar3o6c1p6fJlRlufSVJkG06zs207O/ksfPRE+zXjFcnCHXJ59?= =?us-ascii?Q?qG3Thfi8LAPF1kmeZjcCfZAT50ge47kgu3DrhVPgdHUPQQdV0GFYoqWuNqsJ?= =?us-ascii?Q?R1jj0zj1Tw3v+aZrr0m0R8PyYRPZVwUOlek3oOSw24i48ntabZKNp+nk5qC7?= =?us-ascii?Q?yd86S065RvStYV9+n/46+BtdT8lXWlHk5FmQFFD6q5aggLzHWyVXIhkNDGJe?= =?us-ascii?Q?4tI9O5VCEeAiCTY/tkARlnkN2qWlTh1MwsotKMoTYBf5G4OhZFWf/oNp7n0E?= =?us-ascii?Q?cgDMHiABbH5iDt5ymI9YqUPPneAK0TcjOm7tHWHix7KbqP0f/j89nP/WPCtE?= =?us-ascii?Q?e9ugdeYzyoJFv9vzfO6DH7e3Xsxj7w8rTqY4satOVa43DL19mSNH1ZETKCim?= =?us-ascii?Q?aSGx4SnlwHu1xKkQ56I18fBZ3r7a/cgdDBaaRDxYzI+dVqaVO/WC1UTolYGa?= =?us-ascii?Q?Qip6/hCh8ODji5BpTJeOq107HUD2SOEmQ3yXB+Nj200U5FVx1a6+1yt0Zyp5?= =?us-ascii?Q?HAkFpPL4nRD/Gp40d5wfCmyYMgydz4vm0xFt1rvB0KIV4In2oFxhkwsxoOIq?= =?us-ascii?Q?Z8s69UWpEv0xkgv/KDmHMRVhQV6KiKTGDR6vzik+wmw2XYlVhWjOmWJI7L3O?= =?us-ascii?Q?/9CNKVZQCoRPxT05cYqxJfxOgNdpY/JgvbE8Z858GeKniUqRw6mIuxGVNkJV?= =?us-ascii?Q?z+LWDn9u8zUJwGk4lkw7tLcgv+LPkG1ys1QMmjZeWnMzegHsJJ9zAmsaTZY4?= =?us-ascii?Q?Xi7bVLoIRtXM4NqTOw/pAKjwliqHrMrXHS0KR8sda2Ix5y12YifbNOup4dgY?= =?us-ascii?Q?QJ2MFBD6wJeVoEWPBjFbi6iKSacJFEz237kN7mSOwKc+3p4J2S5IcqdfnDNw?= =?us-ascii?Q?D0aSfYVJdpyF1PDklbq3Fvz7aeAw6E3kj+1TbvuLaDaPLBD99idgZ87FSKb1?= =?us-ascii?Q?27EdRxQkHLEXzbdU2fAb+KSKikRWACZ12V5M8tmIuO64UaPxrZcC7OCK1Gb5?= =?us-ascii?Q?PnsI6nxUZLjd5lnmnksLegSyQyK0tpcIJ3chSOYVmuMw3P30TN/rJKpzs+DO?= =?us-ascii?Q?FQvvGOuVLJo4qTjTj0GV6G7hza+ii3YppyAplcFtJYevWTCII80lvyt4GfcF?= =?us-ascii?Q?vQVs5mwarEtPwPhByUiDXVtaaNc3NeIQ/O4L2AEA?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d789ec3-f464-4b48-6d63-08dd7e938cf4 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:34.7947 (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: 8nbLDjYBEZG/5olhaWjEOt22mFV5FXv/BCZV36J49n9x2Ao9f5zuR1OdeGPOvnb5pum/ot+PD10e39CqGd/3Zw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9544 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The rcu_torture_reader() and rcu_torture_fwd_prog_cr() functions run CPU-bound for extended periods of time (tens or even hundreds of milliseconds), so they invoke tick_dep_set_task() and tick_dep_clear_task() to ensure that the scheduling-clock tick helps move grace periods forward. So why doesn't rcu_torture_fwd_prog_nr() also invoke tick_dep_set_task() and tick_dep_clear_task()? Because the point of this function is to test RCU's ability to (eventually) force grace periods forward even when the tick has been disabled during long CPU-bound kernel execution. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index daa55ff05570..25010666576b 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2410,7 +2410,7 @@ rcu_torture_reader(void *arg) set_user_nice(current, MAX_NICE); if (irqreader && cur_ops->irq_capable) timer_setup_on_stack(&t, rcu_torture_timer, 0); - tick_dep_set_task(current, TICK_DEP_BIT_RCU); + tick_dep_set_task(current, TICK_DEP_BIT_RCU); // CPU bound, so need tick. do { if (irqreader && cur_ops->irq_capable) { if (!timer_pending(&t)) @@ -3258,7 +3258,7 @@ static void rcu_torture_fwd_prog_cr(struct rcu_fwd *r= fp) cver =3D READ_ONCE(rcu_torture_current_version); gps =3D cur_ops->get_gp_seq(); rfp->rcu_launder_gp_seq_start =3D gps; - tick_dep_set_task(current, TICK_DEP_BIT_RCU); + tick_dep_set_task(current, TICK_DEP_BIT_RCU); // CPU bound, so need tick. while (time_before(jiffies, stopat) && !shutdown_time_arrived() && !READ_ONCE(rcu_fwd_emergency_stop) && !torture_must_stop()) { --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2073.outbound.protection.outlook.com [40.107.244.73]) (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 63BA521A449; Fri, 18 Apr 2025 16:10:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992642; cv=fail; b=enk/s7SXXszJmb8amAcNWjNxAliX8vedYynCWLegpAoQuSfD/PnhygKmjkFIfmNUrrKf/p3kKTCA3JQrKGitdmjwMTVFU3hK8JGDrn1sWGq1AMPvqf9o9LgQjs2+udpF6LwcLQt3X0vVRW7S04SonzdhGPpyCJ352VrpPFnhh+4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992642; c=relaxed/simple; bh=K1CsRacJK1OIGiFpTM0QzkCewRhArnv5Ob8iRyxh5pg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kthWBR2fQQ/fumNDMgHmxxJhML7Gb4Lz1VOSA7exXl7PvdsHlpSOf4wOuhUC1GPFn98e5zvigt3nMosCnDUi0NFZ6cQEKSTU8rUSts2uXMu3dZcqPaXVKLn38GKjpWCyR/kxPFePY08sypjPRvISWdLE+Vg1xPbxyhb+qsUNhlg= 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=UOPJRpSI; arc=fail smtp.client-ip=40.107.244.73 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="UOPJRpSI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nS22fKPQMzLG3i3AwM4pj8nHmWPifTvIUSIuu4JOIm/CAwDy+NWn1dl2w/S19VHi9nuFTmLEA94NpDHGwZkIin0i0rGrdh5x0Eblf4Sp1YpgyYMr8dQRZPezy8WpwBdX5Q1ZRzRRurdM711t3Fx3rXaxc+a9C0kluUkljH8d7ntokOjjhabm1/bYxqbGg8X2F0e4Y/zpASC5JXKWvfLjLowIGXX2YSpOzVpjJMlco+pjPbIiRfoTgFioaH/deJpfgy7eLEA5S/hGi8f814nEwmiMk1pftHaGAIvZOCEorozYpWIrgyN6nif3CQ4lmKW+Fni/6jVtBCDBJMWqPu/ZFQ== 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=j9OeZ9liPybjRvM/oeboZzhFsRS8UCmr0z8Ib3RVGso=; b=K+eAs3+2Q8RZbO5MWN5NJV4Exh593/DntBstmUUuLIyicaL18K4W4W0GtDTbu6OEVz/K+SoNxZaDKIgvj1PJ+kjeosCXmRqbOEL3LEwHhAqIHFp4UzJLVANxv2rB8Bf80Et8Ued5KB87PaG806GUaqJDQbX+DAo7eq1HO2ELI3YxtCTpMr8HPMu0pUgG6snfFe3tvS8GpyJrRfwC6LBESOMFs6iJrNjocbBxtcJFuUEelqcKxlL7Kxijnrqs5VtEPlERIyvBj1Mww/PK6bF9WOSF8hrc2d5fpWSr6cJe25+Eszt4UBH8UApV9Fs36NbXVMghnzoAG0nTte55+e485Q== 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=j9OeZ9liPybjRvM/oeboZzhFsRS8UCmr0z8Ib3RVGso=; b=UOPJRpSIqnlBDslddYr07/mJm8banYVaE2bN0SIgt9qXu3rBFpkn+9xTQdCjpp6sAiYHKdDkgzAov1AoVu2G3t8vq8QhyFnSxFClQi53vIHlbbfBLGl8DDKgu1ijpa8pDGG1lM+ZPrNyne0quyj6ErmOGdkb23n0dNNh1udUSdChxBFEXmOYP3l65diPEAURKYgznPxnazZkelwF/LYlMQjV63hs+v5nF/NUcnpce1OigLE+TV0DFfzT3sTYYI9gGe26Ka3AISr4nYRdK+I9OmMK7qO2uav11snAm6/zuVZhG4g8bUgMsKRHpGXmcMip/6csrwfLjutmFd2YG4TvxQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CH2PR12MB9544.namprd12.prod.outlook.com (2603:10b6:610:280::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Fri, 18 Apr 2025 16:10:37 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:37 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 08/14] rcutorture: Complain if an ->up_read() is delayed more than 10 seconds Date: Fri, 18 Apr 2025 12:09:40 -0400 Message-ID: <20250418161005.2425391-9-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0127.namprd03.prod.outlook.com (2603:10b6:408:fe::12) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CH2PR12MB9544:EE_ X-MS-Office365-Filtering-Correlation-Id: 74ab6d8a-0579-4f1e-ab90-08dd7e938e4b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Wt1jq7QguCcBy4sTCJ8ZLvsVvn4BR3jOiM/q/17P9Nm2JRhykIBA1ZahHdsJ?= =?us-ascii?Q?hyjDTkuqIXVVOqW12zaybFP4Nvvyga3OhpVkAWN2OrzK3qCEyf5F5CGv+bRd?= =?us-ascii?Q?hez5C0/egydvVTLmwlxmdRo9xxl9ZEMPrxe008vmaPTWVmb89SyBl4Yl2Nj/?= =?us-ascii?Q?4Ktk5DFMk6CFskw1mOaDgOWfRnaS3Ri5gawdVWNi1+B5vIV84dGgpII2/jOy?= =?us-ascii?Q?KfmCEFhizMzAcMni7hqLMe02OQyZUhck/JA7U2FKqzPcHCNMY/DIdu0W6wxe?= =?us-ascii?Q?+20nNIrqmhFn16vHjFX3EEADcyqyfjLNf2UmPmZO3vJ7SY4gg0ZUas23h153?= =?us-ascii?Q?/9/+ecsy8MhKC80KMzzieS0W415hsyiL+nENblOFNMFofQRp3GoK27VyarDe?= =?us-ascii?Q?2B3aOsCsfgFOLXT35eU529TfZDWxJJDofHR34bQyEz1RoALZ89Lv1OFNZrJR?= =?us-ascii?Q?ygPbv2AfvrVOCASGtQ49YTLug8gNMsHDvwXpj/3l25NFT1TgAbdS9QLpTSrQ?= =?us-ascii?Q?MVlt3XKwb0bKbZrQmWoD0kR7gh9zhk2qQ5lAfxcPs9zfSCicFtMN1jjm8Vz6?= =?us-ascii?Q?aq90nVbPHikenO3F2meVO4v5s7hGzhRuTm2TXQf/ITH9dz9bbMbQNtlkC6eg?= =?us-ascii?Q?6M4BJPupO1Dwbt+nI8YAP2vE2xFNqMKAyX9R8+fzjoqJkRXiRHI5Re5p8sV1?= =?us-ascii?Q?/U+adOQHZ08rn5m5QdLSeqZLSNrh0dntmVQjujiiOKq5G/aQlb4foEiBF6vb?= =?us-ascii?Q?KFCJL1Oh7ZftAeCSe85nwDThU/ShGQwdfA+5X3zX+ELDh8N5H4KtayHi5vUk?= =?us-ascii?Q?62BW//gRCVkLrP/DM4Qrn/grQpl2lpQedl4LnI/Sp5P4irG0OSV5RYBQ1Tdz?= =?us-ascii?Q?1OIH0xn0iXyftaS7M8WkJf15Ac1OP6nBln9p1/BcHaUUcZC5IXK75+rSid4g?= =?us-ascii?Q?0ZiF8TyoJXPnhNuCG0NpugmGJg4F/bSGQlh7EZ4BrrOfPwH3pB3tOtlvpxVz?= =?us-ascii?Q?pBDAkuPrL+mKL+TylEy3VInI4Cxber2//tLei8lIN+e6zHhuSx6TJ8B6QRBR?= =?us-ascii?Q?2RqA89tYthCrkD5RelNGXIBMglNIHufl0AWDhHuYzEur0iMsUMx2YeMxzdv1?= =?us-ascii?Q?xpd5UZ83loa4abQmUM+Owzv7MF9m+CRkqks6qcGBcXhhKZ4JupJ79+GhZ4m8?= =?us-ascii?Q?aFMmUNjLOtt0YA9YQPGUJ+3IugvXvl1MDJEMRAO6FytjemFGPqz+MOFXexkk?= =?us-ascii?Q?h8GSo5YWMDXOTpZhzpOHdRRKqK4L7TiYTB5QLOcQxzK3yKbPFGkEcTjdpzKn?= =?us-ascii?Q?eHvu5t+WjESr81lvCCYDKOKTmmTuBxtxjpjNlJjGEbjO+Y0J+U+pwlWRclXH?= =?us-ascii?Q?MT8marSJdEf/wUreG561IddWs8Dr47xmtxXuyr5x8wMqPvsSNjDun4wSvEIr?= =?us-ascii?Q?7vXMK+NFJRclLx+oz2KltIicNpSvJQaK6N+Qi7ez0CVeR1qry7LqEg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GOZ95JxaeqYCVGLy4Z1dKjqS1HfEpJ+YILnmke3x3q7/HowKGROKZf6PG3UM?= =?us-ascii?Q?aE7xUTINjM1bxhdXgvK3GRUC7jASVmYrSPAoGfrMt4a2Oc2ptUsLWtieldfs?= =?us-ascii?Q?R/Ag/YceZ6R9zzxK3m7uktHjAOzVsXaKV0JmAtiODdBehhMOJAKrIKFZnZDr?= =?us-ascii?Q?gxGfroMgjtMuR97T7RBMMZCCZ1VHBsjEbPPDZJFv8TB+PpEVGU8vXp4cgiHx?= =?us-ascii?Q?8jXvccSDyIktDIUfIAnWWUSvP5e+kFFggCCtffWtJKg63oximjCBS6tf1pMC?= =?us-ascii?Q?yuWvwLOqLJNfEmNZFU7enB/cae/q9dkwADrHBtCUw+AvfyILIhVEvdGU29cq?= =?us-ascii?Q?aS5wadmOCGtchuP/DsNwjWlyeQxodCCPapYyh22adTfXW3poA2C+6KnZjQRJ?= =?us-ascii?Q?EBVt8tEzkO64pctZ9HMFHaAWRer6MgEN3prHXah2vr/qxQ9NnfCfkycOLN9V?= =?us-ascii?Q?IDRqr+W9ohQPO8aQH7q+ZKvDANnUl2hN75xtZs+Wqwl8yBKnTC41ZWfMiiYj?= =?us-ascii?Q?PkBN700t2z22Pdb3xAjvdpPdmGvx1opRszQ7qQj4N+DzfSgJnf5rwh2/sfGP?= =?us-ascii?Q?L+54COLueaCABsN0RxHKfV3AKqKpqfTGzmlYEFe5FYtEFkSPmF8+dX40X1rH?= =?us-ascii?Q?gqlpRNNtXpOjSMWVPZXvES2ma+bxOAiCQWRRd8glFSpLcr5olUgQqlGfVAGC?= =?us-ascii?Q?07Wc6OYxQjtJfwrmWrKa1018GQ/drluyQ6gn+xBqzgWOdkh+/l3GAvr58yqj?= =?us-ascii?Q?tUrhD4nGvGqV5RMKPS3YbA6tOzPwu5aa+g37kAS7K6XpcaLvpeTkS+I+CbnE?= =?us-ascii?Q?ctga7Qz8c7V5XqUDdrKfOPB9s9hd8q538/dK4bUh/YXy3qHB+txpivxSHpTZ?= =?us-ascii?Q?bQmpE/3ywn6nq4wFRgPZFAwTob7Pzt9Q9DXOIz2MJHuKqTLP/jUgyP1DsnGJ?= =?us-ascii?Q?KRuktx5PVqDplwZNfVm51xGyvxmlhPvVppyvRmNZ9OiWebZoFUstHm2OhFbP?= =?us-ascii?Q?nRfVa9cCy5HLse+Tz3LKUJm1rGcqCGkSzKRHtqfLUWXUUk0qOOnaVlMs7oYa?= =?us-ascii?Q?2YiYF6u/ItxomEqPLmpuGzUIQMU8AJrOc/X2XqdnREOiukiTIlPPS3S8jp5M?= =?us-ascii?Q?aS7bfvzVn2Ow2jC/kZeceFfzHe+gjivI8Uw41jw09Y8TbD3/DmbdpnyRqoD9?= =?us-ascii?Q?vVUIAX1DZdnn0+/dNJN58Q8B5oHl3Eiq+EDoVkGdhLUtyT0HC9UkLGV7s/Sk?= =?us-ascii?Q?3xW5QANpifBhPpKYW6A6IgaFd8efUbaTPEVLYDM/Nf/xvMVhsuTo42ggzi4+?= =?us-ascii?Q?rmK4N3MXk03eI7u9GKbb11TN3bzqyXKK9EOXPTGXSv/+6vYGbtRlJJ2C6wN6?= =?us-ascii?Q?nJr2B5SX92wwa2ybkG7NcKCpnl+pQ7gH78LXYrJ5ldc9PChxaTo/Pc/9Eire?= =?us-ascii?Q?wsj+eya/PGXrjWcTt9MpJM89ptvrXGd2t3vdO70TjVlf0Y64udMsLl57nEe2?= =?us-ascii?Q?Bgbrmvxfm47ypbloVLBacS6Hx8tvDQurPGFQN8e2AlbMEg9nGmelAW1nsdk7?= =?us-ascii?Q?8xh2KgElGAEHZSGLuY51Lrn/G17PyBwjgkGK7Z1N?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 74ab6d8a-0579-4f1e-ab90-08dd7e938e4b X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:37.0221 (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: Yl7IYu1e+i19vb/+8jVMFLAD/uorA/B2sgzYPvcd7JvWTS6mobSnlhYtq3bln/Yvx0EZnKaIMQd2JXa9IIxZ5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9544 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The down/up SRCU reader testing uses an hrtimer handler to exit the SRCU read-side critical section. This might be delayed, and if delayed for too long, it can prevent the rcutorture run from completing. This commit therefore complains if the hrtimer handler is delayed for more than ten seconds. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 25010666576b..0b998609c7dc 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2438,6 +2438,7 @@ rcu_torture_reader(void *arg) struct rcu_torture_one_read_state_updown { struct hrtimer rtorsu_hrt; bool rtorsu_inuse; + unsigned long rtorsu_j; struct torture_random_state rtorsu_trs; struct rcu_torture_one_read_state rtorsu_rtors; }; @@ -2520,6 +2521,7 @@ static void rcu_torture_updown_one(struct rcu_torture= _one_read_state_updown *rto schedule_timeout_idle(HZ); return; } + rtorsup->rtorsu_j =3D jiffies; smp_store_release(&rtorsup->rtorsu_inuse, true); t =3D torture_random(&rtorsup->rtorsu_trs) & 0xfffff; // One per million. if (t < 10 * 1000) @@ -2542,8 +2544,10 @@ rcu_torture_updown(void *arg) for (rtorsup =3D updownreaders; rtorsup < &updownreaders[n_up_down]; rto= rsup++) { if (torture_must_stop()) break; - if (smp_load_acquire(&rtorsup->rtorsu_inuse)) + if (smp_load_acquire(&rtorsup->rtorsu_inuse)) { + WARN_ON_ONCE(time_after(jiffies, rtorsup->rtorsu_j + 10 * HZ)); continue; + } rcu_torture_updown_one(rtorsup); } torture_hrtimeout_ms(1, 1000, &rcu_torture_updown_rand); --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 CAD41218AC7; Fri, 18 Apr 2025 16:11:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992677; cv=fail; b=YoPKr0SeycgHVBMSJUS1ak2+cYkrTRDgdu8MQKhYITQNZuFTgD4LxnZbsw52/Nv2E/ugmaJe2TE8wN2YhzcEZiIo1q2y6ithKAEr8GVCYyO3M1xoz3s7pC84sIXdWns3OlWCbQO34FDdY4Bla8k/yyRcRiJSfNXCj5KXRqVm2b0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992677; c=relaxed/simple; bh=fhSt13qZNIDURImcWR4YCnIChtWl48dPr2uYbBMnNRI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=A6YAUgzPXSYj+oi7p2eyzjSJEY9/hhNK/tibeD5MR+KnoVFFdPCaUieNFTNLHIoHRl/zH4lluR+qdXLFtv/TdFfO+u0BUq2Th1gWRX5mzv1ulJ/O+91M9n97OUemuw7ulDrtu0zEJAGP29a2n7hwy4cH5XHA059nLbPHryjYuzI= 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=f9k8qklK; arc=fail smtp.client-ip=40.107.94.79 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="f9k8qklK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XgbN3Z1QxNkVdPeqEoBq7gLoC1Mq7zXAtQLWJGRo3bv1Uc/RZQm5/WMHG+0emeCgqJrnKZflDTe65VpA1OEEdEQusOME3sZ1YGmqNMoeFAp3STi4SBKUY6BpiSWXFJ43VG/0PzsMgMjDZb51CQgiUVGfzRl/PgYOc3SXWhYL89MEgCj2Gf9WDdzbFH/fbdlR4qcMpBEAV1K//LRi2CWSBFq7XwzEwCaYKRotMv5Wh4H7kbLFfwc+6rSA3NePibUhwf28rwcVb/88u6lN58eaD8DOuLEo2u9T610q3q2qyaztN6sfNvNNp/1lQ7+RooXzEp+CeakYbMiW1Lx19KTjRA== 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=XN/bkwuZydj8ywgIa5xbhegSK4kc/+bt2K6Wj118TQA=; b=U3kL21kCDwMtTYNDipisGCEoCbgNboGLqURwtr3t81ZWP3CIVF3TZ/sG0yMNphhXRSjw17hfdHFKoyNqCkE+Ej5sHFMTZDk7HXchpXMWmVEhTDgitFDZ1oNRHGhAm2DoKvYZoknLAMGfVNTERdD0Ee43Ki+lsm0vjjdiTIGGy7NF2gSsA+4R9hNepaForM2COyj3862+4AGjXXSY7ZE7mm3+5+0VY+oaLSGaDGbKaPdRHDyzpU5gW2vvlX8KGYg2NcB/4+rsKOD/FU2I+5t7sstkhqbfobB1QSd7ylgkSs3haqQEqjnOGylbe40cPctcOtm4HiZtOKN8T+96xJxGhA== 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=XN/bkwuZydj8ywgIa5xbhegSK4kc/+bt2K6Wj118TQA=; b=f9k8qklKhOM0dDkHfLOKYl/jW31GXgKjSsurURJ9jlX07VswTHEcoPfrc2wFbP1YPzs7lfNhuB3lmlS8Wz8t2bCr3le5MsCgic9XJQaDLD07f8YemI59Ur1MdklQ2Vq05CXJtmnA8RLuMrvzA7BnLTbrzJ7eq9eQzHAiuX+UsmvH6jgRjRJQInj3B+eopB8T8f4dtMOuuQ+Wl3SLXDJIaLdTl/Zn9TxlqzJLz9yzcalNTGDJq8vS5vB+CiGQlbgE00MDMNyluDJCafQ7pfCeugx/G51ZC4U+maZvNr4fh7dg17nxTF+S25LCT/gMRLy0YVu6gBafwRvA1qcu0/Czhg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:11:09 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:11:09 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 08/12] rcutorture: Complain if an ->up_read() is delayed more than 10 seconds Date: Fri, 18 Apr 2025 12:09:54 -0400 Message-ID: <20250418161005.2425391-23-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAPR03CA0094.namprd03.prod.outlook.com (2603:10b6:208:32a::9) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: c89832ba-3e82-420e-0093-08dd7e93a15d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?TOQDB9gj7SKuB65dDKVtQkzYB+GUODRhT028vvzeYQq76Of5/lWarjdiNZko?= =?us-ascii?Q?1Z0vhzObwxi4kg0EWKleXZdLTJaFrjGs1GbYgcvGnwb3ZivBNiKFPaMUOiKN?= =?us-ascii?Q?bG0Fy5HHN5twUagobg+HC4SLXFuo0qswGprmS85k2MzLKHLoH9DZiGtrb3fk?= =?us-ascii?Q?rDUsJbd1TOihRYVsR5Ls46KfxmICD2N+MwwB+2OifMDQTyAxVVPZXKjL+ffg?= =?us-ascii?Q?Cvc9CXTmyJL/EksyQt55Vw0r7igE5SeJeAzf0w/oQO/oBMyLGzxuhtCFxH0+?= =?us-ascii?Q?M18/6d6Gzz2eDUzle3fIAYTLjjCcV39aBJkqcdhL7IhonOJrzkCCK+4yRpi2?= =?us-ascii?Q?98MeqAg9iEBGNsnJxFGWHjckRC+KwclXAMY/HHZGdJugtchJZOQ4CW3T/HXW?= =?us-ascii?Q?9P3wu4syqIIqEccZn9VQ0Jlx2TNulXBBGYs+JEHyT9ItXTnBQDiFGqFbX02L?= =?us-ascii?Q?I5KYEnIRVdoGu/mPS6RA8DODTCAnXVglrfhWFYX5Wihtxn+mhZhu/MWAjxCQ?= =?us-ascii?Q?cej/OcfaLG6BJlSDqNVpnoI98jgDOVtupENxn0Zkk57PLjDPJN5QG/Bhyohi?= =?us-ascii?Q?segR2Wr3af7pdSA80feYUtrGh+TUNoAPdhW1zoGEhTGGGfcAWaFFWZEc7oVI?= =?us-ascii?Q?oiV9dvLQ0ukauHvowf5vCCcMjNmGnP95baY/pxsHVZ02rCkr/SheKHN7ivl4?= =?us-ascii?Q?+ogUskeUYUblSRM5680w7Erp0IAYG9RhuydTKaPMZDhMhluXwhcy2pcUToOp?= =?us-ascii?Q?AfLqn0qRp+7fDJCQWAM/YatjrTS/Su9AwHBsl9C/0aJcVOVBWedsqH0u5HY3?= =?us-ascii?Q?geTXeWQe57ePbnkkHVcK+mUwyzp5d+UrrVRSwAq25MnCWag4o5KBoTtxrKir?= =?us-ascii?Q?aZga4cn0MW8B7bqrNkM8bjeMQLwvkQRlNDyrfuDTuvE2YrSSCn6Y+KluIf/T?= =?us-ascii?Q?nQ2OqkNeETBjj5in0DUG9aW6AdVwtCwMr5s7AbcYTSdWmKQneppf7Bnk+qGZ?= =?us-ascii?Q?FWY+DnQBIB389Gj32pBIVIVVzh/dyIecPtWYLvlcvjz+LlJxf4evSvCd/oqu?= =?us-ascii?Q?G7xNOib3cRjlvrOlJ4tT28z6FWJduGvHfUZZhEOm68bjPfwdHpM2B81Rb6Eu?= =?us-ascii?Q?xgbSmg3DuPkiXgT6lO1X/fKDdt89RpJXSpwhIwQnVxdrD8IUV2Lp5GQxAvPe?= =?us-ascii?Q?Y83wFsHGXkFo5eXxPecNqvJZi+CALDrI6DvWpGyAVHgPkmEHw2fgO0bFJuJN?= =?us-ascii?Q?S3zRGCpu4YCQBm+0uwRV82NnaSlt87H0XK0+PcHsA1srArqUjyRqyg0RRPnj?= =?us-ascii?Q?u6JTEj3UCJkKw6xSU0H9pVpJJlXw+ZVSXNsSjGyvFwAQA26T8vuTPlaHN/CY?= =?us-ascii?Q?v/gGJaz/l6OuZ/9jzS20q4R+GNcxJM3UDSTUiaS918AcCVYPk+MmZU5MLm2h?= =?us-ascii?Q?x1Lnbw7LKuEZHlcX4L0VCdlk+i1joNcWOzJDdMYCKb1MUMXziCluag=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?k/h5y3dOEMXVG+/8FJidzgxwVkOPGiY4rsBSlJKNFz9AbloLXn7gh2dT1MSW?= =?us-ascii?Q?dW/jIjuAA8aEiOZgjHhdLEgpRBD2a/f4p580zaazBQ1rt0wdKMUFBd0jKvnr?= =?us-ascii?Q?MgDAaCTI0aRMoWaTnpN2ZgKO7NGZg2QocrO0/g9+hGupbQs0ynPssB2sYpB/?= =?us-ascii?Q?nzuxzaX/Sxu5UTjQbtWLn4tXfyHaPJGaPSw2N4lzCvLBw5gTabnjv2XXGwjA?= =?us-ascii?Q?CkYnVRKZCGgZrrgdSLkG05P6hU4Ta+uflOhTFXjgVfTpDnl/KZwpxFCW+F+n?= =?us-ascii?Q?LT+wrWPSBTfygipNGHzQdca8tP7vCtDML9yg34a/fQq03NXNs91uyvhqV9tb?= =?us-ascii?Q?NNz9p96WT+sBRW56WKQfNunGDc4rwNlpO+v6CvNxdw2kMfw5g9Grcs+U2dIC?= =?us-ascii?Q?EjV2mQUCN7qTiBuMsVs5hV1W8TqSCd2W6APFs9aoTC91fccZIzuyNEHjWctt?= =?us-ascii?Q?Mo1WysE95q19S8gf1wb+SdI0xhwOLTOLA89LQAdb+0n0zK5Ilku2SH/j12z8?= =?us-ascii?Q?8zO/ER8WEi0oOrv7H/Fgp4ybkyCJqm0vWuuC79qGtG0F1owxVOS202UI1gvw?= =?us-ascii?Q?3GI5cED5LfkrGKiwlAA3xxdeiIXe4FNOxfN6Mue2xsPJP/aKFGGb4jNW/bip?= =?us-ascii?Q?SROG5HwFqyp8ExpJmcEjXuh3yAmSyBwyHwBviCZdh+zmy4lhQm7/psq7fvN0?= =?us-ascii?Q?Cop9TTTRBOPY4kcSvcqBSeuUALMzfVTdXxDzgATLaJX8e+Yik6ENx+eHmO5E?= =?us-ascii?Q?JJ9KZ98LX7pKdqidKreNmsbrbEbt2ux+74XPpIjKlxTl+ZzGxs2W0Ve/mkW5?= =?us-ascii?Q?HXKrcrV9I6v6Lh3A+9eQGD1nV9fZS2NxF+boW1MlGHd5fGOtQR5Y3tPfCY+o?= =?us-ascii?Q?8T4ZlXMS9L+EezmgbzQq5LwhFMgECgi8fr5Lj2O/gClNx5v5VGWjqQRxdJ8Y?= =?us-ascii?Q?eMcn3wzxp75RcH9FXEDScbzdyU4O6lBV0y4+wtIlHm1xYuH/vF/qulRTLlu5?= =?us-ascii?Q?auSk3sAPH6e0BQ7kXHK1LVsV47EJ+tlPobFXGP4OdaeHvCOeKA649aAxQFpt?= =?us-ascii?Q?N+oHItlPUpJ8YupPfFeJfYk50niApkybg0DWbfOkvgvm0xG0ceYIrEbZFYpR?= =?us-ascii?Q?uJQWc4GNhnCbtn4gRcY/BQZVRGHq7C5GaTaxi7MP/LflQ9Tp5ztCfa8yKZEY?= =?us-ascii?Q?P78IpccXhS9MGYn23gAX8lS+jAI5vNTqdXcHDP1wyeKwwW7OeZuriN27yz5Y?= =?us-ascii?Q?bgh01wXmvQVrUxX7KNMTDowRVEkf/q6gMZBKTAxgomaSJHQOEFvaY2yIPSWB?= =?us-ascii?Q?szRHzRhv1z8wQhP0ZA5WcOVK9kTSSebaAj3O/DoxkuYBc9oU2R6ebAV2QcvT?= =?us-ascii?Q?YdQOXBoiEAMJPw8SpE0X84elstY+FZRjyXeApcCvE9NdDFzSukW7HRiC3hsx?= =?us-ascii?Q?r8QxIMfIMNbTidB8BZ/uPuwL/1IUUDfrKqBzaPqC9DkLqMUnMDbCnehbhKAG?= =?us-ascii?Q?w9KKAlMSOevWmY1/EP/dQpdT9njWn83d5cizWjkZlKO0qlDb0RPgUG7MIxZk?= =?us-ascii?Q?P59b+Ye0eCsRZbCxKhjNyGLYIzIrjQblLD7I6XzC?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c89832ba-3e82-420e-0093-08dd7e93a15d X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:11:09.0275 (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: 1LTJI1xp6XJSB7F86/8AeADyCxDlW35HpsNEo9X3xrMbXiSgd7av9YugHrf6LH5q1SyUPxIja5dK40b0ARG7tQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" The down/up SRCU reader testing uses an hrtimer handler to exit the SRCU read-side critical section. This might be delayed, and if delayed for too long, it can prevent the rcutorture run from completing. This commit therefore complains if the hrtimer handler is delayed for more than ten seconds. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index ea40f3ad32dc..d2728e95a69b 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2438,6 +2438,7 @@ rcu_torture_reader(void *arg) struct rcu_torture_one_read_state_updown { struct hrtimer rtorsu_hrt; bool rtorsu_inuse; + unsigned long rtorsu_j; struct torture_random_state rtorsu_trs; struct rcu_torture_one_read_state rtorsu_rtors; }; @@ -2522,6 +2523,7 @@ static void rcu_torture_updown_one(struct rcu_torture= _one_read_state_updown *rto schedule_timeout_idle(HZ); return; } + rtorsup->rtorsu_j =3D jiffies; smp_store_release(&rtorsup->rtorsu_inuse, true); t =3D torture_random(&rtorsup->rtorsu_trs) & 0xfffff; // One per million. if (t < 10 * 1000) @@ -2544,8 +2546,10 @@ rcu_torture_updown(void *arg) for (rtorsup =3D updownreaders; rtorsup < &updownreaders[n_up_down]; rto= rsup++) { if (torture_must_stop()) break; - if (smp_load_acquire(&rtorsup->rtorsu_inuse)) + if (smp_load_acquire(&rtorsup->rtorsu_inuse)) { + WARN_ON_ONCE(time_after(jiffies, rtorsup->rtorsu_j + 10 * HZ)); continue; + } rcu_torture_updown_one(rtorsup); } torture_hrtimeout_ms(1, 1000, &rcu_torture_updown_rand); --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2073.outbound.protection.outlook.com [40.107.244.73]) (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 2DEC621ABBF; Fri, 18 Apr 2025 16:10:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992643; cv=fail; b=i7sqVkOsxOKNdOZ7saD7JjqWMIIG6FbMnBe+SP0sR45R+gsFqVYmxwQIxzXUJP8/epQuX7TJEvuYfsHVvA3VIKbocCUc3bze1bXgN0NXLuJ6H89uLPoQgP9aZc2hf2sJHDr/H/tGpiUk5OOrnlP1ycy+XvyQiBirCXdzLfuKpbE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992643; c=relaxed/simple; bh=PqtN2QnGKl/krGrQk0cT4xSg2yfLHxR6io4qg6Xt9cA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=r2R8EiJZnm/n6AZxbyhNottpZ27HBGmYskZIgK8uB/K4FH9L5tAOb2nmEXqUzZok8JXw5eGKp7kCoCzp5QAZHAMxDmNpYmitM0MRWJHlh5j2rr2Fm1WVH1AJK+vATLjlEtocFNgSXMXzMeCQKIXbys2dEu8R/xoawf6y/48ykaQ= 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=OhtdWp40; arc=fail smtp.client-ip=40.107.244.73 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="OhtdWp40" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=U67Alxq+sYquVmcEBtRJQ4QF4qX/KqmMUIBzyBLqvRxtJa6nAvtHfoqFNY1xP+bbKaSPoIjM/PWT/1rHtgnbP6EeEuABJjbihsnCfOzW8BY209A43UvQ7R7JCGYesLgzFlFmHNopgjNDX/kJJ3q5WMvAFEkthSoFmgw0xaMbYkjLpT9Es8pjmgGUsQ+BdWMkdtrSXbP5w7LPGd/xeh9DXmMxKNOdoUk6ZvxwHl/vJWdL4OWk/rCg2GhWL/GCzZVRSFtaonC+C6CBTIQsrWQSXxI08z2lSkz0KMWSpfd8CC1MDwWVD2xmjkUb8IEtP+2qO3iHj2g7Iy3/qe9DlCCfgg== 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=+3bOLnChhjF3b/lbnBuRjx4odslbvia9Tu78li7EAxU=; b=ROhpyo+7OL/gWIdB+/+v0V986KRQiWmYILpcUT4ET7CzE3A5LFkWzdXItOzueJttFFmwLVwV5dWCZRfOQZbE4ns4dHIl3lX1fM/fmBqkg+bvu7FbHODdqYRFYzpam3FBqV0EIbjHogVN7QJ/FDQEJBUj39I1Ay57LvG+ftlkPJMrL8j0Wdl8v08vKLBp60+0kKkq9EUXQstWajePz00ygrCKKJDM+kuiCbD6H2EljPP/+uUoI/WtQPL6rLZ6c3fkga+9AjGLOzyNxzZe1hd8AJWkjMy5Nu4jfYwwIrAm/WdyGyuo/7PbkvB2ugxrDk7f3ju+6+cmOTTxiFywgxRlmg== 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=+3bOLnChhjF3b/lbnBuRjx4odslbvia9Tu78li7EAxU=; b=OhtdWp405q45G2YFD9PQnAFzqFt4nmLuZWwXlX+OR/4Dl1y+Wh7pM64s1cvTu1UB2FwEiSiPjOy0n6Sb3UZH0TDnbumjasTDFlgM8nNB3zWnzgIURl6yPxGur22QF44yYK2RLnD5C3Ap02ifnly1BGnJsgDx87TaEGBf59X+0USkWTRW0V10uBlYHOimoAP3WnGh9hPoSBuPc9zosRZFVmZO5uxz0D/iE0QgEoLFkE9u99T7lTQ/LnAOvKmJTXADZ2tXqkX1dFsNm+ZgJw0IykzG2Y3UGTav4oFMbA8LFP2ubeelYXTTVUzGGbxX0Q7PmrAFa+WsqdgegHx3HIkuDg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CH2PR12MB9544.namprd12.prod.outlook.com (2603:10b6:610:280::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Fri, 18 Apr 2025 16:10:39 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:39 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, kernel test robot , Joel Fernandes Subject: [PATCH 09/14] rcutorture: Check for ->up_read() without matching ->down_read() Date: Fri, 18 Apr 2025 12:09:41 -0400 Message-ID: <20250418161005.2425391-10-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0P223CA0029.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::18) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CH2PR12MB9544:EE_ X-MS-Office365-Filtering-Correlation-Id: db93520b-32a4-47c0-8aa6-08dd7e938fc5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Qi+bkJGhaeTEewWh9RiDqZ/zFF9adCYEsNeot2LmaNSQZpXFHt8HqHWzD7z9?= =?us-ascii?Q?4w4lCvBGc5GmR9BxqhyMVga30IgqUNxVjHveF48/MCETTJNPTcKTWvsX67Yn?= =?us-ascii?Q?6Sy4DNzM3WErFmDGRZGJOo6WXdsYbmRDuvMwiKDSDo8MOqdLwj12VuRV+lFN?= =?us-ascii?Q?uGE2EK7zzzi3WCJ+tHIjSyqbGn9yqL7Ugr4TvnzIof4ZMPpfBt89ZKhRiNg4?= =?us-ascii?Q?i2TilHtj/HHtjTnYxs3pvwvyuwOsSD2nkd0wZ3GQWBjqpKbR6oPJ6cXP8YVp?= =?us-ascii?Q?fW9zK0n2up/YLMlnzGUCtz+DptzOB+6LwX6ilUq9tJlCw+zWvoKyQgtVxw2J?= =?us-ascii?Q?NkL6Hx6v5Y90zQJEzCB/Qz4IPMbw1AipU+60w+A6hdWV8NK2LPTM1skiZ2G9?= =?us-ascii?Q?atV+7Ie4RBUaa9g707d5N66E7L0YfUbw3TWkYMDYyI0PQxTzswvOi2bZw64/?= =?us-ascii?Q?33MePXhJ6rM+WUVG1T6FCr2DOqFQ4ZQsF3qHPpDPDosv/iH4jGoqYK2EdqOd?= =?us-ascii?Q?1yUNMT40oBZapPA/P4ytYAKX6MPdyiMjB2pC2RYiap7GKWUcAaJ4TECmaPKG?= =?us-ascii?Q?U+kVMYr8lwWYs+/pltVqY4UB75v2YnDfBSVvXXXMRjBdjMNMnCIpMptGNhKO?= =?us-ascii?Q?LKH9G6LwJBM7FTYzNUAxyAMvelyjOt0md4bm5po7i3pQONTpbSqplxEYPXmU?= =?us-ascii?Q?TvYJCUiNsyFHVQE4Jg0AxZfmtHWLx7MO1nDbCwiRbpKva0v/ppnKPh6tkPgS?= =?us-ascii?Q?vvX59ge+l330EAAN+fdh3e2bsMb7qv7diNrWg53MKwiczJAARbULWvb/F8WF?= =?us-ascii?Q?cCwj7EqOQLrKIxKKjju1i4PW2ERrEriGKqmGCYQOdE5cHoOcoy4QGFf9LquU?= =?us-ascii?Q?pLDZdEhqFQnZiOPZTr/EqCY1fYdcwScO9tZwc1SFggSIdGaXQ4ZDqLTqBqCq?= =?us-ascii?Q?xFNNqepg2UR4xe8hANGLBcxDx1ZgIOUnqB4j2a28tvHK3tsvpVX8Sx/zxMk0?= =?us-ascii?Q?AUUcJD5na+QNTjVLX2hM+gztvHZXlqvEWOap00wIQETNdBQWYaFppa2IMPHe?= =?us-ascii?Q?IOZwX2aBP0DDs8z6F2YyE6BZo3SBz839/lsqpD4tG+M0kM0oVVw+7dlc1nQG?= =?us-ascii?Q?IeO5mQcHYGKNzcHZBxgv9JZIo1xifKbaXoOR6EwuRSbF8/Jegal1njm3khuv?= =?us-ascii?Q?mQHEpae3+51USR6ZCIoWUD7qToNjZqwMwwfTua6pg4vb5ukMbS3Q4C5b9lrt?= =?us-ascii?Q?9qVTrigZNZv5VG8H5ovojFSrYXUZY2u0MPWuymHch8ghC+mzSiik5ca2cb7+?= =?us-ascii?Q?aZHXAq3Dx43lf2ufYsJwejf/6jUbgu+xzAAHhUjn8uLUpMhoLJxROS6UohRn?= =?us-ascii?Q?B607sWLJsjwE2HSlYMhegzyYC28PMZ6VFUv+GOI41QPDP0XHPTQW3sofDYL1?= =?us-ascii?Q?K4wWEeiP3TUu4bHDMXLXIcTuKBxBkAH6uWyp8g0+TFcYQffx+SlseQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sZRagwQYzatjBbBj0rYkmmcmemO5ieVD1qxUatM/tdE8KHcDuXHVDh0FAW02?= =?us-ascii?Q?oSv4jbiX2fJiWTSWmh1zOryAHWx78wkiZNZ65LAAsn6dOnynGL80p2IgYZC0?= =?us-ascii?Q?j3xzPCzVy9k3wsQK/Np4Txz7UBvRyZGhlYG1myuUWNOEZud5+I2vb2EU15Ye?= =?us-ascii?Q?bwPR5jHLRhghdiBMk1NccWwJCZAQ0VgXENhYXebJRs5TuuhZNYo81qqNAu+t?= =?us-ascii?Q?FC04rA2KMrRLgyXRAgbTno/pZ8rMi3a77ROOWPL5/x5r79JumliFCm0gN959?= =?us-ascii?Q?tkGcF31epjo2D3GRVANP+x7FQkEGR88GMc6wATOUvxzfmf7GsA2yrssOIVut?= =?us-ascii?Q?jf/ed8FWhifOWdkRf3T4g8BbMIcG3agtjPE+/9qfD7gDv8UbtlG3LMskGsHc?= =?us-ascii?Q?Ab1auRqD2223bF/bo4gDqb3muRQT75oIRVoBrCwwNiDyh7cVYnt7fM1SjWQN?= =?us-ascii?Q?vGZ1gB4sgHIsf4ZDzOGWZXmwZXpJPc5rsW8kcYenep3EKDDOKHRQiYcrzpZF?= =?us-ascii?Q?oRSpxSRAAJ/sv5fFUAoQPxbeHauqlR46+P2tztdQOyIavo5cd5MGmVdB4WA6?= =?us-ascii?Q?CGH+rlb1PDx5GiXVtPhUoVpTxYedvgzTYohXg9jg7SBuOzMsouZk70Ly4Gwe?= =?us-ascii?Q?XnBxW8mi8+PqW/1GxbFAr9B6UGTwoTtRS/bmZaNbqxjtGSj77Qc6nKZIc7nJ?= =?us-ascii?Q?hUZAhgbTIASPhOjsuEXByzzziFCmA9gqsEeDVmvux1o9XOix5D+sj+W3BpZn?= =?us-ascii?Q?DXZX5EYeu1gKw1DaMrsSFhMuVZE4CraZPRREObXTRjUt22NgbXi67A7zel4H?= =?us-ascii?Q?08aRy7V54h9buI5YrDDg7Z0nOOLjQf3ykJNdXrLUDJPzJAvbHGZ3dpw19vSh?= =?us-ascii?Q?47fKwwnaaieg+mnwq2m7Lu3ukZ7Q0DkWxHm6W+Wt90VH6d4U9s763gnRUpwe?= =?us-ascii?Q?KJR+aM5YzN8dhwa4Y4RSG0KHiCP33zws3T85V8hSZCB53nnLoiibQ1QXmuSL?= =?us-ascii?Q?Wrjrc4lsfkhhAIKqBkic/YSrdKSf28KOKMH206fM81b6XdsHmSFjegZZG6y9?= =?us-ascii?Q?7D3TCahlykkIehtKQXy8WM2HDpLEvL11fx44YCiKFCId29e4RjsomdQobAn4?= =?us-ascii?Q?P8KKcHO/RGZW9pYizJLtHszOPs9+dKzY0Bgl07MDDH1WazHPePVo+s+hu7Ys?= =?us-ascii?Q?32MDyeeqzv4OXEUhREK7hlNFZOkFsGOM6Td23f/ZSbbdSyUxwgMUwqRVCOBP?= =?us-ascii?Q?knHmYKYXCLDzrWLCeJXSbD/mg3Rpir5SmgQGOUZ3HsY+3P0xCYLR0dk73R+P?= =?us-ascii?Q?dG9Y9i8svh5yG+ik3i/6+FgCCR6qQjmSKc+TDHEnC2iYFDAvcYEkAp8Qvw6h?= =?us-ascii?Q?/oTbEM2EPHS81wDA5r2eGH8iL8LsW8LHPCtS4gFP0i3mVBuKdnl9gYa6B4hN?= =?us-ascii?Q?SYPBcnRCbmGI4Ogn/4vPS5MKTrBO8ZXNWxpxOKI83xyxQ2roBnDq9g5vj/zR?= =?us-ascii?Q?IJkmoRj4BFo7iVWmzPnOj/7Ty9O/Gq2py8OV9yPRCsUUxEQSC8OdFIke0dIp?= =?us-ascii?Q?/DqXx5aI6Gcyv49ook/Kg2I83uRs1rURx676v8G1?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: db93520b-32a4-47c0-8aa6-08dd7e938fc5 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:39.4875 (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: 2Yvr3NhfG2u6sTWnOFyEXSCUhWVcq64uHyFtdn1WZzcasE7XC1NVBf/uaif+aKcOE0C3LwmL/Q8D+b47qR6vZg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9544 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" This commit creates counters in the rcu_torture_one_read_state_updown structure that check for a call to ->up_read() that lacks a matching call to ->down_read(). While in the area, add end-of-run cleanup code that prevents calls to rcu_torture_updown_hrt() from happening after the test has moved on. Yes, the srcu_barrier() at the end of the test will wait for them, but this could result in confusing states, statistics, and diagnostic information. So explicitly wait for them before we get to the end-of-test output. [ paulmck: Apply kernel test robot feedback. ] Signed-off-by: Paul E. McKenney Tested-by: kernel test robot Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 0b998609c7dc..402b9979e95a 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2439,6 +2439,8 @@ struct rcu_torture_one_read_state_updown { struct hrtimer rtorsu_hrt; bool rtorsu_inuse; unsigned long rtorsu_j; + unsigned long rtorsu_ndowns; + unsigned long rtorsu_nups; struct torture_random_state rtorsu_trs; struct rcu_torture_one_read_state rtorsu_rtors; }; @@ -2453,6 +2455,8 @@ static enum hrtimer_restart rcu_torture_updown_hrt(st= ruct hrtimer *hrtp) =20 rtorsup =3D container_of(hrtp, struct rcu_torture_one_read_state_updown, = rtorsu_hrt); rcu_torture_one_read_end(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_trs, -1= ); + WARN_ONCE(rtorsup->rtorsu_nups >=3D rtorsup->rtorsu_ndowns, "%s: Up witho= ut matching down #%zu.\n", __func__, rtorsup - updownreaders); + rtorsup->rtorsu_nups++; smp_store_release(&rtorsup->rtorsu_inuse, false); return HRTIMER_NORESTART; } @@ -2497,8 +2501,12 @@ static void rcu_torture_updown_cleanup(void) for (rtorsup =3D updownreaders; rtorsup < &updownreaders[n_up_down]; rtor= sup++) { if (!smp_load_acquire(&rtorsup->rtorsu_inuse)) continue; - if (!hrtimer_cancel(&rtorsup->rtorsu_hrt)) - WARN_ON_ONCE(rtorsup->rtorsu_inuse); + if (hrtimer_cancel(&rtorsup->rtorsu_hrt) || WARN_ON_ONCE(rtorsup->rtorsu= _inuse)) { + rcu_torture_one_read_end(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_trs, = -1); + WARN_ONCE(rtorsup->rtorsu_nups >=3D rtorsup->rtorsu_ndowns, "%s: Up wit= hout matching down #%zu.\n", __func__, rtorsup - updownreaders); + rtorsup->rtorsu_nups++; + smp_store_release(&rtorsup->rtorsu_inuse, false); + } =20 } kfree(updownreaders); @@ -2514,10 +2522,13 @@ static void rcu_torture_updown_one(struct rcu_tortu= re_one_read_state_updown *rto =20 init_rcu_torture_one_read_state(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_= trs); rawidx =3D cur_ops->down_read(); + rtorsup->rtorsu_ndowns++; idx =3D (rawidx << RCUTORTURE_RDR_SHIFT_1) & RCUTORTURE_RDR_MASK_1; rtorsup->rtorsu_rtors.readstate =3D idx | RCUTORTURE_RDR_UPDOWN; rtorsup->rtorsu_rtors.rtrsp++; if (!rcu_torture_one_read_start(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_= trs, -1)) { + WARN_ONCE(rtorsup->rtorsu_nups >=3D rtorsup->rtorsu_ndowns, "%s: Up with= out matching down #%zu.\n", __func__, rtorsup - updownreaders); + rtorsup->rtorsu_nups++; schedule_timeout_idle(HZ); return; } --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 6BBC222686B; Fri, 18 Apr 2025 16:11:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992679; cv=fail; b=C8B3/NZw185snB50AcxJRdKVB4R9Tw8lrVkJVU5+JLmAQjioItWieT56QmMHBEiL3iWMxrfc5lAm4dhHTZV9ag7zvXjt9zlPZB+s3rOUD4OuyXNjYChl0KKaJ9d6CI7jPlSCYgmyN/DWEkceLJm/oBVD+lDcTQtxoiLbNesR45A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992679; c=relaxed/simple; bh=TFvt4lNgzIOqBne/m6m5Ets6K2ZqY3VvpIH6wAwUOck=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=b/GNpZV5WKzFk6FH7ZiP8h+tV/e/iqqEVNbUI/lf1LnTI4HEv+LMN18hE1c4glfRCgHPaxia2HIJr5pFwe3OAxynGklhMY3Ni6EJt3Gai3n5z3nagqFj40DeMNugph7ZMr8/qKRp7hogGLOcDCQyseQpuXwmXUeHCD4F2WQUMiY= 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=ma1Ig4Yb; arc=fail smtp.client-ip=40.107.94.79 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="ma1Ig4Yb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vX13S2K0i1BF3UnGdGzsPltlEQNOgZOkC4NDf2ABOnQl2lXyV+J3pbRsFsUCcxkk6w+QSn7mVzygqDe42KXx90O2x7VhY6sHnUvpabrLw5WkhNmOlC1xx1gR0kqT1b4+Prf56NzuVys59DDSDL2n/svUfZqp2MgOhI/2p5VZavM7xGxbu4X1Z/tHuOfZ7oY4z79PFV1tD0ff1mU+OQmpYOwHq/egk7QAOI25jrElMa9CM+1xejl36EV3lZQu/g6RlpNaRGfsKe7RqN2Z/XVwfotuxji2w/oJ3e3qz4RJWDFLzsNXdrNwmtXaa+G03xPZuPGGm5rE5nkowHQV9V2jIQ== 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=hKWuzpoAY0kNt4sTS2JmxVzpI51uWBXcd7bR88SVrwo=; b=BQC9kvcU0ailhnmjDheiGMA4iESFEq7YXD0jxB/WT49N4eCzEIhGdkys2paU7N9cz2WTLnnCYvnvUIB7t+YCMgl+DB9BETk3n0/YbhnWxa7Am51rpW4L9bTozXu+M4WxgOUM3eCdz7plXH8rL7M3MSosGRDOZJAO9JpJZausTfPJqWM1H5zifzJttNsikDuu60QtdPbwp0kSk3V9uo/B0yEz4n7ayb5FMc/YtVLAKLIEfpA6WWtuJPrtDH+cSYXpnCCCdP0oweEd/ZhsoSwHP+t4X+YKsKxf7r57hLEl7/LkkVqPbVrJUHKYWkip4S7MdSHtSiyekNnwaszSmG6U2Q== 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=hKWuzpoAY0kNt4sTS2JmxVzpI51uWBXcd7bR88SVrwo=; b=ma1Ig4YbO70M1hXCdI7Qw6AbfZxOMueYmS1h9QrWHir3JQEnz4oA5DqwjHtVrvMVORZN+FwW+yWovR+QxOjLJDQsuRspkUxDHsBvFW+MX8EbrRv9dw1saHjWe8fUB9t7B735R5BSoUV5g+N8633Me0ObBcIIyamWvjp1MkTg1Mpzv4HKUZmZF0hGyjiJvy1knj+eGzfVPYSqzsfEkM00M1bDeC6kleLPakaMtqtBVJXHWcDXz8Z2ZZmSlOn1PeAn2YlXAuIQPJ8TRFUaVsMf76D3ra271kZeNql/n1tL0LYKkp7XZRkyIprN34+gcwSeCEw2wWSjSo90HR/dPXlm9A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:11:11 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:11:11 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: rcu@vger.kernel.org, kernel test robot , Joel Fernandes Subject: [PATCH 09/12] rcutorture: Check for ->up_read() without matching ->down_read() Date: Fri, 18 Apr 2025 12:09:55 -0400 Message-ID: <20250418161005.2425391-24-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0P220CA0021.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:52e::11) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: ecce1608-d43d-4b9a-8c7a-08dd7e93a2b7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?eYMHoUmgsMBb6/Q/o1l1s0xvar/k0fxiOBuiYdt2pIn79o5is1qbaQ1ESUqe?= =?us-ascii?Q?SzfbDzFKgV46too4KrkulWkkP8Dy0Uf6XE4MNyKj0hNxG1yqdaUlCPb24/FI?= =?us-ascii?Q?UxyAguhfNEDt8SUyj9vlhx2Hnj8tHGxywOKcawi2M/g4lJwhCR8xjwOifZwx?= =?us-ascii?Q?lR+oRQesz+vAlqy8/liWfAhnikGb/nGOlPnm2NaFMPEu50A3yxq7pYqx7LXR?= =?us-ascii?Q?vMO0D/p2mj5ddYBF3eAhnuVm/3EPbtaSWvJbNcHgpWTJHIicMzDxY2WJZFhy?= =?us-ascii?Q?Huy1J2FtGn830bvI8bZ/kU6/QWZxDuSi69n5BOVRXGMYO9AE/75m7qb/z/0z?= =?us-ascii?Q?j2jVKPwzJkWEO+MW5SqUiKq/yh59Iw0HkrcNAgAX1qZX33nODELOhCuXaAlh?= =?us-ascii?Q?K6cuvPn8ZYUM/tv7CChukpW6gFrH91xyGVaOczkWjsvUSuO1nYNNJHRvFOP4?= =?us-ascii?Q?Cc5ni4wymU+Lxq73+sEPO3xAvIRAOIkVdcWEH58fs84BmqiEzIbnDUuvUfjr?= =?us-ascii?Q?3Uq1yqQNcugKFZKUwR4aDt/sSg9eiK/1qIo4ToCJULEto1L++WxY/YWSQvfR?= =?us-ascii?Q?HNQEv/AQlqR3jmVZjwcErFJFxXqVzgXUiaoHzJAYpePIYtngoTrTX3eVTouV?= =?us-ascii?Q?xvRqCBdks66bNuvm++3y6Ke3ZzVNHmG2rZcdwj2XIPYtLDGm110dhMp5CXry?= =?us-ascii?Q?uYyHTrBEMgSq9raJV25ByvJsDWdYjVyiYhEqC6iv9Bk7S9U+Z9vLRozGlOa5?= =?us-ascii?Q?jF7pbqkg6v+hBrmufj+LmlHwz3+YJje6r+NcuFTlnllPaYRCuvanQCYQ0iIk?= =?us-ascii?Q?8Pj5R+PI+KUDQoi5ttUBjhzU/IYp6CsrRerFWD7kfpqRnzxhquLQV8Q5UCkj?= =?us-ascii?Q?pjW6KqgejXoS+vtjKr1E0uhihZB7GcYNbrqBXEwUBGRQxg+LMOQvaUG99rF1?= =?us-ascii?Q?GhicKdweG/TSCreFHIimXZii4rxYALuqeC1yjd6a/v8avfJw+4CTUjATf6HK?= =?us-ascii?Q?umddzk7g8i8FzzhpM+DEiV+3eCxIPOFbYxl/dTIsCElId7364s4Evz0Jhaoi?= =?us-ascii?Q?pNRGxEe8ewXfa8RUeDhrV6jFL5jSV2azAP1LDdg9gODUkrnKDNePDPa2qPYj?= =?us-ascii?Q?zCthMRth3xH7fgsRjRExYMPeYYe0TapVi9uSUZ9wnMauGphOD3phRG40XWQW?= =?us-ascii?Q?jyPMv3Xr5pDBY7KRi8YOQF64UEpLz6GF3dnfGy2DQjAgIVciePU3bnJH/XBD?= =?us-ascii?Q?n2VW2fl4jk9ll0kWwkGfGs8C3RI/8RYOAhoIYyscPs5jJqGxCgQ7pBCmcEPV?= =?us-ascii?Q?uMbogqr899PBvkrUZsZRkkW71+5orqzCQYGyrofvs8WHrm72TyxZr1tvFyTp?= =?us-ascii?Q?JxTW9bUWnOSQGvjuLVvAUYvVh3jyWsmjQRkOHL+XVontXMHGV4v9covn+cBc?= =?us-ascii?Q?xd3W9MqjvF4vQPWqZmUMbClFCyuLV/Tbna+tAQfJGx3MfPwL62QiGg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Q9Nh7RFEGlSCi/inU+tDFMfQq8VO5dsRzMg9BFAL2+0gHII6ytS7odrnOe9E?= =?us-ascii?Q?1giU2b9wQ/WDTSJA9GXVL0YBnZUGeYnxUnPQwfpQnM0Ta2pgVasllZSeaTVT?= =?us-ascii?Q?1nS/xblRr4kbYmo8xbT4QWWf+RimDFFS+txS3kgpyVwxiB+qf3Onz3hkymET?= =?us-ascii?Q?hTVspg0q0kTIzxZzTkaT5AlrZoqvJbs8p1a5IvyKheXCJOpNjL/eK65gJV8s?= =?us-ascii?Q?BOpIw7qtiThaSqnxp+QH0yXSn7Ukt78PjkSKbZSkTIEIrNHFCSR1RnsxQVIY?= =?us-ascii?Q?sn87eLTd8y4exOT0JYq9xwE9XByjwvULyMM0AWgUAobQ9PklbQK+zW8mNT/H?= =?us-ascii?Q?5qykX6iEevVdFjiEG4Zz7BM/v6/Y8GPuGC+/EJXSS4DrILjXDvz4S64xeUpa?= =?us-ascii?Q?tjgSJrjueKdsm4ZZwlTmd+O3rziHV5jbxrG+4MIh7KkPek9APGVl0xfllmln?= =?us-ascii?Q?KGEl/FdaQIkYTd0GHROSb/ImKPgHUV/nw4hrq6jNtg1zLn3a47xz855N9bk1?= =?us-ascii?Q?ScBUbtBfs1RBB81s742H5FdpPLueYydku2g6UbnsCyeydy7jvBbvbWyXQWsI?= =?us-ascii?Q?KKFmWVQ+Pzyc4gFJerRZGWfmucxv60T/p9N4MXVpRjzrSgHwvX4aosgvX1bb?= =?us-ascii?Q?H0QjnF28ehMWxHS2B50KplggVbI7p+VZwr35fQLCs6T7TRUy23tUZnDTBDmy?= =?us-ascii?Q?0se6pLcm15B7kcCnV5cR3LmlQR/HQ2RasFspJWbMMLOJJbeE9nXdbuR3Gziy?= =?us-ascii?Q?ggZkRMZs1KvqY97By8IPcan+xiDcBXx8+BvNp8nHhd9sKzphNituB8g5+nfU?= =?us-ascii?Q?pX/R+gxL7PFMo3QcBgqkacjWlCxAvkssecIbNB0RNnMnMBEk2zlq0ynvwtdZ?= =?us-ascii?Q?ejmt6kd2fi6BRghisIpYEEjDW699Y2e5UH0foW8jBqKitHhA/iM53hEz5BvG?= =?us-ascii?Q?yekjkm/GsYKxqeXaADq3mcde3Dal9EkI0O98OQ+KOBbFJ6TvSdGXSGw/8Uiu?= =?us-ascii?Q?K+61bN3GnjBt61tXZtdCLbxvonHVr5M7CMxK14w0GzC7DTGeYKfcuAVC8/Ex?= =?us-ascii?Q?53X7F0ydceu+ooSNxtSdBRLF6WT54UhayifVS8Q74MLwHVeCTkh7I27wzXAi?= =?us-ascii?Q?LjXThByvWgym1JmQUr6YjmRWLTp608kD7r0feeENJhwAI97keoQ/J1kxwwgN?= =?us-ascii?Q?E7rchqLFYEulO+j5fXI9JNXBwk2I09kWI+u9yLR+N8voTcWh/90OHG2/+5p+?= =?us-ascii?Q?UqRibuyufZbsBH2ZzQ1XfBOx62l5CFj8ji6LLsD/VqPX9arpzFMjPVVRn7Bi?= =?us-ascii?Q?gs7WEz6LLR3QPQ5CUf76OplC6AAUyuqJrSyI3dM9l2VnVDMD8VMNmu8I+RZF?= =?us-ascii?Q?G+scmz9IjcIv96FUrQQiy+MbpTRHJhlZaoGTOgtS+6xJR3FsPI4dbEyeizPH?= =?us-ascii?Q?85jGCQ13ALFVCeQ9U3uCx/I7HlahBapSC6rK5J27CFCp62Fs01KZEfSmuoYQ?= =?us-ascii?Q?BjC83JYNpn4Nwd0YBg9FMUG92asWOUCrbKIcMa6N9Mo0uCRYvSMcAzSxf0rX?= =?us-ascii?Q?rSUUNDuBUTZfRRpUrAU1ijzWMF96mmf/8sGFxJxo?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ecce1608-d43d-4b9a-8c7a-08dd7e93a2b7 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:11:11.2935 (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: ZplGnjO0mm53bCefqktbwwJnqJ+bPBpzGetSBCpD+oe1qs71fxJuBWFh9ujrHZu+3oJybfcECZsesi3Cxrtcqw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" This commit creates counters in the rcu_torture_one_read_state_updown structure that check for a call to ->up_read() that lacks a matching call to ->down_read(). While in the area, add end-of-run cleanup code that prevents calls to rcu_torture_updown_hrt() from happening after the test has moved on. Yes, the srcu_barrier() at the end of the test will wait for them, but this could result in confusing states, statistics, and diagnostic information. So explicitly wait for them before we get to the end-of-test output. [ paulmck: Apply kernel test robot feedback. ] Signed-off-by: Paul E. McKenney Tested-by: kernel test robot Signed-off-by: Joel Fernandes --- kernel/rcu/rcutorture.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index d2728e95a69b..079e164c85a1 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2439,6 +2439,8 @@ struct rcu_torture_one_read_state_updown { struct hrtimer rtorsu_hrt; bool rtorsu_inuse; unsigned long rtorsu_j; + unsigned long rtorsu_ndowns; + unsigned long rtorsu_nups; struct torture_random_state rtorsu_trs; struct rcu_torture_one_read_state rtorsu_rtors; }; @@ -2453,6 +2455,8 @@ static enum hrtimer_restart rcu_torture_updown_hrt(st= ruct hrtimer *hrtp) =20 rtorsup =3D container_of(hrtp, struct rcu_torture_one_read_state_updown, = rtorsu_hrt); rcu_torture_one_read_end(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_trs, -1= ); + WARN_ONCE(rtorsup->rtorsu_nups >=3D rtorsup->rtorsu_ndowns, "%s: Up witho= ut matching down #%zu.\n", __func__, rtorsup - updownreaders); + rtorsup->rtorsu_nups++; smp_store_release(&rtorsup->rtorsu_inuse, false); return HRTIMER_NORESTART; } @@ -2498,8 +2502,12 @@ static void rcu_torture_updown_cleanup(void) for (rtorsup =3D updownreaders; rtorsup < &updownreaders[n_up_down]; rtor= sup++) { if (!smp_load_acquire(&rtorsup->rtorsu_inuse)) continue; - if (!hrtimer_cancel(&rtorsup->rtorsu_hrt)) - WARN_ON_ONCE(rtorsup->rtorsu_inuse); + if (hrtimer_cancel(&rtorsup->rtorsu_hrt) || WARN_ON_ONCE(rtorsup->rtorsu= _inuse)) { + rcu_torture_one_read_end(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_trs, = -1); + WARN_ONCE(rtorsup->rtorsu_nups >=3D rtorsup->rtorsu_ndowns, "%s: Up wit= hout matching down #%zu.\n", __func__, rtorsup - updownreaders); + rtorsup->rtorsu_nups++; + smp_store_release(&rtorsup->rtorsu_inuse, false); + } =20 } kfree(updownreaders); @@ -2515,11 +2523,14 @@ static void rcu_torture_updown_one(struct rcu_tortu= re_one_read_state_updown *rto =20 init_rcu_torture_one_read_state(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_= trs); rawidx =3D cur_ops->down_read(); + rtorsup->rtorsu_ndowns++; idx =3D (rawidx << RCUTORTURE_RDR_SHIFT_1) & RCUTORTURE_RDR_MASK_1; rtorsup->rtorsu_rtors.readstate =3D idx | RCUTORTURE_RDR_UPDOWN; rtorsup->rtorsu_rtors.rtrsp++; if (!rcu_torture_one_read_start(&rtorsup->rtorsu_rtors, &rtorsup->rtorsu_= trs, -1)) { cur_ops->up_read(rawidx); + rtorsup->rtorsu_nups++; + WARN_ONCE(rtorsup->rtorsu_nups >=3D rtorsup->rtorsu_ndowns, "%s: Up with= out matching down #%zu.\n", __func__, rtorsup - updownreaders); schedule_timeout_idle(HZ); return; } --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2061.outbound.protection.outlook.com [40.107.94.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 6AAC421B9E7; Fri, 18 Apr 2025 16:10:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992646; cv=fail; b=oEIBeKRdegWmK4AXtdB4ilLB7W/DduYQvanN3Bgg8lSmelKsbHWBn72nI9xZHdKcDdxHZDB7uEzkEK2K/eL36KBcESYMz82khKqcVDN9axSaSl2/Vv5f1R6El/wpsljkdoB77lJC/PSPf8Dlcv+qll6Xw0G5dHSMr3uSx/pe2RE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992646; c=relaxed/simple; bh=YbzgWQa8DJgxnstre58HNHG10aky9zqPYsGegNA131c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Yp0DvhtXSVif4M3caB1MfaSl/6k2YMgSogKBnH+GvA8ZqzmG5lkARm6Mx2hYGm26DlJrfTkn6k3TQNqPnl5PNyUCFO61qKrBNvXYFi13I36TfKVWjmG+k/2nwxzU+N6/RssSNjiuM7/v+Myig4ty2p3egLxtUzxBqWyD3ivVXyA= 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=DhKwe2NH; arc=fail smtp.client-ip=40.107.94.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="DhKwe2NH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FfW96/zcBvoDbQcgwchs6Hl7EYgJVD+szFYrxXAWPA2rYdok9dbI/3m1IqchWPSkmxq2m2V1eLiSakdKv8fiWKJv38nVX4JnOvh4u1BkoSn2rsuxurbODhrJrjUKCU6rs/RaJszLuWzwJ2pm9m9OVdPYHRZT0Odn4RNRA9m4G0CqhtZujrPoQpkqUeH9+qNqw2xcGhPl9YZht4l1SQZDVx5tdYONRKwQ/u2JCMrtaj5QJCvMb4ry5ABFcpcPgc4W9bHKFIftC5L1kiqb1g5Ej+IZHybDhUlZButxCLOi0n3i5T+LTL9OzSs34psAv66KQhh09CifKIycqELeCeSSqQ== 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=AWJGymz0yaaMHI2aGDCN3iFJ4nkjw8XJixH9rp+3G2A=; b=ZARRa5pZNmuEq3pkb5buee/sBz4hhVwnLbZ9qSTUfPmWnh6vjHUrP9BOqDXbkjvkKavzd3gdN7ZIkZBaRQErai+CSj2qkDrY5EiS1HEZhBf3U+db8c8Ks0NJr5qc1CN4CKcDieBTgSYP0DGwxYJXYTcxf+b3Yn0RDmD9Frff7vxkNS7XRpbmRGfM/1KgYmUU1lhJZWUz2GnLk8Ag3jZr2v6nCTf5dSVmEL3m8A8Bw2FoIYsgxMq7Gpteo+dg2ii0kaBu/pXHyEG5PMjC93TJV1Ga/Cvo+mmzjkSuxDM1lRfbOC0/fzVB8OIxIDe5BcmY/zzEgtV7vb5iMaTkh3Tc9A== 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=AWJGymz0yaaMHI2aGDCN3iFJ4nkjw8XJixH9rp+3G2A=; b=DhKwe2NHYyj8YQx9BQZVKLPPJb2sdMdQgEiM//IOUtVenwF9klaYdQiLtQXcxm6GZW0Ngxx1dCaYZnHZiL8DKQlpQQFRoT6QNUoxqAbRLBkhUFFdb//9EcW+qV3c4jpVvct+qGxbtfT4Ntv/2AA/PLVx6ZqGygMY8V4v4w0S2BCQsy7Ljp0IO/ZnnyfP4mRuoxe7Z2xPSoAquUwy7IdS6gkafmGrb13/bpkL39gPIWBeDLJQzZx4gtSOerORSZmUacu3OqKsfnydkuFJyk3mA31hjHqby4OyuCX/A7VW9KoNh1vDQVEVICEW7TVPLkHpECEg2B2wvl3W59xD1pbUfw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:10:41 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:41 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Andy Whitcroft , Joe Perches , Dwaipayan Ray , Lukas Bulwahn Cc: rcu@vger.kernel.org, "Paul E. McKenney" , Joel Fernandes Subject: [PATCH 10/14] checkpatch: Deprecate srcu_read_lock_lite() and srcu_read_unlock_lite() Date: Fri, 18 Apr 2025 12:09:42 -0400 Message-ID: <20250418161005.2425391-11-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0P223CA0028.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::17) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 539eb4df-4f5c-46a3-7a7f-08dd7e939132 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?jSLGlgfqNm5Tss9bYLQzTSyBw84NlUd5hzIK053uzCZn6hYefvhI9TzqsdGw?= =?us-ascii?Q?XqeTfuBcMiktPYA9B9zooLpHhPLSY5qX2MjSjnEJdbwQxQGqnqxBbRdNkNJc?= =?us-ascii?Q?PgicQ3L5ENTys55U4fGvYkKj1+IyPIPzhfxhXLWI7Y+n9moiqvWZnpMefarr?= =?us-ascii?Q?druqj0QYFbwYUbg07YzUVZCjWkkKeBtoUPVW7/acgNggJa8u4AOe80CcSOEW?= =?us-ascii?Q?bxsuqikle+dWmEJNKnSViGmKeJFlNYvtltg1XpUQArfBL7t3oVS2u/iombsE?= =?us-ascii?Q?+VlNI6teoem8WE8+SnVL3yc4yVkXNSJ9xQB/Z3tN0F8D2ACfQPjlLVpTC/NA?= =?us-ascii?Q?i8wolwDNEnyaDqUEbdAxMYOSYTMzD2p/cXi+OHD7th/0hRPcuCL9/Fk2W04W?= =?us-ascii?Q?hqUn2hR9bklG/RyiHF0xJQHwjoSZmRnmmIL9Jur9Hj7s0dN0/23bPbOBoj+O?= =?us-ascii?Q?nUBhbl5JcCSrUvFfENm2XAobvrowGGutg3p0XlBn3vBA4y9GS7jKvxI6x/cH?= =?us-ascii?Q?cZrMFYyvSJWsuz/nhvd4z/71elRITAFVCmx1bsdKo9LS44TGfZxAg+vphqpw?= =?us-ascii?Q?FcmcfIFViM2ZxvhryiXOSrUhG48lsRNMknNlM9BIhg90yEWEIx5Qy4/4mVG9?= =?us-ascii?Q?9tZO2nYYrsFmrClJK6WzjnrHmVdZc1EFVeEAnXQfrIh7n6gE1ub7p1bcCgmU?= =?us-ascii?Q?w4wOWOpiW66ti6nYCWSPCG78F49xe5RVh61MBCWZGsQV9ii1ez6MG1+3DX5K?= =?us-ascii?Q?Qhw2mPb7qGZVJYTA4HhNFGAQ4OpYUvDjWNNS2YCktSfOgCIguO03ODrMeLfZ?= =?us-ascii?Q?aIQ+R6F1BMDG1UTBr5k4GC7EFnFn5cwW2wE1+F3qZDbqSD5Vfxk1DvdF3r1Q?= =?us-ascii?Q?PhIvDlW4o8A8u7jWYgL7Bh3CGR6aloQUtTXKjWd492oYL0DcaF3AvoCqOpVx?= =?us-ascii?Q?P1spVOsPYxHP8Qq6gk76ERP4/eVYum3baso+ipny6eCi8b3E4xGn5CIz2Grc?= =?us-ascii?Q?+YBVhd2yBbIGUqPXVG/at+qJhqJ4adke+txICrUwFhOLOqsc2cv5IF+VFsr+?= =?us-ascii?Q?cGCtWyiPSa+0WYcpkt4tQZGlcXCmKvq5pRpDM6i4LF6fYncoXWNcvZ2IYMEg?= =?us-ascii?Q?pC4Vlk9Lb/W3fgoLIwXXxAt+W2pFH3Q4/w65VlF1moAdMfDbCKkwsvaiIvDh?= =?us-ascii?Q?65q4RZKIKdsI1AyuyFbavLT9YlZ0cyoB4jJyT65Ad5GS4MIwEJu/c9pVdk04?= =?us-ascii?Q?YOV/2+LJW5d5Dh1Tg464cO7NvFVAHa0bjtwKfRQPvxDhf58G8S1QxThEMzHM?= =?us-ascii?Q?gY1+gu2FC3VwoQa2ldWwf0zyyQEq69dm+nnBITTfFSSHsglBWgBMeLSyPr9h?= =?us-ascii?Q?QDvhNIo5S2UxwgaIy7SFtwWRQ2FKmThffuL9CX8GnSOgsiBiYebSKNGKBLW7?= =?us-ascii?Q?pue+ECtA2mA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AuFohWpHEWwNc2BL2f07BN6tck1i+SD9U7DBvdeMw7ZmekPjUqrpv5FN9Jxk?= =?us-ascii?Q?iV6pGkRiwdGcrImGeLgomjMmH8MCZOW+x8OJPfObnMyiG/Osl4M5TibKPNmr?= =?us-ascii?Q?CGiRYGEVDlb7qcFHPr0iOO6BYbF4XAyozfKQKOTLTHB0NmKYmr/zdp/n0TQi?= =?us-ascii?Q?1amOQLT05wsd5EeW54mAMqyAWgHn1jG8+bqXxgs/f/xHXZHac3L451ihqcca?= =?us-ascii?Q?xJiivIe48k/CT5LPXRMLUQ2sLm9op3ejHY+q0ZPG8+wrlvnSSiWtLYsPJJRZ?= =?us-ascii?Q?nRV+HeEhfBPakwOVhzB3TLv1KylX/PZPfwhwj4wGDs4y0tHo6uLmokkiJ8F6?= =?us-ascii?Q?sla4aDlGN/0dfvmw/A34Cgu6H8Mt/bCtv/jkuVsnBhdtybQcd9PwkHBIVTGW?= =?us-ascii?Q?4jkgmbSwHbs1oDImg1FfBsYHBK5iAJDXGFh6blvoFRD9fnvd4G/v9k9PO8BF?= =?us-ascii?Q?3QX0KnW3LjybBYKiAYCp4wQUOonbrFbwEma1Ud7RmCKQKnWHFa90Mm179QWm?= =?us-ascii?Q?w1aJykfxrfcaWJRo4qQ3y8fCtI//RCjWdcjhUPvjCwugeK9UHBFkEpfA6/XK?= =?us-ascii?Q?kZ776cXM/qec46fyNHfPPF07LOJE00Tm+zOQkgNd7EI1cyGLNNn7cR9ChhM2?= =?us-ascii?Q?cRZvvtb9pWKYhDV3SWI+0OchaUFoyKhCFSlYV/stmiQH+9NHDxS/KrsjAc5U?= =?us-ascii?Q?szTQ5ZXmr/yAuqS7JhTlndQPxkKSdRxFYY/dbjgXw3d6PRMUPpsG10Pl1Hn+?= =?us-ascii?Q?a6sljpBTtF82Y8nb78gwi3HWsmGSAR21MGoYA+TDwLiqGBCwdkqL2o2aga20?= =?us-ascii?Q?5/Vs8EOg1OsJRG/OgRiTL1hqLNFUNJYGxV2m+Rx4XPWyvppRguK8txyVxR50?= =?us-ascii?Q?idZUZB6N02WlRvLZntYSNd2L9yGB+5El65pQsXRCxu8P4zhADoCeXoClRrJn?= =?us-ascii?Q?DKW45l3lpuH2XqlGZRZP/aPp/LiakDr1F9VEYs7MxrRu4ebdRywn1Q6liqhl?= =?us-ascii?Q?AOq5iLEV/8vDsmaECHhirGDJyz+x26tsId4YzgMXu8go4d1yJ9AGN/AOGlAO?= =?us-ascii?Q?lvMf6jEdVI0FRppkaZbAfCbBmFitIIgC5KNyJ2Xsb5CMS0PsXCgPddborAd2?= =?us-ascii?Q?Jk7+yoPin0wXcgRhwMz2ue6KvmUyRU0T/KY3V36SICDK6tlSAvCAvb6qryY9?= =?us-ascii?Q?vitOfAnLasHYOtihFgKbzz3h3akfqHF2Xp7XxE2lk0aBb/DshusTLKkvVKuO?= =?us-ascii?Q?HrS+z+F9QBdcX90DYKVQnRri5dtA2wqWCbJIA4PUJeV4wSs+wt1o9U99VbSH?= =?us-ascii?Q?kLbcvwof0thmJXaBgYyM7WeRjBzpl4UCvTL9b0lpJCZwuPwYViOqr+20FWD2?= =?us-ascii?Q?Ojf0d8737wKuLN/n1hxfJ7JGNq4JqWRaGnyH9k82oaXalzG0YfmlUpwSkKtD?= =?us-ascii?Q?x4DCuLI6/aOOzOPgI4HhCay59tZoF33dGPXNITiUIME4w8mX4EVYgGgihbsd?= =?us-ascii?Q?mE2f0y6hIO1/PnzYz/ERxPFTfmHtX2RhH8iwshT5T5EzZtFYliu49jlj+9tZ?= =?us-ascii?Q?llZeq/x0R/NsrDWjMvQRhO4XAPQUWV66GJAWqAQx?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 539eb4df-4f5c-46a3-7a7f-08dd7e939132 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:41.8747 (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: ImK3vvSGa29o3Lt20lnVWn7rULULthQlT5d5N/tKfhhpCCweTvl9LjBjpp3Oc28t28coMLmWBrPjiLem1CKd8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" Uses of srcu_read_lock_lite() and srcu_read_unlock_lite() are better served by the new srcu_read_lock_fast() and srcu_read_unlock_fast() APIs. As in srcu_read_lock_lite() and srcu_read_unlock_lite() would never have happened had I thought a bit harder a few months ago. Therefore, mark them deprecated. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- scripts/checkpatch.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 3d22bf863eec..b3b1939ccd19 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -839,6 +839,8 @@ our %deprecated_apis =3D ( "kunmap" =3D> "kunmap_local", "kmap_atomic" =3D> "kmap_local_page", "kunmap_atomic" =3D> "kunmap_local", + "srcu_read_lock_lite" =3D> "srcu_read_lock_fast", + "srcu_read_unlock_lite" =3D> "srcu_read_unlock_fast", ); =20 #Create a search pattern for all these strings to speed up a loop below --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 2B489227BAA; Fri, 18 Apr 2025 16:11:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992680; cv=fail; b=OX1+VBGGcSLmhAkLZM1NSiFdma3EOjXrqIRcvqefaklRot36vdeZy7bcoWPXPgyYWJFhGCwZPYtkf2NGQ2HT8GSgQ3+AWaakrkjGY3LVqlZMXCK35YENGsiS9YcHfu4S7WYLZBtQQcwW6t/jsdTBgNIk6fnuYNzmiJapY9feq8k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992680; c=relaxed/simple; bh=NUJfl0C2Vw1lRbQsuu6y17r1zhbBqgGAGBuN+hBqALk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=V+RPj+DLEVR1M+r1oJTHrKG1ASwbJvVqIjOOg9h7JBYf7lR8z7hAuyCMLEq0mLKnAt9fOoWcBUvePH/VCUYG0lYOs8WB+9a/8AdwvwDHRB4iAndmPtTtTVDu0PUoVq4PeoOIe17yDo1B7Ggm5E6/QOzdXBWLT1A6Gpt5ksWORn4= 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=Nnd/Rfqk; arc=fail smtp.client-ip=40.107.94.79 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="Nnd/Rfqk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SEF9zhwSSpnaSeRMGilLYANveovQ3IeurVCoyCenfDDOQpu3IKRYBCB/1C8kkPtPleC3RuyfkYTRzWee93invLAPSZcAdPFet3PlRKyxOl2etAslqS6UQtHrPX+JSP6NF2UPW+SUTYYmKyf4pXxr3ptJcToppsH330MxYmuQzSrJqXiRcMGasGy6TT5t+C/l+SGeNMLDaiXdh/ypzEyxVv/a4x7g6Ob+zT9tsDFxp6JMLosMbWRl8bTEmx75YIY2HZ5SsOGmqV//wfHquVdDQfzxILvW57+DIVzeStVLknnASuoC0eqF1Heb1GeFgYd4NcbRniD3Z0K8HbCsaoxADA== 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=GxLn4KEhhe14dWHCZJB7khU+tm6O4yn4QoBaG8VryhY=; b=uiZ+wX55ljzV24zfD2zBZYTaATdI5CYPTRdTAh3TwEpNgtYmoF79dlJZiM7JTRJE+GpT4zcz4WFkSJiC9wUbkOacJoRXGBKaPeE1KNYnXY/YadIJAZOsnJXy0pkRi4eB54xs54YEF8h1aIZxV3xSGVGF6PDvl8BzIdA0olDAp+emsEtK8EWBVEVv0ju+iAz0pCQPqe7PzuIXP4nSDnV8dxYvdEGbAQ7642zkD/ASyKZ1MZH6BXPExsurywKpHo2rLwMmyyr5K5x6yWOMgmX7kmwDUbCTzvRNSWKhg4g3eRvnFGp7+rP0uInpvymv6XowBQmMAutA982K/z6oTaLwzA== 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=GxLn4KEhhe14dWHCZJB7khU+tm6O4yn4QoBaG8VryhY=; b=Nnd/Rfqknm5GPso9ideHlx4RdCcJbrg+XyQwF+KpTY5flPBH/JQQBGaktlvVRHSd57PJZoebxGklPmOA7NGPw1Ld3sYbvb4cdhtZI6lahk0VcoBf4n51JbbYKLY7mDuNPCKedQy/d+UjeDNDVteAZ60U3Dwn6zsuMe0+di8zh/USbk91kuBwWw03gi8eqssUo0EwXXJTfNRYmXrdGzPYYLVeiPtvTKu9Z02KF9pP1+Vi5kOfSTeNBM8I3030Na2Wrp9BBfjx/PI15ndb2BKyj4pRPgs66ZdMH9SU0jc6DQ20Vsa6U/rYe9AD5l8IpmSdUB2CsmI/O8GDUY5KVwjydQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:11:13 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:11:13 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, Andy Whitcroft , Joe Perches , Dwaipayan Ray , Lukas Bulwahn Cc: rcu@vger.kernel.org, "Paul E. McKenney" , Joel Fernandes Subject: [PATCH 10/12] checkpatch: Deprecate srcu_read_lock_lite() and srcu_read_unlock_lite() Date: Fri, 18 Apr 2025 12:09:56 -0400 Message-ID: <20250418161005.2425391-25-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN8PR15CA0049.namprd15.prod.outlook.com (2603:10b6:408:80::26) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e9ffafa-8755-4ec4-36be-08dd7e93a429 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?mnsFPuItDGw3fQX5eYfKLlut9sO/1/d7UNgKvrLVU2Ynm7Ub5ietCsjXMQPa?= =?us-ascii?Q?21K7vyealhAxmoHh5hI6fnST3nmkea+ph6VKj4DBWRKO6CwBgx8vOP7S8IkY?= =?us-ascii?Q?bQuQMJwKqkKxzDPI1kTQLcRWOg+caFm5vtJ4d0QGVgNYQgY7GieyGCn8Ud1x?= =?us-ascii?Q?NYmWK1/qGSaNNZHrs98AaMVkfBAV9XKxtgYyxtVQ0noHINPHm3wDp8yvHXV1?= =?us-ascii?Q?cwjmU2UTAcvLsACPQKm0idh04EdPlyjHeaEzYTxpY503lelZpqPMWxlopppm?= =?us-ascii?Q?CkQCluG4Kmrn6gMO+k8h0OAyoLzVDZKCJE17eZ8Uedjz28oFUh3i8N5XcTtv?= =?us-ascii?Q?JsfKUkrGWDGgJyWdzbNjwL8x+sVk96mGYHD/i2k9ARgTDAQmfmR6pS23R7P0?= =?us-ascii?Q?BYmwfIs3dSY5CAJAjU0t/tvyj+7ZRf6wU44nEjmchRk8/2qDd9GLi6O2paIo?= =?us-ascii?Q?cRlzGHjkl06s/QOIMivJcF6Y3+MJ9y2xJTdePYu3wyXjNs2ZO5nUL/ZlvSQ1?= =?us-ascii?Q?oT0AOmIg6101oxN9zg/O7YX7ACtD7TRk+ksjQEaXnQCuAutT0bf1TOCmGQLO?= =?us-ascii?Q?JaCqu65KuZiF9tSHlrHQ1O91W5J2/blySej2X+7ttRI7CCnrYnxPfiHYvj91?= =?us-ascii?Q?ewRHRlgbe8jydNi/rLutsXe2HszRK1ywe7zqtdaBdUTrgwLqP4XoJlaeL9Bd?= =?us-ascii?Q?5fPefBC1Y838IJ2i//Zm6ZtmJIsDI1Bp9sONxabOutF/FKIINnGuj/rHiO4f?= =?us-ascii?Q?5PJgCBYr8Emk8fG6WtEEdVIJG1qPNmi+K5BMqcb/sSADHmb7P3lSrDAu88LZ?= =?us-ascii?Q?NIqe7oDTPHc6dAYR0rLikpU1rfeZYtpgPnzryYY53L5C3AT4DErcCdUxC1fP?= =?us-ascii?Q?bQB89APSLG+Rjl0xnsLiJPkTqrUIHhcEW6b67GDLocE82CwuzFvTzipAVluJ?= =?us-ascii?Q?xzpbRT1b2ivyhgNgNSZmNSyBLno09K0g7nCbf9UAsm/578fCBb7tqmOOZ9Vc?= =?us-ascii?Q?QrDUFaLzQBawpJ1uNethgihlXBw5Px6ieXfDjhxPGGmlqlGl12wH9uJh0TRB?= =?us-ascii?Q?7Kq7/Qh6Epn8DiTQ80b4s7xCLtHEr7riiYq3yhGgzDQX/kYa6p7949kPbVNP?= =?us-ascii?Q?qWAkY3fV1XZr5pOXFlxJLNffol+kmFep+kJehZeI/TLlc4rik0pDIcAXAARe?= =?us-ascii?Q?ihMdR5mDVOW+ExDwbv4GTY39qVJxe7ArQJnT4DTx5oWL8fw/rB/SmKgeb1mL?= =?us-ascii?Q?jo1cmAn9rgiIlz+4SbMrcb78diYsf+3q0JQ4Px10kM3eylQKt4lR93R6D8r+?= =?us-ascii?Q?+kTPZiU9LnHx8r+zvTPVWDJJ4KeJDn62pg0z4ROG8+/IVl2cXYtb4AKX6zlq?= =?us-ascii?Q?S5Fcrf+ufk1Lg5IrhyWK2aimQKueqs0coFIdpbMA7x+NBYECW+xT6ASOx85v?= =?us-ascii?Q?zeBP7lb86nM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0FtUtkdvER0l0co5fWJbGWR9G4Yv9sVHoCcz/XqGu6ffniPoiRd7PvJlOEk2?= =?us-ascii?Q?yoCazx070zmVI9yBzPejao6vVCuvAJleX9efjipxfWuOFEMfgQU+dwhUiqa+?= =?us-ascii?Q?dXP8WwLZu6q6EUIp6NgPaVMQOZ/2cx3zLw3tT/X63An5bMHqmayk732poU/N?= =?us-ascii?Q?/qBRacpQVyJ7AURpY4tDKyDf8tPlup7ifyEPOUAQ+g9WxeuwqCBgJSSO0nhy?= =?us-ascii?Q?koi7QANAg+X2CyUesAICbD1RaACEWgzvsgHiaIUE1JHd9xNGZiM1dzh47X5o?= =?us-ascii?Q?jJwc51H8sfU2zNEPtb+X8QtU7WAv856z7Wuztxtjor12Gor7xSI/UqIy5D9f?= =?us-ascii?Q?JNDV8oGlw5jda4kjGmKi8UwEEmfGZt/EP3OfyxxODqkBEKbt82lIf48wDQBe?= =?us-ascii?Q?z/wLns5VBTxqByoMOkOdVx5vOGui4ljmssEgs3eei2UCGCI5KyhgFaYuok3a?= =?us-ascii?Q?r1Vga/5u8mUdnbO1TfqgBiK7nuBSp3JXpqB/ATD7eb+AB0TTSsZsXkikbNk8?= =?us-ascii?Q?oUJQ/pYeAEqGm/+KXsrrzxWg8SUG8qvXLjUValFCZkzZKu+LCbEVGBIbGTsT?= =?us-ascii?Q?OrdTOgQpKYThqYHykRS9BY/Y9jRONoyeBL9wpZXbyjG6GNdzg9sEL3MzMpKM?= =?us-ascii?Q?ZF+sdC3B81zKnjDi0OVuY6bxqSNHpy7932NJdgznvNbTXBASpwWcS3akvu08?= =?us-ascii?Q?kj8GQyq9dqCSr1Bkt9yfv+O0jTW0oPVMKDENOc47ZiYdb/xVWDjfusviODYF?= =?us-ascii?Q?mMwTlwUpgnL/5C7l0VkFaPiShntU22OZoujseavRSsXZPd7/zQ+BOMHmCR14?= =?us-ascii?Q?X1ZduTI09wJ4AOL9CL7ZnR+RL7sHsU0b/zwSQt9502+ET1IZRZ+3m6zkMU0V?= =?us-ascii?Q?3hA/Y0gREeLk26+H+KqgsUwNbXNkU8kpZ0i0vVNSORmBrS9yoW/y+vxy6iOy?= =?us-ascii?Q?0xje4yrzxBNHR+jGDdqWNytKe/Mxo16JAm7l+U8A+0GqD2sDs0HlblScGsN0?= =?us-ascii?Q?eTN4bVpB7gxoMVjfVmGIIw7gtbk/aZFJEbkLnhM/WgG543NlE584bQt76rnP?= =?us-ascii?Q?PITaaoTm7OnkJd93jPYs8RjFIV/iMGtae5PzGCaB8roj7MzxO1QM+foqK8QV?= =?us-ascii?Q?hm4bkOZhiNgGl2L06USztsahbeze9daUIf9FjzdK9754GU5I1tvY91ssZbpK?= =?us-ascii?Q?Z4Jqb0+P9QuEfokU5NPgI9Ym3qBIorSQTx1yzz3fMr4SDCnIb7F/K/HOLaK+?= =?us-ascii?Q?XqBCLICT6n1Hw15AxdCJYz2PBmyf/y3x3vCBD4h6o1uuEEz9/SUgEauo6ybz?= =?us-ascii?Q?C2CAs6r0J4bt9irS4ber9Mt8rZkgnT54tk2YHMF8C9PcsnsOh2IRs8DdTUFb?= =?us-ascii?Q?2vgoOpYz5uH4u+IoEsVB/aO7tpsXGp1pLOXsNsB4VouRuo4Kb2Pmdyj9GWyC?= =?us-ascii?Q?qBZIu27/aQNmstIbLBzaFF3GYT5vClvGLByQIlGj+L152t29Jej8KlMV53XL?= =?us-ascii?Q?W9URAaMneR25PlTDp3JyVYlZFhAsmDG1CnKM1K7RaJVdMVa7BOhnkw3Jgy5+?= =?us-ascii?Q?UCMBScPX8C5HAqazOcfUxx6KVjaQoudVJDXyZDf5?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e9ffafa-8755-4ec4-36be-08dd7e93a429 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:11:13.6824 (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: sZntP0Dvyad/LNcWNsC1Xnu6aRQ0ybh4veio95WiSKYi1BE8zMCCLrytP6/BMZmWsuh1OdOi4SrNcdftuwsClA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" Uses of srcu_read_lock_lite() and srcu_read_unlock_lite() are better served by the new srcu_read_lock_fast() and srcu_read_unlock_fast() APIs. As in srcu_read_lock_lite() and srcu_read_unlock_lite() would never have happened had I thought a bit harder a few months ago. Therefore, mark them deprecated. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- scripts/checkpatch.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 7b28ad331742..de8ed5efc5b1 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -838,6 +838,8 @@ our %deprecated_apis =3D ( "kunmap" =3D> "kunmap_local", "kmap_atomic" =3D> "kmap_local_page", "kunmap_atomic" =3D> "kunmap_local", + "srcu_read_lock_lite" =3D> "srcu_read_lock_fast", + "srcu_read_unlock_lite" =3D> "srcu_read_unlock_fast", ); =20 #Create a search pattern for all these strings to speed up a loop below --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2061.outbound.protection.outlook.com [40.107.94.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 3471F21C195; Fri, 18 Apr 2025 16:10:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992647; cv=fail; b=lttKcVXu6Kyq4+LUn55hHqRzTmr6K7il3uckDgTU4HMFTFur6ijjdzhcFwc2yUTxJ+F4mZcfSnYmIYYSe8CfYTwCcx45X/ci2yjJQwvG4l5NP1nNy2BK5t5TipXSqDePkfyFv7Odq8epBktS8KKWuFJNFZJ+O1OJmddo67eoL2E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992647; c=relaxed/simple; bh=4uKQLHu9ErUqylJTYJa2qwPHIVmJendn1wsCwPIVucc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YYRS8C93cdF6QqGYsUDHa8RH1oW5/1m4xQCH3y7MSNVideus0Sn2smsb2SIIl3pr6YdW+S+o+SR9YDqjJhbLpx11VjawxxZDAAbuZZ2s0caDsOApQ/Z/pwZlnRykPh387LRcDdgbLymql+P7McTBEr6cAXH6YP++crWQLMLU9es= 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=HvWNoB4T; arc=fail smtp.client-ip=40.107.94.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="HvWNoB4T" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rh8Hi1oA/javOoNvrE+XJtDThrZCTc7Mm572InnhG5vvCjyWumUpnE5NVDM25vCkyKRb8Ms+TgJ+w8LV7oluT1QKwkKAk6QIBQPTM2Y/ki+3U6A8FypQvB9vv4JTcpEkcTFVzgvRAkZXg5RyPYITJoiCyiZmYKtJnbeijvq9mZq9Dh85l0j3SbiYMbyaZ+bgMcubwdZdxtsxAQBA1cJLZ60km2QhYBwYPpjhqeGZMyRwvgxcmgpN/TUPgNH695L7ll3J4XvUX5+0sH66+Yu6bDlD7SJ3G4xkGnxrYeI+hITJZETa32mku93RDkjyQaTLkA/OGok2FQnkO0n1RZ9OOA== 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=/KfwQ9RJMtB5Am+gQtSg3UVueRQOr5TpM0BRFUFqOjE=; b=SEpoaBxoKazpqV6NpcFBORJahiDH4JeLIG5MAZ+Mz76adLgokGs1tTgqoYvVdJTiuHcMlje5C9DRRuiU5mQt4NSqRfYtcvm5GngWSm2XA6PK3UJop4CzgCxxQeQysfOr721NsIONN/h+33RsYS2IVHrJFpqrBcQUSussm0BJDA0ZDPU2DaXjqhmjTSiRfPYmAdPZFgCggVcBQpSgaT8YhfxcSqvT1/81+9RrFcuVDWmum4Xpuh085e9cD0lrpYw56ngWkwRV23rlZR9I28+8FA/zOVGvW8av3UlMrs23VBiblFlc9NuAHqvSoWm16IL8Y8q5V3jpYifCC1VQ45SUFw== 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=/KfwQ9RJMtB5Am+gQtSg3UVueRQOr5TpM0BRFUFqOjE=; b=HvWNoB4T0QboY++A3xXfEDoi7CXny92467E538/fG3cRHDH8yChigExOBVcdEimmv//ZhaT0zvVi/9tKa6y+J1iSY32YZ3sgh+MUzpwHWYFm6htjkHwMLowTLAaGmXBgdw/3bUsX9hsLMgluV7ijbyj0gDlXBbUd0suumezJSDewUUHfSfDck3IoM3oZT4P03QgTzYZi0/3FyrPmQxPQ3K3sS7R0PZiw1pjC5ksHVzpnw54+bi75ksAsufTYWN10dWcZ04kqmUOC1emYWWcJ1KXR6ovEUUyR3OYFmA3dg+sl/CuS+dSDBATc39pxM7BK4EAI83R75/KIkC56D2r+ww== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:10:44 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:44 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org Subject: [PATCH 11/14] torture: Add --do-{,no-}normal to torture.sh Date: Fri, 18 Apr 2025 12:09:43 -0400 Message-ID: <20250418161005.2425391-12-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAP220CA0019.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::24) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: fef0e34f-36af-49ed-588b-08dd7e9392a6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zgGWPJ3rWI3O4qiuY268RaXWXG8Bui3euyvnDjnx698fXdYMwGb54xSklnIh?= =?us-ascii?Q?bAjxGw0lGXDgcS7U7MpYvc/nDx6f6eYR5oXBUR1ba85BA6ULo67dLPKFXXHq?= =?us-ascii?Q?aTorr/gY5oni23W3AjiBnYV9UWAC9mHKkzqVI2zBKT/XMoM1w7/5PEGVzv88?= =?us-ascii?Q?SxlisPEZ3mIX7Ki9FlGxllW1b21qYDcwebt2vJ5xPoVHnjjTrOhqdLXpeIuo?= =?us-ascii?Q?NcLYipn26nkC66KfoJ9PWK7Kz3R7qS3fnGaJGu2csJYRGNa1B7rnMeEXp7rT?= =?us-ascii?Q?0pe/CDIZcC+ZlhqNY4Rk8qv6wmxXWDdIE3g/zI3ArziU6Ob4hniS951RrPwl?= =?us-ascii?Q?1c/1C8G9VIb5L4MKOYwnx5IsB7/q7VQqOkkmfYm2VFFxwuQi/t9PptsKXH4I?= =?us-ascii?Q?Y+mzRmAwOPSkN+FelOKf0/fJVA/IoNuiSNbXLZKTCeLtOGtauVnxTMdB/ZHq?= =?us-ascii?Q?YDKf0PxPbKZjdvDDOJY5kqP8T5XVTMRfLUmMbrxBzCNeFaWi3S+a5yMDwYJ0?= =?us-ascii?Q?CeKm0Vx7Uiu9XKLehtbFa4jskZGoKYBxX/DE2MeaIU81BqaVmLcO2hBdL+QF?= =?us-ascii?Q?ZfZw9u7UF/66HefSXidWCmFa0v0cMczbA/1D0H0d5WgIEcOK0/cPuK8ks/XS?= =?us-ascii?Q?j/Enxnr//5ynlyMmpyKxLIWiQ4swkv67ateUdo1KRvWkrptpLJ7nD86lGmDa?= =?us-ascii?Q?XaxhpueCr9H0Jb7Oi8lerdvrAv1h+KcFvHeNg5UiXtR5Te+Z1T7z7zodMSWG?= =?us-ascii?Q?Qt92ejIz6lMHwXDwaZEZFrTVl5gsVRNuv4UsvtxA97nh6UXWDg13a9UjFW98?= =?us-ascii?Q?1M8ugWzA1rJgoncUR8vHkHFMsMMQPDck4k1+cexAqkrVixvHwfJbT5JWxnCO?= =?us-ascii?Q?Fg0Tr6Zo0t6eymCCTuuTQa08l4HpYZq5dr2ZZHtnxKpTy7iLUD9yaejSub/Y?= =?us-ascii?Q?W8csNDuCzMA80nDRxL1Oi5e0ryTjbdzBz9UVSW7+lDeOywv0fOmRZTWER4he?= =?us-ascii?Q?b/tpEAJ1x30Gjt9HamEYCABnuce4eLyqzgOczi+niDt4fkbjdW77QSiDry0d?= =?us-ascii?Q?VT8QxY90cs/vuXXQPg/ep6vODjlKS+4NEeXfsnK8E+PChuo7E67iyzmiPl4N?= =?us-ascii?Q?psn71mf0o7GSX6h3NZ6a2ImbxHiPmrRTL4aptoGaeMQmCYeF9DsLo/3sHoV7?= =?us-ascii?Q?Wc9OLLaHVCewmd7ds1bBk2I0g8Zoh1taKqMCWxXHxhW1TNiHHeE7d4teUiJA?= =?us-ascii?Q?6TTHsEhpBr4UcA1YOOBrhj0pcB+V+vfFtWUQ7CHRNULDqbJbshxE9FAQ/Kr7?= =?us-ascii?Q?WQWeBL087QL3FLHpxZdzQ5gq9LajWhP12uHHh95Cj1EjzVbQxOg+c8t9j5nJ?= =?us-ascii?Q?MoXunTdxU+CNuRNRjaM98pSbPR3CFArx7lB4pOdTSdSkk13UYBLv9sCWtRhs?= =?us-ascii?Q?6HcWzn9Ltbs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7frVH3U+jNJmvgpQQBkKP8JAfCZ86osjnrJd9bny+A9wvTLB+zDCta032z1x?= =?us-ascii?Q?tVtM3BeU6NBJCGxAPDThZZBiO+y7GllqW7YSoOs6Qwoki5mtjA8OgQG4ObdU?= =?us-ascii?Q?PdQk92PP1tkKkXuHf+c0moM+QlCt1IbtZBA5vD29qs1m61IDULKg8/T9LgK3?= =?us-ascii?Q?LB3Y89/4RqYjKQOsNDzHHO50xZXWWQcmaiMRBLS1yIgBrNzy2XYW61c/7RzN?= =?us-ascii?Q?37CN4quESN4CC550xM8Y308j/rdLvT3iz+ndANkFdxHYHks3ph1KgHbpwgDm?= =?us-ascii?Q?hrrETbB7e8BPPOiYlbKfHQ/sF1DT1rG/MSHOIyVlLtq3X0Pnhuw9X/gUR6Ow?= =?us-ascii?Q?m79LTJzbZTcfpCkFDO0klxJ/n/IKQRn4DLix2LzNmPc9kFgTEd5TEyNkL+rt?= =?us-ascii?Q?zp9bLqpZFahSaREYdPYTrOIeurZFRV+atudP5hhBCFmaSD/kSYXYOMYzWYv7?= =?us-ascii?Q?DKSa1u6z1b+cP8U+b/axTTBOUYWPRNfZSpp5tO2t3YYlew9ORaF/Et8CMfaw?= =?us-ascii?Q?45fWrK+X8lQUdQ9RxM4bR4/sEkPZtkQkQLVDOqy3i2yDyjyUkXb9s5BNepO0?= =?us-ascii?Q?2amG7CYpm7SFgHYp3DiayfpBjjgk0wHClzu78bcBaHbWnDVuonE3j7TFqrlU?= =?us-ascii?Q?HG8OGQ4ZTtQYr/gsdzjxedw/JRiyKh7ZRai+K+xALC/SprayW6hL3uJjfkB1?= =?us-ascii?Q?gs8kIyYGcPX55QKuU5Y9zCxEfNo4z6bDaDHLCcb0ePgB43RUcZaJmOxm46QW?= =?us-ascii?Q?OFVCSgavdG02EOM1xNILxwuYGL7nJJjS029JdUTCWGBDmKonCeL0J/0Ec/VM?= =?us-ascii?Q?8HA96yoI/SIvG7pcqxltMWyH8g3F2AO9mEibhHmS0iBpmrAaJTlTbiTRaWBY?= =?us-ascii?Q?tTqJGxabmuY+G2aGIhqTb0xAJTSkAS1E9lCqJRwDKNJZJ0M4K9SqFVMc2nXJ?= =?us-ascii?Q?ZkdMVfulE7iM3aW7p5cl5cYniPu17TwsUYQneK3aXv0ToKw8gfTv/V8KvEgq?= =?us-ascii?Q?+5vC5KAa/1LumHJdCCZOEPj+Zc4sDqPkggTRbJ6E4NAIjzly0oDMiKHsOANA?= =?us-ascii?Q?vU1iK2yJ2LRQiFDO2FfT3l6n3HGrtKQeySIoE2RORLV5msRYlEcTzMDJT/IP?= =?us-ascii?Q?jej0EmqGv1Tq7xVgfuQ9j72JDASaoEV6mqGCJmBIfJ5JcHT4eqW36DPM8fVZ?= =?us-ascii?Q?McxEFH5PppNMOMuCn2LFOh7qMpOkSjYotJJqy0E9VWOEx1f23Kt/uHGgbmij?= =?us-ascii?Q?XulcsAJWdmbQ58ePe1zRCR+eSnTIi4vshqOhry2URRxGp+4XloAFbspIB1Zj?= =?us-ascii?Q?MKVDCuIXV1hm2Masdfca8gLnoq4IvkHXvjgy8DBJwt/7wXvCwwdgyCumgPko?= =?us-ascii?Q?KOFLnPVb7FyNXy/vPX6TpgrGep4XfY4n37W4oa1/fqjIqTIDvVRAAtjpZn/Z?= =?us-ascii?Q?8XkcBCKoGpiDtaaimP5cC+YfThN4KvyUzZlbD+qJL8xp52sL93ZGfM7ToqNi?= =?us-ascii?Q?YwFzaZPRwORFVjDMYFXbM7cBTvSNmQDUoR7ng8eG4Qaj0lTMdsqrjywBd2d/?= =?us-ascii?Q?wVFqpDWQfOnk8mcS2/76Exbiu4ssfU8d9Am+rbhB?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fef0e34f-36af-49ed-588b-08dd7e9392a6 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:44.3066 (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: DNmoYD328QL/+a09quQ8V/vnR+ce1CPPY4v0YQe8Wzn/7vujQJEsUpJgLBX1U7iUYd/juQ5IGK5mzgZY67Wd2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" Right now, torture.sh runs normal runs unconditionally, which can be slow and thus annoying when you only want to test --kcsan or --kasan runs. This commit therefore adds a --do-normal argument so that "--kcsan --do-no-kasan --do-no-normal" runs only KCSAN runs. Note that specifying "--do-no-kasan --do-no-kcsan --do-no-normal" gets normal runs, so you should not try to use this as a synonym for --do-none. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- .../selftests/rcutorture/bin/torture.sh | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh b/tools/test= ing/selftests/rcutorture/bin/torture.sh index b64b356f55ff..475f758f6216 100755 --- a/tools/testing/selftests/rcutorture/bin/torture.sh +++ b/tools/testing/selftests/rcutorture/bin/torture.sh @@ -51,6 +51,8 @@ do_scftorture=3Dyes do_rcuscale=3Dyes do_refscale=3Dyes do_kvfree=3Dyes +do_normal=3Dyes +explicit_normal=3Dno do_kasan=3Dyes do_kcsan=3Dno do_clocksourcewd=3Dyes @@ -128,6 +130,8 @@ do do_refscale=3Dyes do_rt=3Dyes do_kvfree=3Dyes + do_normal=3Dyes + explicit_normal=3Dno do_kasan=3Dyes do_kcsan=3Dyes do_clocksourcewd=3Dyes @@ -161,11 +165,17 @@ do do_refscale=3Dno do_rt=3Dno do_kvfree=3Dno + do_normal=3Dno + explicit_normal=3Dno do_kasan=3Dno do_kcsan=3Dno do_clocksourcewd=3Dno do_srcu_lockdep=3Dno ;; + --do-normal|--do-no-normal|--no-normal) + do_normal=3D`doyesno "$1" --do-normal` + explicit_normal=3Dyes + ;; --do-rcuscale|--do-no-rcuscale|--no-rcuscale) do_rcuscale=3D`doyesno "$1" --do-rcuscale` ;; @@ -242,6 +252,17 @@ trap 'rm -rf $T' 0 2 echo " --- " $scriptname $args | tee -a $T/log echo " --- Results directory: " $ds | tee -a $T/log =20 +if test "$do_normal" =3D "no" && test "$do_kasan" =3D "no" && test "$do_kc= san" =3D "no" +then + # Match old scripts so that "--do-none --do-rcutorture" does + # normal rcutorture testing, but no KASAN or KCSAN testing. + if test $explicit_normal =3D yes + then + echo " --- Everything disabled, so explicit --do-normal overridden" | te= e -a $T/log + fi + do_normal=3Dyes +fi + # Calculate rcutorture defaults and apportion time if test -z "$configs_rcutorture" then @@ -332,9 +353,12 @@ function torture_set { local kcsan_kmake_tag=3D local flavor=3D$1 shift - curflavor=3D$flavor - torture_one "$@" - mv $T/last-resdir $T/last-resdir-nodebug || : + if test "$do_normal" =3D "yes" + then + curflavor=3D$flavor + torture_one "$@" + mv $T/last-resdir $T/last-resdir-nodebug || : + fi if test "$do_kasan" =3D "yes" then curflavor=3D${flavor}-kasan --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 EB71A229B38; Fri, 18 Apr 2025 16:11:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992683; cv=fail; b=Gb8MyqkmVDEft5kM5cDImWmpOxFitSz93jp4r+k5iXqxUTI/vF+oSnHZIkLJPb6Mz7fXYzjqQTYbevK6q9QWVAFQjg41AfkcwcJwxY4LWv5798WSzDqYcZa8venNgjE2E3SfZ14+SLFCgHW4P7eh2RpBJRzQqkHlidh4rFdLMVk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992683; c=relaxed/simple; bh=wD+2hf83OG2V9s+1/BD1svW8xAvsO0cZ/3ENfzPZ5nQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=gLbB+2cOyFjQdCfsQDLyx4e+d0GXUahppPXLLFoYXKa1lkW/xX7j4TvHyS61dk8iefVsDnhLe7mkISAQltVfooOY7mx2FEikrInAJ3gjkMlMxs9pNoLFwNpcLU8ZP9yd2UST6MEJkdxfYEJC9TYR+H/pQHsndzx+IHZAzU4PZ1c= 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=leCyWV63; arc=fail smtp.client-ip=40.107.94.79 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="leCyWV63" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yCMJEQv9eKQEswiBOIyW0O8B7t2o7ZbvmIHWi3VSZiWyULQ3KaySoSba5Pq8Pebb6OuW62QUZrZMY4MfAcGDDLJFGFjI8bSC8To9TxD+ghP7NZhcBlfnM+sK9cpGkf64AvEhzzR+3t+BlofJ3EuuqB3tZzsSuBT+pK7lE3EO7s/xqLeoEkymfd+ZJYUeh6g/didJYVQxNRk0NzWXmE9by3iUs363/3ee/vWBJwse3LUP2wpScqU5BOIL4ecPM5YQNk3FjUI2SLoy6icV58BwB7EI+32CgHop1B4OSEJwnjTZr6P3lmW9B+lkfTxNzkDd1R7GhnVuhEGB1E9WHMCjRg== 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=IF/aPlvKpLBODosPwdlZr5OhaVuAad6SClh4d+Fkvpg=; b=TUGcuKw+Cfy0ryGd2BscfSrflxBNen2Ro8peWF1abEgVsNp+pSy8tw+xJ0Q4cDxlYr87R9/ioyObmSZI3Ev06VMqU6Q7VPK+vtzxYroZrEUy3UNOT9NUM4isk0ZK6aYJRz4ftiiZv1xAM9HEvhwIzm4jfUkz0J3GqsnZtCsbmQG5k/sJGlbg3yTn0n9AEcFgFUDmx91Lvei9CQNKayTDNmgrpE0v9nTywKKxU+rM/hBd0eRFpZR9en1K8jGC1OJgRtU8C8vZa2zSZKV+6u3WQy1+H8VQgsXWA6E5zCb5V5ew4fXGwBnK7XkFAueXv4mr6MfmsopsOEiWLVLmiNGIAw== 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=IF/aPlvKpLBODosPwdlZr5OhaVuAad6SClh4d+Fkvpg=; b=leCyWV63Xrhr8/rL9ZHnEy5LyIqRCvvjRfJdEBP3ccNHN99k101TyshMo/5ePwMfK2D6DzXdgIhp54xX+UM+TvWcKAfvtfXSzjJK6nvV6eJnZ6Y4a/uRt7p7YMMJRmBu8o78GiBoZXoZA3ojHikYsah7bcbBBU2gCnPfjZkWxAyrdGTuYIqz7TVx80GnAyomM8T2airiZ/v+ynLiiiU7yW88taYxghafmu82xCxa0Zva/CciHSQprZ6fVYRN3DSp51baRY53u/KKOBnST4IvWxjnsf5y2xU+Z/WWX/E0qpV3psNXCZthKgYk6srWMn/4976P9BO7W/66mb+YwNo1HA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:11:15 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:11:15 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org Subject: [PATCH 11/12] torture: Add --do-{,no-}normal to torture.sh Date: Fri, 18 Apr 2025 12:09:57 -0400 Message-ID: <20250418161005.2425391-26-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAPR03CA0167.namprd03.prod.outlook.com (2603:10b6:208:32f::23) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: ef1f32c4-46ef-4bae-f208-08dd7e93a562 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gePRPSBSGZYtlBRsVOILRMyg0o6vUUmVP1z3YR3DMcpNKzdtklCPzgmhR8/6?= =?us-ascii?Q?r/OjTpCfDvmOStl4omHRAYdqb+aOdcVf4UugN9f8UJShm7KgUenV1UMBxifT?= =?us-ascii?Q?Qgq8lTFUpN5whqeMq/WDLhRMyqW0p45wwGy6BYBnbj1K2KxPWT2RtsR0hWuF?= =?us-ascii?Q?Psl/R8SEcj9GtUWmzd3RQy/nm37XQ63XTasgS/wEiBxqNhq+sQPYTunSVghh?= =?us-ascii?Q?Zz6/Tu8XDziPwe/pG4ASGzBcTzyEi4dlglezU+3/kaPwkFFxm9g6G7noBgpJ?= =?us-ascii?Q?WzyYSwSRq0pbbMRrOpCXbgp3W4HPo6BtU8toH5gRYXo7QirXpWRwEocpL1G/?= =?us-ascii?Q?RUjkDtFMpKC9d8rlqmagKsKndOq3xYWkSzpuvQGM0P+A2RTxFMlFaoLA5uIP?= =?us-ascii?Q?iwHcFPNZhL1V45urPs4tDpgBd/XukrAtKPXX+V2slYf7TcO3OBJvJmbUbEuw?= =?us-ascii?Q?cmJxDz5XP0Yt6RY5URQMl3BlesSPZgn1TXM1BM7/iToVh2OB404MKlsZnF7J?= =?us-ascii?Q?hQzAiGVUN0zgzwmkRYlUTMA3tSiIdrztMkoniB0poPE0EhOpLvCXLNgoCOjP?= =?us-ascii?Q?HgtVsnCbJg6UklWXDzubNrHa4ljUZk10Sv3ECVmTXKSxYMkQp2Lc9bjiqbq3?= =?us-ascii?Q?Ymp2sPb7aS5nuO6kQL739FTqYz09q5p4LU4oBDiVlnMILm7AUIcEN4dVu7bV?= =?us-ascii?Q?I+esUhkbcWL0YaGxa74PRk6QO4TECEgP61LEJOZkJCHpJvfoWEKy8gABYctE?= =?us-ascii?Q?uhmnqCdC6DIxHtdkSEJLljuEp2u/Pdth0zsud3ivPTvHlZWwAghJFt8Pehlo?= =?us-ascii?Q?KGAtki/H9Wg/ulCFpFGQTX8OSa3y3y+VJPXoiAXoQ64YGe/DWE85yI70o5yg?= =?us-ascii?Q?1si/kE2Fvs2SSXKenmkJduj4k4a+qLmF9hRxuOuFOOpfM21NREZ/Cy/s4rTB?= =?us-ascii?Q?shGm8vPzzT1TihSOIyBvuwZtpJeX0Mcx0r19KD8XA2uTE39aR5kTyZAQEAD8?= =?us-ascii?Q?DEVMCaFnQHNmph0TDBYYyxcD4kDe65cHbEm4Z3fPN8z13o80M0kIIdjZb7mp?= =?us-ascii?Q?FAGbm/zqegnc1j1uc0rmdO9pf7NGzFwdf6Hb1pp/iJPiGlRFNgfhizf8c9vs?= =?us-ascii?Q?SACvIruty17/lWLVRivL7MniRaFgkSSh6uzmhgtgs25IS8hmYv34ATHnJU33?= =?us-ascii?Q?pOSeKF8SuCmTpMbZtiX7kUINOH5N50gD45Rv3YjLY3gucFItXP/lox0+7i/z?= =?us-ascii?Q?vtP/Bs90NqX1GcFHeNACa970FfOudIguRbmD9+KaiENO8TTG8u7He2KTMYL2?= =?us-ascii?Q?7zIBV+VLQi2xEGPGCY6rL6LQEZaPsL7HNEYsTHjD+fBZFXi+W9F1vgnmAeKD?= =?us-ascii?Q?mLyj7hPj0i0kBnJMVokpyk67iWdrhg9aQOWbnCXKgIFGhkatvg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7sRfjUYpOEfkDTuHw4ZsdHR+Bx6vQ85W0cif5z3EdKiWCUVrlzF0FpF3LS9J?= =?us-ascii?Q?vDPONEx0xEEsZdsybw+r5dyvgQYWdvHW7BIOsvzHRGk96jfH4X11fEWKKkml?= =?us-ascii?Q?5VZksT3cD7QlkJqy/Cm56otXoz1aZ5mAgwrABuBHghGthYcObax1ycbI9Ugx?= =?us-ascii?Q?9QfXcNuC32X7yUrDdNqa/R71oiaak2xDlRfMWMBCt5Pl+xfhSkpgzQnr9ggy?= =?us-ascii?Q?io31lNuYuW7AU9cXeWz1R3W23EiSJpdMYhzPa70JXiTlutqrkQeFHbNsAkrc?= =?us-ascii?Q?x/tc5JuuIJ08c5j1hBaz7M8DXeY1Hof0eqdTZO/UUD7LVY9uavcDr6+Bd1vG?= =?us-ascii?Q?uWfZXACedvmAPtc6zIuQBsB9Gl9HQh2DY2jrnuepqsvdHTIZY4wvU8y/IRjp?= =?us-ascii?Q?hAuRhG5BnK16xef9h/dPsFKTjcQCy6D3LYdwLFaVV90B6RjTjEyWlGUEh3iR?= =?us-ascii?Q?vFlyHHv1EdbtQuobnWUcENJ1fk1xwNf4/koYoEDZdhmA45GGm1xzMyVOWzfV?= =?us-ascii?Q?thxkig9qEPsyXKrxZnuSQq0v7a6BUKJSB53vwiBkPZOUaYug9pTgt645+tSH?= =?us-ascii?Q?OBbjt+aWykls608gEDIUd5fNUJlqKcumJHxeTwq0bNIUKeo5hdnnlUSXuSKw?= =?us-ascii?Q?aPcii7CgLyJ60RrrH/lomnJkS+IL+lj2oxYCOshQue33Ig/OrJ6TSYsGNZCJ?= =?us-ascii?Q?0vc7nhxf7gd1bcnjYSkESuMnl+0cF95VlG66QpvbiYwiNqmxVPO/+H1Ru5bf?= =?us-ascii?Q?BuIxkyER0Kn7xvHo2/zjwc/iQdPS+/9oY0pCwRTouKRi+n+OZWHkPCLHGFXG?= =?us-ascii?Q?I8oETWLY0dToWmnInBZtwH42rfBqFjmdP0GaAilLG26tRQnmICLw1OYDjhfK?= =?us-ascii?Q?VHM3S2f98NHy1LdwHoeCvNC0clMdystNlVD9VLtRCiybjYMor4dzNvcDozut?= =?us-ascii?Q?R8i3v7VOJY7xDpVWg2p2PUdkBGSj+tNbxj+dPhMVwfQ3fxXVGK7nf7Ta1+FV?= =?us-ascii?Q?yNossisBpunkLf24il0a4UbvIPUtnPKjkKkPn69lVjSDn5FaWqviTB9aJNrB?= =?us-ascii?Q?LOUtmv8f3jedMpjFT4xDbTbc84PPwJlSj1UR1vcew1KWhvUhGHdVCSVMpLy4?= =?us-ascii?Q?OnjnE1LlYOjnpRnHhvk0rBBso90STQUlDKhIgAnFpvTJ4/9NHqx/xiGhLrdQ?= =?us-ascii?Q?iUwTU5w6opZsN6lNtw44DSkN1rsgkgbFVvr53tR1kgHa+mcCcwmebj80g8qi?= =?us-ascii?Q?RlHApJ8sGD20V4jZketJLpFRghRKBI04Nr5JuR61O8znOOREk/r6LtE0lswv?= =?us-ascii?Q?kHvix5mwYXK6GcHa+s40LM/pkbsrYkurzIf9gF5DpykfIrCSo0dCC99q6D6I?= =?us-ascii?Q?3tb4Pt8ig0kfWXeSNDlSK1fWcjUZvCHU8pbnfk/diDDaiM6ao39T69Bpo0e7?= =?us-ascii?Q?ShxGTGyI3eoW4OECEHLhI0WGiyI7rvDBtXNEfQAPgphPPXDVUzJsdoBxhYmd?= =?us-ascii?Q?JeejT4fQClYbGSol7gopNQUu1MZedY7hZrzD4TYJtoR29bpD4x+aA8exB0nE?= =?us-ascii?Q?ueJUeCrHYpsAXI2z3Vr+lLQ6mO1OB+WqcjwOBacZ?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef1f32c4-46ef-4bae-f208-08dd7e93a562 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:11:15.7565 (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: O5NsV8FurT0NOtu6zRjl02gJscS4BiLibVj93ZqWmXMVFrIIUZU4tfTVcLaC2DMbRtEu2/AOttqItrHi2EmPHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" Right now, torture.sh runs normal runs unconditionally, which can be slow and thus annoying when you only want to test --kcsan or --kasan runs. This commit therefore adds a --do-normal argument so that "--kcsan --do-no-kasan --do-no-normal" runs only KCSAN runs. Note that specifying "--do-no-kasan --do-no-kcsan --do-no-normal" gets normal runs, so you should not try to use this as a synonym for --do-none. Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- .../selftests/rcutorture/bin/torture.sh | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh b/tools/test= ing/selftests/rcutorture/bin/torture.sh index d53ee1e0ffc7..5ccd60a563be 100755 --- a/tools/testing/selftests/rcutorture/bin/torture.sh +++ b/tools/testing/selftests/rcutorture/bin/torture.sh @@ -51,6 +51,8 @@ do_scftorture=3Dyes do_rcuscale=3Dyes do_refscale=3Dyes do_kvfree=3Dyes +do_normal=3Dyes +explicit_normal=3Dno do_kasan=3Dyes do_kcsan=3Dno do_clocksourcewd=3Dyes @@ -128,6 +130,8 @@ do do_refscale=3Dyes do_rt=3Dyes do_kvfree=3Dyes + do_normal=3Dyes + explicit_normal=3Dno do_kasan=3Dyes do_kcsan=3Dyes do_clocksourcewd=3Dyes @@ -161,11 +165,17 @@ do do_refscale=3Dno do_rt=3Dno do_kvfree=3Dno + do_normal=3Dno + explicit_normal=3Dno do_kasan=3Dno do_kcsan=3Dno do_clocksourcewd=3Dno do_srcu_lockdep=3Dno ;; + --do-normal|--do-no-normal|--no-normal) + do_normal=3D`doyesno "$1" --do-normal` + explicit_normal=3Dyes + ;; --do-rcuscale|--do-no-rcuscale|--no-rcuscale) do_rcuscale=3D`doyesno "$1" --do-rcuscale` ;; @@ -242,6 +252,17 @@ trap 'rm -rf $T' 0 2 echo " --- " $scriptname $args | tee -a $T/log echo " --- Results directory: " $ds | tee -a $T/log =20 +if test "$do_normal" =3D "no" && test "$do_kasan" =3D "no" && test "$do_kc= san" =3D "no" +then + # Match old scripts so that "--do-none --do-rcutorture" does + # normal rcutorture testing, but no KASAN or KCSAN testing. + if test $explicit_normal =3D yes + then + echo " --- Everything disabled, so explicit --do-normal overridden" | te= e -a $T/log + fi + do_normal=3Dyes +fi + # Calculate rcutorture defaults and apportion time if test -z "$configs_rcutorture" then @@ -332,9 +353,12 @@ function torture_set { local kcsan_kmake_tag=3D local flavor=3D$1 shift - curflavor=3D$flavor - torture_one "$@" - mv $T/last-resdir $T/last-resdir-nodebug || : + if test "$do_normal" =3D "yes" + then + curflavor=3D$flavor + torture_one "$@" + mv $T/last-resdir $T/last-resdir-nodebug || : + fi if test "$do_kasan" =3D "yes" then curflavor=3D${flavor}-kasan --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2049.outbound.protection.outlook.com [40.107.94.49]) (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 A8E2B21CC64; Fri, 18 Apr 2025 16:10:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992650; cv=fail; b=mypHfzIl8rzMIdsjq7iaHAVqF/Gs5dNO0Ds/gOzL/4pTcsspsXxRVxgPgkP8eBeQvdpxsBUysCjvlSeNM0e2BLM5l4ZWCnWKJWFTcWldkikElihVFn7LtCJhJkIe68UNmj6e6jf54KgtU9WLa8WaJNa04XT27/oHENxOXXArYU4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992650; c=relaxed/simple; bh=B2IfNVHDv5xZoK7Kxgf2ac11w+Xt/RMn0+cXJnYbk5M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=oTXXcrqg7w7Poc56+AZ023Choh6h/8KudfjKqM0ufdqaQ3hU6xRfxToUj3iXJVLv/UTttQiU3GisVxrjH9Xg0CIraZHgU4JyAY5YHCGkuuuUpw8fkWS/AQJKvsXCfSZuN6ywjSMDEskvgCU8hLFHGnieeqq61XhFKRnU/ABXGzg= 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=k+oRolIY; arc=fail smtp.client-ip=40.107.94.49 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="k+oRolIY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EdwtqAe8Sp7Nu6IEVVDCDGpA1u68iManQ6pvU9dd9+rke+NBkD+AZpLKkuq7g/04ZC6nKGhk2mpmryfj77Msf5e0Ru4EZrRx7iPs23F+IAgfj5w/hVI3b9ZC/VILJdHZLVgXIchAFXbaSbBJkQaSx0wa5L/uzvatcTDZHbcB7Lg1kI0fNxFENtqENh/EI+ODT16ecWMky/knAqfFvcpRIIo94Ij52lBd4DllU9+w77GsmWMFdYZtdgN4fNnc0OJ7kFgy+vdbOpvwlhdTjIyvhtzFzeVDiXdysEmpFKZ1rWUZmz8l3wsur78WlnsxtkQFBVlEhOmCwIY16c+CPAk5+Q== 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=FQWODUaNmaa6BcJPz1bVkgvzg1YNsZunAFGHltw3IlU=; b=cKYoZvHtvLi8jsSkztNn2XEi2g3TI1wvHYiQQpI0VWT3AOszQe12KovK63gElcAUFrwpwcYiq2P1c87YWxgoD3GZJ2JSunlo4+DNmZ6o1picEOQOfTL1gGyWykDmeC3RPSlVk/Iv0UjTVeMWJjJ7MwsUAvnacOaNqidUjiBIL3k0gkUXXfGjTuk6FeLIGFJqRkMcITsmmlPE002Oq6BJ6KuHDf6wpOTq0kRuWEm1aW8GMOah2W/rhjbHiLgdPlJjIG3D90LyTV7qE+Qv4tikPWsaVnr7gJ3U6jDm8LoHa7x0ao8yG+OzCcrKZg/b3zHf2rBv5onkUyGBE5KphghaHw== 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=FQWODUaNmaa6BcJPz1bVkgvzg1YNsZunAFGHltw3IlU=; b=k+oRolIYcZPBN5DY/AiIFE/durbnR8usLU2Xi7N812s5OOEBwCtMu9AFmxlt+aZPp3aNt0niF5/CrgF47eMNLkuFSOR+RG3H6hxylLF9S2gITjrWTtcEw1ZBg3CYpyTwwgraaSGn3r62rzz+3Nc3xqIAq2eH9DYIndmxEX+/I35XOaLh6lL2ss9JRoyDPMYOt3d+Se+ot5+RL/nxt8SaYt+HpBpUp4CEOCHT8WMS2Swd+TPvUtBfBIyemJDSmNPRl2UH46gDujTT+2k91wz4XNO+7cH7JjGZ9tgId6G9vmhkC5sxTHJXEW1T0pPvvMOuKl4llC5S12bErkGjBf1nzg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:10:46 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:46 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Subject: [PATCH 12/14] torture: Add testing of RCU's Rust bindings to torture.sh Date: Fri, 18 Apr 2025 12:09:44 -0400 Message-ID: <20250418161005.2425391-13-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0072.namprd03.prod.outlook.com (2603:10b6:408:fc::17) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: f3563a52-9a78-4b04-8595-08dd7e9393e8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9NQFMHq8lcHbbIYzHWoI9CTjylgS0vZYcyiZvL7K2ImAGFzS11E5268U2lnw?= =?us-ascii?Q?cjyOKt0J6r/HNMyn11Q/dP7eTQ4i1ZLmobnB0/L8neiw3AuJFMhfdq9wtyNq?= =?us-ascii?Q?qjKjBLjH1K14zM04uKAebfo3Zg6SOEMDMwAW9/rEykM0JCEUyiTRA9wp+0Ga?= =?us-ascii?Q?muupyZSYuSzB1hPRirvAk3wGKrsQFkVrnY08nwt8O42XZdkGFnRWuAYllHRU?= =?us-ascii?Q?PWyLoXThvU+hFkrbmoR38yowEapnvHIjajRpPYp+rUaSpOWgkKFgyrSKbcSz?= =?us-ascii?Q?X8lqrcmGh03v+rf+r+wznO+T1j4u3SqdSUIvFgoX+EI1appAYSn1Bu2cnBP6?= =?us-ascii?Q?Bu5tUu3Wow/jJOubR2VMvq2Vw2H635BUgDeWMLF17RFfIDYQQlF2i1Nfoijg?= =?us-ascii?Q?lhfhXsMLmW28dguFjRhatBbuAd1n210YPEO8bOfS7nyEi1zX+VlEHqPM4V/g?= =?us-ascii?Q?vvdXfRiPkfTvroE0cJ2bMX8XjdkVGX6WciAE0VcIF4AZLjoXEPNVt9bZwNZw?= =?us-ascii?Q?GFEb2uXhoi4ckMAN929NOEpCTXQf9wrl9RM8dZv0nEj78/BA+NDlNQNnhcQj?= =?us-ascii?Q?w/Q3KYSO+ph28tIh9VDU6NB8gwoX+UXk45iV01tdCdDPO5Fx62juteei6MZH?= =?us-ascii?Q?rpS0AU4g07NQai+jMLQJ9tprBMerNv6JJYEFT+dBVSslVfKVlazMGcqPtRG7?= =?us-ascii?Q?FxTnDswLaoQQyzprX5zCvePIx48s2uOjvCtube+epthNLA6yDKEtFmkwtvgB?= =?us-ascii?Q?7lsEVm0ZCZbMv/ildnFD8G5LayXj4e9sVWM7hZAfeJTVQqPLYg+4pPtJ6Sde?= =?us-ascii?Q?KLvBTzh14Z4JXA7QbzWQDlriwVHDsZKIeaEPj5TnEtJ97ES4bl46pHan82G+?= =?us-ascii?Q?0P2fN37y7jO5ERNBIN3aT6Fn2qDnXhlW5WWtQCvkKwU9cwkdlWsIJHUIQsMM?= =?us-ascii?Q?rzSG4mnb9PLnLjcrAy5IJbnaWQVj+W0JVgkaLIH8LcxpfwdLrNBmFyJjx716?= =?us-ascii?Q?Nor2f/ndLX3eWxV4bq52tmcMJ5zdfy+LzpRyun8+cuQ/qj2EZhn5M5klxhWk?= =?us-ascii?Q?y/0VngxzLKsp2YWjwJSW2hM0gGZvA3IKcj1p9MRWFy0vPO6Lf4Eq5g9DvEXn?= =?us-ascii?Q?6Hct/mZu01bC/rXU0CNdIA/7OjIMqe701j3zy1AgNZckpeB6egSDx+xpy2Dc?= =?us-ascii?Q?cOIbSFErPHYFpBKGZ/38F2HidMGpIdgVwc7a4jxwvF/r6XOVjaUFFxEYYpUQ?= =?us-ascii?Q?6XTXF8oRaQpwp1Vt4pC0wWDyXfsUKnpSFh6sNxPnEk1PMu/9HURyPvN9eD9v?= =?us-ascii?Q?ibtCPnvWQWhAjg4fKYBqVHiIqHg5YmxdQOj4frb651/92s9CI91V+t60T834?= =?us-ascii?Q?sVptaL7TfsKdCO30RzPW4ZwXtuJUjh8CHrt5aSFsQHY2u7a+VLAmTg3/YQ4C?= =?us-ascii?Q?PKwU1HZOfirx3kx751trsJF5GllSiCXuJZMVeGGI9feMBm+LUXQTXw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?i6B31siCP2pI0FVdJL7cZEZ/+BGPrxsuwJBXJjYqZity1pY88UtzqnxY7cLx?= =?us-ascii?Q?aBlyfbfDZhuZR417X103TvIzbr2A4H+zFJ3KnlPqA1v9tx789B3lmRDyZhJk?= =?us-ascii?Q?5m5xnW7T3kZ4WvH2RmnesXv7CP922WQlQDNCV2lGYQ20KpOwnCRZ0MtGUpyw?= =?us-ascii?Q?Xc35cbq67IjIH7pw+xmxGf83B9XyqBcA81o7O0j8aF+pQe0dDjQ3cABhSX4b?= =?us-ascii?Q?MILXly52VI0QJRHdo6cNm4Sn/fFjIrFJCCqz/B3JC0nLw6dbOxPEikGLJ5t2?= =?us-ascii?Q?KgEfzJ8qtiZrYp9vRDUwLJr2CBoESl35C2Sn5wWcOGSdhasipt0YzeimQ8hA?= =?us-ascii?Q?ml2MHJYZoCENzatN9BQ47al5DykocY/jVBc6scpynBGbEFV0nsCZjkuKIXwC?= =?us-ascii?Q?/fRja4ZCfjXUHft8Se/nSmQs19uj3FKmAtx8nD0rZ0jooC83ALzhwF0y07We?= =?us-ascii?Q?L0l4Tgrxlb2uVwbBw4OP/Fefxt3EKV7/VDCHfVXeTrAVMsw2QEUrwZGIgfKT?= =?us-ascii?Q?SnIiSiXwL1IYwrRnMGuItJWr2fSSIiGjimNLFGs8e/MlRStdL90TWcouIdGY?= =?us-ascii?Q?FwwhJxwQMeSYibvYuyIvj/hifZWdvPKMHW7mcKtQNGORw+aSDVINPbUN1qwI?= =?us-ascii?Q?qUidKLQEo2iW/+R/MuRYNLWB5prJ5BYVrsagWYEwEwF550EWQiceaqcW9HvC?= =?us-ascii?Q?yQ4IlAu2BCexjyMD7zeUD496v4IbSu7gH4lusZ8TI2vGMUKcp5Elq1ZQJmgT?= =?us-ascii?Q?Wh7mqoWNS4Q/2wCVUXrStPc/cEsbtjkNdQLEtmYJ8coIpWqJtUk768T7Spzy?= =?us-ascii?Q?tk5wvKZ4O+o+9MLC3OfeEWYZ3lEZSNrqYA3UCltOlJqtCqEOab6hdlKvVsc+?= =?us-ascii?Q?LdE9iPCssNQCJSZorhmGzXe5WCGfLQ6hS+FokGZXUA7sL+9nv+kR58SNNyYc?= =?us-ascii?Q?a+DZzuKjX2HkzIwBEqSl/c7fk9ue1DtiSDAUVkiSujs6iOCk6OzI6bfRJ4L0?= =?us-ascii?Q?7Z7y+Cmjm/YbFQl6kjkr2127xxEuNkqOMdgPuIEqgQg5+fal4uwQ5ft6dFKI?= =?us-ascii?Q?2GSvkiZlDRAQNqEQ8kJ3pa4yw2y7qUwk3sowDjAs6nVaTAG/CY0oPHF161j2?= =?us-ascii?Q?M9DupU/fOXExKPZ7O/4Zdg8/JzC0yP2Lf6tPQLSolXi1MQK4gGnT0m+UdbpW?= =?us-ascii?Q?F7dKDXREbVM0FWiAf+yOj9xH9oiVWVTFvdh4e+r305AdxNZ/kPH0rGIl8C0/?= =?us-ascii?Q?NO7EzKEcl2OWMaPIdMQjva42SX+wZDd3c+z6yt0Rp5CStTmTZtI9X+XnW3k5?= =?us-ascii?Q?q9zL/0K2hOCfevlO39bV3KFMFS4Bcekd6Hn7UH01OKMATHWgABhzFShtL9bg?= =?us-ascii?Q?WVKpFy4Zwnj2PYOmuLXpuTig+LOndm+DXeg4uIt1G0FZZM51nR3MhFf+Ah36?= =?us-ascii?Q?pxg1odW97sd0dhvzPjmLkvMTYJmuIjtmCil5rcyxUb2qKXfFO8cXUh9flMzv?= =?us-ascii?Q?BtsFEXjQuZeYCeWHUxUEe9fnHFyRrfgIM2GM7X5Mh7g6r+soAIo9JAS3QMU0?= =?us-ascii?Q?mtHqvjEkPo4gJJ5YnZBH4/vur4g+s1swCo0nykTM?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3563a52-9a78-4b04-8595-08dd7e9393e8 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:46.4344 (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: NscfphxaJ/B9UST5EmUqqN16uRQdNgSQf2cX3AGElEXBHAyYX39+UjFUmaJVSv7zOKfgsVtLvoirCMFHxbnSuA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" This commit adds a --do-rcu-rust parameter to torture.sh, which invokes a rust_doctests_kernel kunit run. Note that kunit wants a clean source tree, so this runs "make mrproper", which might come as a surprise to some users. Should there be a --mrproper parameter to torture.sh to make the user explicitly ask for it? Co-developed-by: Boqun Feng Signed-off-by: Boqun Feng Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- .../selftests/rcutorture/bin/torture.sh | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh b/tools/test= ing/selftests/rcutorture/bin/torture.sh index 475f758f6216..e03fdaca89b3 100755 --- a/tools/testing/selftests/rcutorture/bin/torture.sh +++ b/tools/testing/selftests/rcutorture/bin/torture.sh @@ -59,6 +59,7 @@ do_clocksourcewd=3Dyes do_rt=3Dyes do_rcutasksflavors=3Dyes do_srcu_lockdep=3Dyes +do_rcu_rust=3Dno =20 # doyesno - Helper function for yes/no arguments function doyesno () { @@ -89,6 +90,7 @@ usage () { echo " --do-rcutorture / --do-no-rcutorture / --no-rcutorture" echo " --do-refscale / --do-no-refscale / --no-refscale" echo " --do-rt / --do-no-rt / --no-rt" + echo " --do-rcu-rust / --do-no-rcu-rust / --no-rcu-rust" echo " --do-scftorture / --do-no-scftorture / --no-scftorture" echo " --do-srcu-lockdep / --do-no-srcu-lockdep / --no-srcu-lockdep" echo " --duration [ | h | d ]" @@ -191,6 +193,9 @@ do --do-rt|--do-no-rt|--no-rt) do_rt=3D`doyesno "$1" --do-rt` ;; + --do-rcu-rust|--do-no-rcu-rust|--no-rcu-rust) + do_rcu_rust=3D`doyesno "$1" --do-rcu-rust` + ;; --do-scftorture|--do-no-scftorture|--no-scftorture) do_scftorture=3D`doyesno "$1" --do-scftorture` ;; @@ -485,6 +490,46 @@ then torture_set "rcurttorture-exp" tools/testing/selftests/rcutorture/bin/kvm= .sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --kconfi= g "CONFIG_PREEMPT_RT=3Dy CONFIG_EXPERT=3Dy CONFIG_HZ_PERIODIC=3Dn CONFIG_NO= _HZ_FULL=3Dy CONFIG_RCU_NOCB_CPU=3Dy" --trust-make fi =20 +if test "$do_rcu_rust" =3D "yes" +then + echo " --- do-rcu-rust:" Start `date` | tee -a $T/log + rrdir=3D"tools/testing/selftests/rcutorture/res/$ds/results-rcu-rust" + mkdir -p "$rrdir" + echo " --- make LLVM=3D1 rustavailable " | tee -a $rrdir/log > $rrdir/rus= tavailable.out + make LLVM=3D1 rustavailable > $T/rustavailable.out 2>&1 + retcode=3D$? + echo $retcode > $rrdir/rustavailable.exitcode + cat $T/rustavailable.out | tee -a $rrdir/log >> $rrdir/rustavailable.out = 2>&1 + buildphase=3Drustavailable + if test "$retcode" -eq 0 + then + echo " --- Running 'make mrproper' in order to run kunit." | tee -a $rrd= ir/log > $rrdir/mrproper.out + make mrproper > $rrdir/mrproper.out 2>&1 + retcode=3D$? + echo $retcode > $rrdir/mrproper.exitcode + buildphase=3Dmrproper + fi + if test "$retcode" -eq 0 + then + echo " --- Running rust_doctests_kernel." | tee -a $rrdir/log > $rrdir/r= ust_doctests_kernel.out + ./tools/testing/kunit/kunit.py run --make_options LLVM=3D1 --make_option= s CLIPPY=3D1 --arch arm64 --kconfig_add CONFIG_SMP=3Dy --kconfig_add CONFIG= _WERROR=3Dy --kconfig_add CONFIG_RUST=3Dy rust_doctests_kernel >> $rrdir/ru= st_doctests_kernel.out 2>&1 + # @@@ Remove "--arch arm64" in order to test on native architecture? + # @@@ Analyze $rrdir/rust_doctests_kernel.out contents? + retcode=3D$? + echo $retcode > $rrdir/rust_doctests_kernel.exitcode + buildphase=3Drust_doctests_kernel + fi + if test "$retcode" -eq 0 + then + echo "rcu-rust($retcode)" $rrdir >> $T/successes + echo Success >> $rrdir/log + else + echo "rcu-rust($retcode)" $rrdir >> $T/failures + echo " --- rcu-rust Test summary:" >> $rrdir/log + echo " --- Summary: Exit code $retcode from $buildphase, see $rrdir/$bui= ldphase.out" >> $rrdir/log + fi +fi + if test "$do_srcu_lockdep" =3D "yes" then echo " --- do-srcu-lockdep:" Start `date` | tee -a $T/log --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2071.outbound.protection.outlook.com [40.107.93.71]) (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 6294522A81E; Fri, 18 Apr 2025 16:11:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992686; cv=fail; b=qaSWsKptimfsRXm4OgERWgstMu3vJPEYWCRO/shHJ+0HPfCgIej5Y9NfXTdAcEvFeAFWZScMuslUhYPCqnXu8bEczxg7pzftni67dFtduJtL3l1A1LXCQZh2D9RRqeq9InCYMaI64IgcZ9/usMEnz+FcCYRQW9iOUtNnldaDuXA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992686; c=relaxed/simple; bh=1pNIOSwVlcx74oHBooiZZQ7JFRmKzg0JM8bjMi2JezM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ApCutObvqRgtkeGTPrVgwRRgjL+qnwWCD1C6//7qtEO3c+BKizX7eWsUTBL4Fu+dXk24n0BlKRf2dfWMVLp87L6qmrjNwc7S+590kErf8N+Zrle8BVScw3qd43a31kCt1B0F1GrQQkjRLBiAufLPrZynK15LI3YdwQF7Rh2xD+k= 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=TDpxIXfK; arc=fail smtp.client-ip=40.107.93.71 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="TDpxIXfK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QHXKBrbeC8AY2KZbB5eatu9e2IQNjjgy5Aum1QdC/2Wf2kDOMohEmkZ60J46tYB0rvUnlmNfmMGyXSJEPzz4ak8p3V9sSzKAxnf0Ai4FcN6InQne+tRoOiK2ZqHwiNAmxn/GQHXyTWfxfmfj15O+nRmApNuVQXj/7Adawrm7ZNpt9fhWKPnvcONQ02WrMbo4krmO6rCfXvXiQhswFQC25bp4TkrVrQgIDxVuOyGzHhb8Kjwu/v840f6OxMaAyyKPipBLxxin6VUqoAJ+OfBumXlHPQ20565jGat8jmq774n64b3zBZJBuNYK7amAby0F4ChOKCvX1k/puRfwov2iSw== 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=3WReI1uJwFhOyrWHr5wPh2PS07rRsGdVVD2iitr8WYU=; b=wXVCBtkdzgtQ7LS+xcTj4ovBAw9KpAyqxIRIg46AZeN4UDc52mIhgVlS2GTUKtBMin38bsrYwW8pMMJJ2Z43pfqGGVtO0IuJ0nu+zVswXpw5iyqvuxTE+RFPjVcLH32os5lDJkWUCq0iNCuhIR8qmRwBjlLL+Rq3NUwxqfaFfJoocHzSbdDY34sKDySQlSOLrwGiNmBeBv6VU8yYwUW/EYsNH+iMaV6Ftfk/lnGq7c+cE9wEnwBwMJrZF4VP1UQ9YOdE3ftZBFRIk3JmvybD8q6YyqRkrfysvJobvghneEqhLhEBf5IYlSNTuAuy/ancB5z5D4Y7Ki5tcQIa+2SwkA== 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=3WReI1uJwFhOyrWHr5wPh2PS07rRsGdVVD2iitr8WYU=; b=TDpxIXfKpNI235XBCl5EUb9y1TT//ORDmptyhqOOowZlGpsbbQODmvc6IBSSMA5BCLb6igyqK/V2zKNvKLU99RUUlv9qvub27CyE3Ea0XebMZ72awZ04WTD1RB4Fdu08tSdOeiEnJyL7mxA03ucz1tFX8MGXDyX9mWu5imo2BTScXVDll1mP+P859UV3qylWAgjDDTMteCdVbPMVor9rt8IlSyrrdqALGHDMPO5M6pLeaSnpzH+R2j5ynPGH8xos6O7GT71Hy3sJe/ZtKIjgjyAr7N4qdEvjuMG5v4g2irla3wlYScamB5KZg1QkoI6Z6iVSOQp0AJY2ZXbjQdnVxw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:11:17 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:11:17 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Subject: [PATCH 12/12] torture: Add testing of RCU's Rust bindings to torture.sh Date: Fri, 18 Apr 2025 12:09:58 -0400 Message-ID: <20250418161005.2425391-27-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0P220CA0010.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:52e::20) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 084bc372-7dd5-47d7-ed65-08dd7e93a6a1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hnry+nqOgep/MqVVs8DK8PSLXjUX5roFNzlRxtZmkT0bexJOsJMRt2RRuaJ7?= =?us-ascii?Q?rOKWg2WjZ6iLNm3z/w+JGIOMs3jUAlLpzxQ1onTbE6CN8vMJLUm1XMS00cs7?= =?us-ascii?Q?+Tyy2ZI4OlZU/OJ3FPMC3vNvaeHUbg+ovm2ewnkN1Sq2FTGol09bzZWL2tnL?= =?us-ascii?Q?acJEadm5IP/nvpGTKZ4daLTO/w0eVY40Vj3LheFYdS3aL46QCPwzJ5iXDGoF?= =?us-ascii?Q?EoaupIethWaPK/khCoSOPTymGgWAOnEtjKozDeW02vz67ay8mByTOi1V4eAK?= =?us-ascii?Q?5jbIuBd/re2iP7GNqMcq+j7hKwpJ/O6OYdBkyX/T+Fe6WdmC5nSOfuU4SxgB?= =?us-ascii?Q?zBob4Injb5Mo8Ht0AeIUuRj70ubYRxtMgYW8JGmprE/XwzIHf3BQI3OAf6y7?= =?us-ascii?Q?+LiJDCtfw6jHj7ktG5VOdMivJqgf9QuN3MTDE6KcPPPwOATIjOAskJs10bpH?= =?us-ascii?Q?MRF8maiHP63SN32gQTKeJsV7+at0qSgObzox00SEGylPoWQeSSiJ2sgk2hbi?= =?us-ascii?Q?+3xo4baEAL7u7wqwAsfDFJDh24xtlJiB8JIi7TpC/koyZ0taunI4Tx8Uog7S?= =?us-ascii?Q?eif+Y/IcHgZI1XLYbI0kfr4wpbxeD1R06WaX8zcd0xJSrT0poFHkaiqT6G0B?= =?us-ascii?Q?NSKC9iQnCTsvuo6VLVwpqdvwIZPXfBHtcjuKTtAiJ3zPe6VXhKxrz2Qa/L5d?= =?us-ascii?Q?UjigIoc8w6NcTBUb22R0Ziw9qCItdKALgwjKt6s2gUinhrbHRujIYiwAn2dC?= =?us-ascii?Q?BLyjJboDE0mhgWmsgs0Yr0YtdKo8WoQ7PzXRzzAgb9O24Kvcj8xOCBQuaRDm?= =?us-ascii?Q?C+K1njQKYnJYqq/TGRpPK+vw9sGpaHNvmz2q4Rau9yENHGvIoyeZ/KIJG0TZ?= =?us-ascii?Q?JQpQXOrW0qQAinkxTjhqqAoR30PfKja+9vBmtSxVd1MeWOTUEOtSkl9ju7D9?= =?us-ascii?Q?0GOH14wpq1A2pztTb6cDkkJhd/vGftYKnb+jxgf+hCvQ61/63WobdPEzolry?= =?us-ascii?Q?F69YjBMW4UNz2JshWbh9c1r2pHAf2stkZr6bivIL6GM5o8uqNrUOwidUdo46?= =?us-ascii?Q?YCPeZnyf0HLIJgL2KlxcZJiuWAoS0RUc8PMjQYOzTw4++Y4ZPbyGo4ccMFNL?= =?us-ascii?Q?yMcUJWhYlp3OK0/NrBzavPFpn6OqWLwctEu13no+co3mUtZCkxuXdPId+/2e?= =?us-ascii?Q?fdLLee7n94RADNW6J/YjplI8vyez+noc1SZMVGXMfiyYc2OUEn9rbA1HrKtF?= =?us-ascii?Q?qjrR8oSZfof1grGRHgDx4/ob1NctHeQK/rMlu8mPmC+S4dJOnvP1ap7tebXZ?= =?us-ascii?Q?9eFh0K+YpOXWbMVh7822pe2HCqhmuFxvSTIGjwij3cGBARi1vH/uO5unqK+Q?= =?us-ascii?Q?4W9gXFryV91jucNLNXxYyJ2wUtXD9V1mCfDMDHB/lrD7zxFEBrUWZFHUPdUP?= =?us-ascii?Q?My9U5fhVI+PX7ooWA/bltyNr2wKpYNw6CoN1rlIcfLifctUlznO1rA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?n+8tyuSgVD8srbW7Nh1+gIJoeVBrx38H7kMiCQvecQi2XSghxo1OPa3D74G7?= =?us-ascii?Q?Na4SenAYG9xTdvWgz7YYIZ/a34RoCjGkv2GKmn21bEpjytJ71CP+fVVrv1Wo?= =?us-ascii?Q?rrxR4Flo81MQfxfOriGPk/H6uxq7P8u3uIfQgX8cHdak5TIU0pqOqOo3/lf5?= =?us-ascii?Q?D57B35I16M3cq5nYVDZs35CjfH/1XQGdXZvZrrdkHK+bZAGmSLhvxefuPw/D?= =?us-ascii?Q?2/cHiC2wLbmpXEskWTEIMAy+OxshB28CYaReG0/zCo4cW6JwNGTccaNmOt9i?= =?us-ascii?Q?pZtPxZ9idzXbYJWJqkq/VXIEtKSYEadcAdKldXUR+ws9urNeN8CKOguFoDxr?= =?us-ascii?Q?tArl7cDdlATpSkkNWjbcRnOi0LXl5gTwctN2gLrhlVk+/V3xnkdxZrwd0V9B?= =?us-ascii?Q?/LXP/gRJE3e7jMY12aJrERnskusRhfeEQ4th4Y1ZuokyfxYJ1YT5qvnNgV1/?= =?us-ascii?Q?Z4xesyGR6V2uxnB0L1lX/Apbx6OnbQoa5ApbC0NHdRPvrwudxRUwrq15H3gl?= =?us-ascii?Q?UCC4EAzT/lyTDy2rfK7pdojPFhRU18130ZxKQTYfq9v+YxGAxJktz0aNPhpZ?= =?us-ascii?Q?M7Nz5pE7WkHjXzr0N4MMesmn2GeKJjFhMhWPsHTJOvnuHVGb5eKcbj8nSwlr?= =?us-ascii?Q?R0KzTq2yeHn2xvUEdHB7p481NV5M2qO22QNCc9UD0PF3MYpGmFB5bpnbaT2m?= =?us-ascii?Q?IFShFBy+kZLXrNNs3kdfG7DBDcBBoitwfmxDQIi6/awwALiM4hJukoQ4NgIi?= =?us-ascii?Q?Cd4SFriTKIhXYSdT/8oNsspYQxGZS8NVuY14CEX9+x3P5dNcxf5xx6aisSI7?= =?us-ascii?Q?rzPasysh5ao2Yd86hWBzZQcd8vPgznF1bzLHAY3IRORO0HPkGytUXv13cAhP?= =?us-ascii?Q?a9h5RvxhJnyzEUV7XdHGazxdGrLsIYJX3G41m18xKfei76vNzkGUuX9rCrIJ?= =?us-ascii?Q?fmM7qKiEYZl/7ezszzcMmAr5YFkcSwrc43uIjY/c7ubsEExA+jskSp3+dvzh?= =?us-ascii?Q?jcWXoh3/U9mSG4PopAlCTs6g0AXR+89klXNuEXNqAQGVReWqP4V3Fwr36e/k?= =?us-ascii?Q?KJrNAbUlpn023TimNNSrkngdlx13rVx15v4CIuoWETIVdibughKvLM3wmdsR?= =?us-ascii?Q?bbGsz2Z47fEtNwK64WmvClN46tEJ8QV3etpcK2WENCkkRVTn8qIsjhROx6e9?= =?us-ascii?Q?KdH8usjUgqt01r8Mj5/QPCFudFxE4i38Ec6oMtOVl4mg5orubxuLdRDNzIvu?= =?us-ascii?Q?/lYXfmh/z4qS8uEra7wOC58WXAvhKSqhUNAalRfp0YDm6graQkFZUli/U1Hd?= =?us-ascii?Q?ewDgPVDtKqzpjRNJspNwZN3XAKbfROmDSD8QZrewirLT/nQ6GnoW+PsH/rXH?= =?us-ascii?Q?cgmvhLTa9rYbhHB54uDSLdTR9gTUx5BSFFQh9KYOdUZPdP0shRky/1r/GePo?= =?us-ascii?Q?0GSPTUe0FL73L9E6t9KuqUcaNgtEH6ZAtXHNUXsOifL8gPHbXFl6zTE07oYY?= =?us-ascii?Q?ROJvm/elLGDbndpYjihF581vV5e/Pim7GU89OqYR41GP0B8Kzllgs5bi0Bgs?= =?us-ascii?Q?s8kJj5ELMfx7Gm5yPoOzjud8YhMwN/QoJyk079Dn?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 084bc372-7dd5-47d7-ed65-08dd7e93a6a1 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:11:17.8769 (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: I4l09TfyXMI8SAp7A44TmFEXNLWHU+sllm+q82BWBwg/b2Ev/cufCwdENFTQv33wmArAje6/3SzD4Qm7Wvz2Mg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" This commit adds a --do-rcu-rust parameter to torture.sh, which invokes a rust_doctests_kernel kunit run. Note that kunit wants a clean source tree, so this runs "make mrproper", which might come as a surprise to some users. Should there be a --mrproper parameter to torture.sh to make the user explicitly ask for it? Co-developed-by: Boqun Feng Signed-off-by: Boqun Feng Signed-off-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- .../selftests/rcutorture/bin/torture.sh | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh b/tools/test= ing/selftests/rcutorture/bin/torture.sh index 5ccd60a563be..6d1a84f3f631 100755 --- a/tools/testing/selftests/rcutorture/bin/torture.sh +++ b/tools/testing/selftests/rcutorture/bin/torture.sh @@ -59,6 +59,7 @@ do_clocksourcewd=3Dyes do_rt=3Dyes do_rcutasksflavors=3Dyes do_srcu_lockdep=3Dyes +do_rcu_rust=3Dno =20 # doyesno - Helper function for yes/no arguments function doyesno () { @@ -89,6 +90,7 @@ usage () { echo " --do-rcutorture / --do-no-rcutorture / --no-rcutorture" echo " --do-refscale / --do-no-refscale / --no-refscale" echo " --do-rt / --do-no-rt / --no-rt" + echo " --do-rcu-rust / --do-no-rcu-rust / --no-rcu-rust" echo " --do-scftorture / --do-no-scftorture / --no-scftorture" echo " --do-srcu-lockdep / --do-no-srcu-lockdep / --no-srcu-lockdep" echo " --duration [ | h | d ]" @@ -191,6 +193,9 @@ do --do-rt|--do-no-rt|--no-rt) do_rt=3D`doyesno "$1" --do-rt` ;; + --do-rcu-rust|--do-no-rcu-rust|--no-rcu-rust) + do_rcu_rust=3D`doyesno "$1" --do-rcu-rust` + ;; --do-scftorture|--do-no-scftorture|--no-scftorture) do_scftorture=3D`doyesno "$1" --do-scftorture` ;; @@ -485,6 +490,46 @@ then torture_set "rcurttorture-exp" tools/testing/selftests/rcutorture/bin/kvm= .sh --allcpus --duration "$duration_rcutorture" --configs "TREE03" --kconfi= g "CONFIG_PREEMPT_RT=3Dy CONFIG_EXPERT=3Dy CONFIG_HZ_PERIODIC=3Dn CONFIG_NO= _HZ_FULL=3Dy" --trust-make fi =20 +if test "$do_rcu_rust" =3D "yes" +then + echo " --- do-rcu-rust:" Start `date` | tee -a $T/log + rrdir=3D"tools/testing/selftests/rcutorture/res/$ds/results-rcu-rust" + mkdir -p "$rrdir" + echo " --- make LLVM=3D1 rustavailable " | tee -a $rrdir/log > $rrdir/rus= tavailable.out + make LLVM=3D1 rustavailable > $T/rustavailable.out 2>&1 + retcode=3D$? + echo $retcode > $rrdir/rustavailable.exitcode + cat $T/rustavailable.out | tee -a $rrdir/log >> $rrdir/rustavailable.out = 2>&1 + buildphase=3Drustavailable + if test "$retcode" -eq 0 + then + echo " --- Running 'make mrproper' in order to run kunit." | tee -a $rrd= ir/log > $rrdir/mrproper.out + make mrproper > $rrdir/mrproper.out 2>&1 + retcode=3D$? + echo $retcode > $rrdir/mrproper.exitcode + buildphase=3Dmrproper + fi + if test "$retcode" -eq 0 + then + echo " --- Running rust_doctests_kernel." | tee -a $rrdir/log > $rrdir/r= ust_doctests_kernel.out + ./tools/testing/kunit/kunit.py run --make_options LLVM=3D1 --make_option= s CLIPPY=3D1 --arch arm64 --kconfig_add CONFIG_SMP=3Dy --kconfig_add CONFIG= _WERROR=3Dy --kconfig_add CONFIG_RUST=3Dy rust_doctests_kernel >> $rrdir/ru= st_doctests_kernel.out 2>&1 + # @@@ Remove "--arch arm64" in order to test on native architecture? + # @@@ Analyze $rrdir/rust_doctests_kernel.out contents? + retcode=3D$? + echo $retcode > $rrdir/rust_doctests_kernel.exitcode + buildphase=3Drust_doctests_kernel + fi + if test "$retcode" -eq 0 + then + echo "rcu-rust($retcode)" $rrdir >> $T/successes + echo Success >> $rrdir/log + else + echo "rcu-rust($retcode)" $rrdir >> $T/failures + echo " --- rcu-rust Test summary:" >> $rrdir/log + echo " --- Summary: Exit code $retcode from $buildphase, see $rrdir/$bui= ldphase.out" >> $rrdir/log + fi +fi + if test "$do_srcu_lockdep" =3D "yes" then echo " --- do-srcu-lockdep:" Start `date` | tee -a $T/log --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 674E521B9E7; Fri, 18 Apr 2025 16:10:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992653; cv=fail; b=oszXKDtjWqhmKHME8ncl4uTnUTThE7JamGKN5wJRc3itXT43xEoAbU06kUtUuWMnCIql9R/UQyQFjqg4HWSf94BNlBIcB4jVHh6tv98+qEm/ui6IX8gmhhjj9WKrTS54PYMzPH1X9oYEIZOViIrrWao2J6tJeni173u9iP1FMW0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992653; c=relaxed/simple; bh=u90j+FGtNGwWb7IacbZc3rGAycCswj8Tu1bv0fso5iA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Vo8TaQt5ssNzN1b3gTH47u8BbqaAjxW1lGyDAJ7q3r59txFEXNdR+WdddHYQkuh7ooTKB0t2QkySxbBMAxHDLFvKpPWA5ERejUz219ZezIna2n3qvwHpCmeJdAcUiwHwbCs9MtiZh2u83SIPrcm+R9F+ueTQlEqi+/5B8kVfTos= 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=d9Az219e; arc=fail smtp.client-ip=40.107.94.79 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="d9Az219e" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LiMHd0DrS26Hs+wqoa0ohTOnISW7HcMS8vA6HiJcD41CrVQ9aRd89u7OYVApNgHuYt4aAOMQfvhnDkCVPKae0sssDoHBv+ThnPLozC0qLHQbf3bWyJLli0u8x+4lVqOHb6PAnSt7GFml50MRc8Ob3XGQjLGmCAQc1Llz9+szLj+pPFePOkLPkyhhnOE7SUfYpyPoglKn918baNNdc5TeRDlWaDMHmUH7T8Sxqym6nP7ClaSocuV3oWwd8exdWWYRNyUVvbViOA9W77m/XjK4mCyoAzWe+viogb7iXJ1iWYD1W5RJUr+q27OqPwe83u4b/BJaLxh2iO+FhhWP0LEzDg== 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=UALDZZtKvaKXe++iy87Qbl/0aWtAFQVSs1gS7ETYVG4=; b=ZUFre6OXvO7dyHO+5Ysk3isSrG1jyvXwXoK9j3XEfdlqGiJLOgzRY6O90VcZWDfxDUYjILWA/E5CBwp4bP6zgQAnknya3bZ1SVIjfSTp8hOiUv3rLrQEJw7iP1gMOk0EG4N1yEswrn+X5pzlmLMHUilF6vRGU7jt/m3U7riTW1U8vtppRRhFh83mmj9o5hkLlBI4dPWdwywmV8lD8aQakIIgqaZUP0gepec0hxbMo5S/QvISwg4G7Nl4g5u6G/xDbK7Dj58ibA40Yzo5lPtqx/EIEx+xf68D0iwhFmEa92g37a90elOGSQ6hcxjroRdGk/OIRxYvjSZjSrE0LDodGw== 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=UALDZZtKvaKXe++iy87Qbl/0aWtAFQVSs1gS7ETYVG4=; b=d9Az219eQhU0J1FaFZy29qZ1FqFQ+6elrtrD3y3L00DGcYErinpyz2MVvb/o9jfXOe4XuoKONsgWHUN5RnxEgZ+yqOJgTFtNR+z0RTKVPMCkvIjmwnaKmZKwtp0yAlti1q1VycSnpN1utuemrYThJvMFKxgq4h1IwIgDBun2J0BngIDf4UkEwOgGzEG1aTaRIuyPX20HyTtx0S038MJYL2FRGlnaXUDpd83bb7QrNaKUIGAokUlIjB/HmNcxI52LiTGl6MosSo73w45SjwauGUuCLWoEer1MsQQxQ1IdH8GRzjchhf9LJOEws1Yrng6Fo73+xiRt6XpcbVtKoE+mtQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:10:49 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:48 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Davidlohr Bueso Cc: rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH 13/14] rcutorture: Perform more frequent testing of ->gpwrap Date: Fri, 18 Apr 2025 12:09:45 -0400 Message-ID: <20250418161005.2425391-14-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0P223CA0030.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::33) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 1eca9038-241b-4843-7a76-08dd7e93955d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xKHUkgQamJly8aXasc5Kxw7DdQe44AeETCDhaL6j7DThC5Zr8fiUJ3XKhbkQ?= =?us-ascii?Q?5xSlvN2oaMeAgtQ6t2AV6DmHX2dUo0I+GDq6+8gpfIuPQRbAB+bwk1fgCWB5?= =?us-ascii?Q?ZDNlJOcf761BdSrtrdL9U3QohkDql34AgBrHjSySRNik7iJfcQi0TsX4bSPw?= =?us-ascii?Q?4eQNAENC4lsFsSaNITbHovchXzmDjgOcfBkXb3o3PvCNTz5NuSsmdW6wBbiu?= =?us-ascii?Q?MpekhUDSdr1Kt/jHLELPZlRysMeB2R3Up3dLkM1H6GkYXGV0lWK7qqk53sE5?= =?us-ascii?Q?A+wQEzm+fv45WwIFLKn69unaKaP/e6Zt/D6f0knlzf2DxAKsLxhAwLrqn84a?= =?us-ascii?Q?UXyvP2meNsG9dNHvbF0y6w9cHhPDGDoGWK70KWDV1xiQY6qScdSBP5MYUmMH?= =?us-ascii?Q?nYr7M8HBVmFqQ9hgweBTm+trd+sFqR9u73QjB48EzA+cXSzkNQ/eqTLqBHK2?= =?us-ascii?Q?D5drdjPOPGlNdj8sm6W21P5Ihv1IJ9j2K5giigHWghdjvslaaLvfB+qVNCto?= =?us-ascii?Q?oUv8pIX0SedxVUNnoulKHKxqeWScXZ4eeSRomJiZkOBmHK3/XZAXwMYT8lHo?= =?us-ascii?Q?EarfV3hJfnvXmj680QPfuuwQARFoGSmHM2T1HDTEYTeXhH3/rFjOoI7zd4lk?= =?us-ascii?Q?W8DUBTNNgVOEyHMURqjWhLsGln0LMYVet6j2XJXgSjU8GV2sZMJFR4AvG63A?= =?us-ascii?Q?VnG1kofJh30IpxZ5DZc3RtI6kVJ17WgL0oqaUldudN2+2UugUkPX0xqk0OIx?= =?us-ascii?Q?xmZRcHLK5RNC1k1aQG8wGjm/EIQD+4YJyZXZemEji9V7FUYzyNxxfMVslSxP?= =?us-ascii?Q?LSrOvzTLH2EjpeGee8jvK02O628miNTTKEeo8+5vFQ0+eDB0AsjChKzN3TCV?= =?us-ascii?Q?rqk0vhXRbQ7/BrRa/Yczmimq3JLk0aZXlT1DAk6HM6rkfPpxd6aQ/xdBaoCA?= =?us-ascii?Q?jAmTzqiFvnus5enUhdtzqWaqf+kKofdi5mHpD63WfgNAMIN4hF6XqVgZnxJe?= =?us-ascii?Q?5MsnrKqLygxAS5Hv6pNGC97wi+X+d3O7oC6trs5sr706B434lX2jm4GwybwD?= =?us-ascii?Q?6E+4xSPZRSvMz2g9vGUBywb3kgJVCYmVvfl+0Rw/TwCyKZWv/zejBSxNVijO?= =?us-ascii?Q?+c+6GP6F7C78XtXFQdgp+S7AYV7m/v+y9H8z43jDtXrzrBhya9Dzp3/3ekiF?= =?us-ascii?Q?J4+seHUA9I5eUjGpYXoPfdE0y4wbwfFErK1Ws+HoBFJK9WZpurGdcdXq3ENM?= =?us-ascii?Q?26xVesuUAbfKhOORzWzE+0Pq5kCKxVhFKrePn1TVZ3qpsVkmAsd9g+KRS3AF?= =?us-ascii?Q?BSrZmho1im/WuJodTHq/eFF4T+9T12nBGExZJuLZJW5et8ynY678+vBNpK38?= =?us-ascii?Q?iKJHVErIP99G0J5llbn7sTFUPMaunC5pXxdAWvm60kgQTz2bExKirfut+JSb?= =?us-ascii?Q?ZoIMQOx28wZVUh+oN8zZ0gheLOJxrhNyQitvQSrVopRLgDiTQ29OZg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cVvjpV4gf+s+6aAnq3Lntkqc13UJR8sg5KUQF6VW8liYxsCk1OTthJqTmlzJ?= =?us-ascii?Q?HCe2G0OsoTnUf+qnP/S+lTiCA9W+k8N3KDjWqJ2j/A+Tw4QPRRqTtkAkVam+?= =?us-ascii?Q?O15H0XfIx6Rr88/4UK8nhiwXOJqm2Gx9bQodJ1a/+RCxCTriqL+1VO5+xoFj?= =?us-ascii?Q?sKmV4TF6mvFygahRj8NLGgqwj+1Va2jD2PJmSP9sNZ/pXLWqzKno3SgI90g2?= =?us-ascii?Q?jgw9D1VLfH9uD8xg8m3H0ungT91JPiR2/hOtcEUGtJmdBd4FpC+0KLCVVYp6?= =?us-ascii?Q?o3bpgsU6CIcj4x1BdaFs/12bUCIrmYIKCMnyEV8cmMZ5CVF+YOX825LwWwDY?= =?us-ascii?Q?0mF2qlh9U97F3SE+BVBXWQ3Q1yj7ZkDXsuoxbTU0oXkQ2/HTh4yAHqjiKiR6?= =?us-ascii?Q?QXKG6i7MkPN1Grn1Tk8onS68FtSF5xyGw3qMfiDywl7mS0DkxaHN0FpYSAhb?= =?us-ascii?Q?o14v0Mc9radS+cb5cZg9AU5ze95OtrOymTGOoUu2/0DIuMLSXga6Y6nycrWY?= =?us-ascii?Q?V/VkuEIZcc7YfIJw/oTVOdYgijEYOxRnKJbkL0Lo9T8Io9p9S5IgxZEthtty?= =?us-ascii?Q?Kl82jeG/+xNiYMSUDfWtl0zwVFZBqKMmgLuuyYUuI7Cg+fZkyx6OFnlTONYn?= =?us-ascii?Q?CEP06n5jX6EIFRwcrbwt0MycR44nNE8h7jAkHBeTM1YNT98YK9AmtIPQqMJS?= =?us-ascii?Q?MjPbpuXvWq4boTSDcyTyhcf7fuYsiLVh/HQdxF8G6QZwqmNsM0vkk9/it5/j?= =?us-ascii?Q?LZZwrP+DdFlSuaYNFU1sseoa5IeMe4B5Sbsrl7gBxycXy44XAI539azBKx1+?= =?us-ascii?Q?Eiq8HiafdExNrme8dJT6m4W82AlWMjkAUEHVUi4p7SSHtfU+Ke6LWcCVRNIT?= =?us-ascii?Q?+QWYX7SVl7l9TxnTSq4zl4uhLPX8MoAYZtHIfVke83/kK4XlX2MoR94+w7ap?= =?us-ascii?Q?EGubZP0ejlIVTEAD+FDnRSRS+7nY9VpIFiedQsH/ePFYij2Z1yqjvb0q8Njx?= =?us-ascii?Q?S8k02URPIOLqq1RglkGHZTsGrdB/MatrTvEYRHJcQx1Xy9ftulmM6zuSb4xu?= =?us-ascii?Q?FUyMeBu1s5zl0wMbzEnZqfH3ooBfi5KzqW8eiDV13qjOeVDEcKlC7LI7y2Zd?= =?us-ascii?Q?gr9yh6/2PeTroVVUrFCo+SThbub0EI9OoJC4cA4ypicdpyLmd68QIQ0RlHfT?= =?us-ascii?Q?AxWT+hT1uvytZ4fmJagg7ciVb0y4+Niv+tDQBrt0a56zrzLNYnjW3c8cZZNi?= =?us-ascii?Q?VOHaCZrgLFbQ4mYT7ZS1VmlNPdkQkp4EricyLMn4phxMwqhykDMR5sz5WZTJ?= =?us-ascii?Q?+g9fhFehs1Gedl528+LjQvHH3HeRMNLKz2L1d83/dyMQKKAVX5WI5dG9D4vj?= =?us-ascii?Q?7MYbgnNrD5dwVO7snpas0SIGZER4nHbCWsxq8YR87F27/wsUIBg3Jz8gvWJ/?= =?us-ascii?Q?KVGZtxU/9qw9QPBJ7ViU7Tq/JdNUjhKclOyKekqWWflcF3QAJHMXZs9Ri4qC?= =?us-ascii?Q?r7VcHdYvSL9zMBVFrxRcWCkrDjroGNd/NZDBf4zLY9bTVyHdXhR1nsiOSccV?= =?us-ascii?Q?bFy0+gTf96fkDdwar/04CoDfJGdn51EMcYWXlytf?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1eca9038-241b-4843-7a76-08dd7e93955d X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:48.8894 (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: Dj1rk/vfGfwDtwN5EPMvhCocs7iwsiNqSVydoKRQsLTrjNnDkB3XSQ5QyA7auEM0Xleo2oeqsp4Js84KVxu8Mw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" Currently, the ->gpwrap is not tested (at all per my testing) due to the requirement of a large delta between a CPU's rdp->gp_seq and its node's rnp->gpseq. This results in no testing of ->gpwrap being set. This patch by default adds 5 minutes of testing with ->gpwrap forced by lowering the delta between rdp->gp_seq and rnp->gp_seq to just 8 GPs. All of this is configurable, including the active time for the setting and a full testing cycle. By default, the first 25 minutes of a test will have the _default_ behavior there is right now (ULONG_MAX / 4) delta. Then for 5 minutes, we switch to a smaller delta causing 1-2 wraps in 5 minutes. I believe this is reasonable since we at least add a little bit of testing for usecases where ->gpwrap is set. Tested-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- kernel/rcu/rcu.h | 4 +++ kernel/rcu/rcutorture.c | 68 ++++++++++++++++++++++++++++++++++++++++- kernel/rcu/tree.c | 34 +++++++++++++++++++-- kernel/rcu/tree.h | 1 + 4 files changed, 104 insertions(+), 3 deletions(-) diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h index eed2951a4962..516b26024a37 100644 --- a/kernel/rcu/rcu.h +++ b/kernel/rcu/rcu.h @@ -572,6 +572,8 @@ void do_trace_rcu_torture_read(const char *rcutorturena= me, unsigned long c_old, unsigned long c); void rcu_gp_set_torture_wait(int duration); +void rcu_set_gpwrap_lag(unsigned long lag); +int rcu_get_gpwrap_count(int cpu); #else static inline void rcutorture_get_gp_data(int *flags, unsigned long *gp_se= q) { @@ -589,6 +591,8 @@ void do_trace_rcu_torture_read(const char *rcutorturena= me, do { } while (0) #endif static inline void rcu_gp_set_torture_wait(int duration) { } +static inline void rcu_set_gpwrap_lag(unsigned long lag) { } +static inline int rcu_get_gpwrap_count(int cpu) { return 0; } #endif unsigned long long rcutorture_gather_gp_seqs(void); void rcutorture_format_gp_seqs(unsigned long long seqs, char *cp, size_t l= en); diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 402b9979e95a..88d9f5298c3d 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -118,6 +118,9 @@ torture_param(int, nreaders, -1, "Number of RCU reader = threads"); torture_param(int, object_debug, 0, "Enable debug-object double call_rcu()= testing"); torture_param(int, onoff_holdoff, 0, "Time after boot before CPU hotplugs = (s)"); torture_param(int, onoff_interval, 0, "Time between CPU hotplugs (jiffies)= , 0=3Ddisable"); +torture_param(int, gpwrap_lag_cycle_mins, 30, "Total cycle duration for ov= f lag testing (in minutes)"); +torture_param(int, gpwrap_lag_active_mins, 5, "Duration for which ovf lag = is active within each cycle (in minutes)"); +torture_param(int, gpwrap_lag_gps, 8, "Value to set for set_gpwrap_lag dur= ing an active testing period."); torture_param(int, nocbs_nthreads, 0, "Number of NOCB toggle threads, 0 to= disable"); torture_param(int, nocbs_toggle, 1000, "Time between toggling nocb state (= ms)"); torture_param(int, preempt_duration, 0, "Preemption duration (ms), zero to= disable"); @@ -419,6 +422,8 @@ struct rcu_torture_ops { bool (*reader_blocked)(void); unsigned long long (*gather_gp_seqs)(void); void (*format_gp_seqs)(unsigned long long seqs, char *cp, size_t len); + void (*set_gpwrap_lag)(unsigned long lag); + int (*get_gpwrap_count)(int cpu); long cbflood_max; int irq_capable; int can_boost; @@ -626,6 +631,8 @@ static struct rcu_torture_ops rcu_ops =3D { : NULL, .gather_gp_seqs =3D rcutorture_gather_gp_seqs, .format_gp_seqs =3D rcutorture_format_gp_seqs, + .set_gpwrap_lag =3D rcu_set_gpwrap_lag, + .get_gpwrap_count =3D rcu_get_gpwrap_count, .irq_capable =3D 1, .can_boost =3D IS_ENABLED(CONFIG_RCU_BOOST), .extendables =3D RCUTORTURE_MAX_EXTEND, @@ -2631,6 +2638,7 @@ rcu_torture_stats_print(void) int i; long pipesummary[RCU_TORTURE_PIPE_LEN + 1] =3D { 0 }; long batchsummary[RCU_TORTURE_PIPE_LEN + 1] =3D { 0 }; + long n_gpwraps =3D 0; struct rcu_torture *rtcp; static unsigned long rtcv_snap =3D ULONG_MAX; static bool splatted; @@ -2641,6 +2649,8 @@ rcu_torture_stats_print(void) pipesummary[i] +=3D READ_ONCE(per_cpu(rcu_torture_count, cpu)[i]); batchsummary[i] +=3D READ_ONCE(per_cpu(rcu_torture_batch, cpu)[i]); } + if (cur_ops->get_gpwrap_count) + n_gpwraps +=3D cur_ops->get_gpwrap_count(cpu); } for (i =3D RCU_TORTURE_PIPE_LEN; i >=3D 0; i--) { if (pipesummary[i] !=3D 0) @@ -2672,8 +2682,9 @@ rcu_torture_stats_print(void) data_race(n_barrier_attempts), data_race(n_rcu_torture_barrier_error)); pr_cont("read-exits: %ld ", data_race(n_read_exits)); // Statistic. - pr_cont("nocb-toggles: %ld:%ld\n", + pr_cont("nocb-toggles: %ld:%ld ", atomic_long_read(&n_nocb_offload), atomic_long_read(&n_nocb_deoffload)); + pr_cont("gpwraps: %ld\n", n_gpwraps); =20 pr_alert("%s%s ", torture_type, TORTURE_FLAG); if (atomic_read(&n_rcu_torture_mberror) || @@ -3844,6 +3855,54 @@ static int rcu_torture_preempt(void *unused) =20 static enum cpuhp_state rcutor_hp; =20 +static struct hrtimer gpwrap_lag_timer; +static bool gpwrap_lag_active; + +/* Timer handler for toggling RCU grace-period sequence overflow test lag = value */ +static enum hrtimer_restart rcu_gpwrap_lag_timer(struct hrtimer *timer) +{ + ktime_t next_delay; + + if (gpwrap_lag_active) { + pr_alert("rcu-torture: Disabling ovf lag (value=3D0)\n"); + cur_ops->set_gpwrap_lag(0); + gpwrap_lag_active =3D false; + next_delay =3D ktime_set((gpwrap_lag_cycle_mins - gpwrap_lag_active_mins= ) * 60, 0); + } else { + pr_alert("rcu-torture: Enabling ovf lag (value=3D%d)\n", gpwrap_lag_gps); + cur_ops->set_gpwrap_lag(gpwrap_lag_gps); + gpwrap_lag_active =3D true; + next_delay =3D ktime_set(gpwrap_lag_active_mins * 60, 0); + } + + if (torture_must_stop()) + return HRTIMER_NORESTART; + + hrtimer_forward_now(timer, next_delay); + return HRTIMER_RESTART; +} + +static int rcu_gpwrap_lag_init(void) +{ + if (gpwrap_lag_cycle_mins <=3D 0 || gpwrap_lag_active_mins <=3D 0) { + pr_alert("rcu-torture: lag timing parameters must be positive\n"); + return -EINVAL; + } + + hrtimer_setup(&gpwrap_lag_timer, rcu_gpwrap_lag_timer, CLOCK_MONOTONIC, H= RTIMER_MODE_REL); + gpwrap_lag_active =3D false; + hrtimer_start(&gpwrap_lag_timer, + ktime_set((gpwrap_lag_cycle_mins - gpwrap_lag_active_mins) * 60, 0= ), HRTIMER_MODE_REL); + + return 0; +} + +static void rcu_gpwrap_lag_cleanup(void) +{ + hrtimer_cancel(&gpwrap_lag_timer); + cur_ops->set_gpwrap_lag(0); + gpwrap_lag_active =3D false; +} static void rcu_torture_cleanup(void) { @@ -4017,6 +4076,9 @@ rcu_torture_cleanup(void) torture_cleanup_end(); if (cur_ops->gp_slow_unregister) cur_ops->gp_slow_unregister(NULL); + + if (cur_ops->set_gpwrap_lag) + rcu_gpwrap_lag_cleanup(); } =20 static void rcu_torture_leak_cb(struct rcu_head *rhp) @@ -4519,6 +4581,10 @@ rcu_torture_init(void) torture_init_end(); if (cur_ops->gp_slow_register && !WARN_ON_ONCE(!cur_ops->gp_slow_unregist= er)) cur_ops->gp_slow_register(&rcu_fwd_cb_nodelay); + + if (cur_ops->set_gpwrap_lag && rcu_gpwrap_lag_init()) + goto unwind; + return 0; =20 unwind: diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 659f83e71048..6ec30d07759d 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -80,6 +80,15 @@ static void rcu_sr_normal_gp_cleanup_work(struct work_st= ruct *); static DEFINE_PER_CPU_SHARED_ALIGNED(struct rcu_data, rcu_data) =3D { .gpwrap =3D true, }; + +int rcu_get_gpwrap_count(int cpu) +{ + struct rcu_data *rdp =3D per_cpu_ptr(&rcu_data, cpu); + + return READ_ONCE(rdp->gpwrap_count); +} +EXPORT_SYMBOL_GPL(rcu_get_gpwrap_count); + static struct rcu_state rcu_state =3D { .level =3D { &rcu_state.node[0] }, .gp_state =3D RCU_GP_IDLE, @@ -757,6 +766,25 @@ void rcu_request_urgent_qs_task(struct task_struct *t) smp_store_release(per_cpu_ptr(&rcu_data.rcu_urgent_qs, cpu), true); } =20 +/** + * rcu_set_gpwrap_lag - Set RCU GP sequence overflow lag value. + * @lag_gps: Set overflow lag to this many grace period worth of counters + * which is used by rcutorture to quickly force a gpwrap situation. + * @lag_gps =3D 0 means we reset it back to the boot-time value. + */ +static unsigned long seq_gpwrap_lag =3D ULONG_MAX / 4; + +void rcu_set_gpwrap_lag(unsigned long lag_gps) +{ + unsigned long lag_seq_count; + + lag_seq_count =3D (lag_gps =3D=3D 0) + ? ULONG_MAX / 4 + : lag_gps << RCU_SEQ_CTR_SHIFT; + WRITE_ONCE(seq_gpwrap_lag, lag_seq_count); +} +EXPORT_SYMBOL_GPL(rcu_set_gpwrap_lag); + /* * When trying to report a quiescent state on behalf of some other CPU, * it is our responsibility to check for and handle potential overflow @@ -767,9 +795,11 @@ void rcu_request_urgent_qs_task(struct task_struct *t) static void rcu_gpnum_ovf(struct rcu_node *rnp, struct rcu_data *rdp) { raw_lockdep_assert_held_rcu_node(rnp); - if (ULONG_CMP_LT(rcu_seq_current(&rdp->gp_seq) + ULONG_MAX / 4, - rnp->gp_seq)) + if (ULONG_CMP_LT(rcu_seq_current(&rdp->gp_seq) + seq_gpwrap_lag, + rnp->gp_seq)) { WRITE_ONCE(rdp->gpwrap, true); + WRITE_ONCE(rdp->gpwrap_count, READ_ONCE(rdp->gpwrap_count) + 1); + } if (ULONG_CMP_LT(rdp->rcu_iw_gp_seq + ULONG_MAX / 4, rnp->gp_seq)) rdp->rcu_iw_gp_seq =3D rnp->gp_seq + ULONG_MAX / 4; } diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index a9a811d9d7a3..63bea388c243 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@ -183,6 +183,7 @@ struct rcu_data { bool core_needs_qs; /* Core waits for quiescent state. */ bool beenonline; /* CPU online at least once. */ bool gpwrap; /* Possible ->gp_seq wrap. */ + unsigned int gpwrap_count; /* Count of GP sequence wrap. */ bool cpu_started; /* RCU watching this onlining CPU. */ struct rcu_node *mynode; /* This CPU's leaf of hierarchy */ unsigned long grpmask; /* Mask to apply to leaf qsmask. */ --=20 2.43.0 From nobody Sun Dec 14 12:11:03 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2079.outbound.protection.outlook.com [40.107.94.79]) (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 6486122171C; Fri, 18 Apr 2025 16:10:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992657; cv=fail; b=Mz1oIzFXl5A/mh+dFa9gRLKWH9BYY8eeeFQozwQY6tALTgWq373CKS22vrylt4eO2DPQXrWrMAuEPhbWN7acLKk/HjY1yiVFIhXUeuxkiAcTd9GZabFWafljPemxHgBzhVy4cNYZA5nj6NowwEPYwFRq+eJ6GKCvGJYZBZTixts= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744992657; c=relaxed/simple; bh=hwgGmVtOvMLWfOrOFGwK9Tqmh4Q4OH9WksjWl+vAgOg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=D56Q1+9sh8XYGBsxbRF/VjlxBS9PATLFHOBiujH2XY4W/GaX5HFx9NFnCJ+C4b+y8RJ2Gex15HpZv0kBoucLgqKiWNK9EvuVnGNichfPYkEv0aqjojq/tgW5mXmV8AOibXE+e5tasYSwdsvcM4ermG2txkvWkiMWhCDJBf2ZUik= 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=QYWLSFb5; arc=fail smtp.client-ip=40.107.94.79 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="QYWLSFb5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M+krtlTbrGjZ6/qmAoHY8oQIhZEji7tGOiMd1v+qVj308iq6MAGV7wwbIKujlTTIj3f+xyReeQuuW+N126eJmVRS8UpYmkjRxk18u5mLFKxF8MxeLDsCCigq1l6/CdB7PJZEvJeszfTKaBgi5a+TeTSxmfflwgOvCfqGwhbXIg/x1uN9btwfqJFMUs5Von/jYwQOOn+HvfoQy692ffrAWGUcseaULXHdeB+UBuVqlC0Hvwq99ZC4qUeQbZluFS1Szxdm2YzdZuOwzREOgQJL0k5wXHESZxq8lfK2JiEx/N2CRaqyTnPkbdBmvLTnIt8gTG0zt+/QhWyx1Jfu8v9lvQ== 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=urHpZIeQMdZeJXR70pRCganwslf0fAO0+ZZU76nM0/I=; b=ZZgpDAaSiUs/cxJTMf9at6zwdAM/oJcuHbEcSW+BGT53a6gcoiU+dN7MLNcIDf4Eq37cEMD71JCIkiJ74V6GPXxQGSTK0OzwYMXYKKc0wHuu8rbgMctXexkFeBBs54BxIechh/X4rwj8hR7xYJMZBeqNF6G9oaNhkr8iqHbmTZnACKVE/eNImTR6M6YTwebBfxnvHbCoXWeKKeVLjZ3c+sKBa0k4D0zqtxgJuygK27+UhZzjEFEACpEzfpnBu2RGRlfAmRnB0Onoez60Gz2yfVwbNh1alDbMzYiRPTqEyd3K/a/vLbpu9ZhF30AqhWJpqrj+sOfe74ZLdXkKCOVKmQ== 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=urHpZIeQMdZeJXR70pRCganwslf0fAO0+ZZU76nM0/I=; b=QYWLSFb5mNfDkqJWWfwh4huMB7TjhM7zXCHlotViRvKbjYir7hb9YWwT1Dv9k6xPDak4BZMBYbOWnHcLvuK7XykhQ9s1OZ1oQpOQVM/+LkI68B0ayIuNeK4x8vrB+9a7rH907Szb6T1nfqCSuvBne5fhXEihugvP2dDdaggiW/JGt8CfcZ8T0L7h3wdo55Tl1EP9eOcHLA2viRSq7pb+8S/bK8H8CoSZk15WLYZMPi50qT1BCNks+OxAZvxkm8OpIL5C5EaHt9iATyj3jL/aG0Rhgkm/W3QPgx1Vqgx2FuF4ozjycsXQP4kzUOqQiR3oPwAwfTAVECzUuANSiG1eHA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 16:10:51 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%6]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 16:10:51 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Shuah Khan Cc: rcu@vger.kernel.org, Joel Fernandes , linux-kselftest@vger.kernel.org Subject: [PATCH 14/14] rcutorture: Fix issue with re-using old images on ARM64 Date: Fri, 18 Apr 2025 12:09:46 -0400 Message-ID: <20250418161005.2425391-15-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250418161005.2425391-1-joelagnelf@nvidia.com> References: <20250418161005.2425391-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAP220CA0030.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::35) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: e580e7ae-f428-4a33-a606-08dd7e93969d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/vWwVI2ODd1lXzhPPs4odvCZR84U7DZAgDEIc+FUur+o/v9aCIZMhR2gdI3F?= =?us-ascii?Q?oxa9T3YWkcJ8oQjlo8Kiq7lN27H5yKd0TQorrlwMGf0ykQtiAGTpfKx+BBzH?= =?us-ascii?Q?dIrVWq7ms5P/K8Xt6Pt3FOKS4Fc8184pYEjmrdMlpeQpncWSshrXvIRHqjDd?= =?us-ascii?Q?xdd4IE5zwCXW8AHH/HNgTVGkXiBx1MbikCn5DBAFB6w0oe4QPqvf9N8Hh23t?= =?us-ascii?Q?ndmdcPN14BaL1OhKFjz3nFq6nEKN3Rle+M4d0eHf/elLJB2KaskYnt5UoBxk?= =?us-ascii?Q?xPghFiwRL6oHING+7BW6H3N6+Mipr7L/DQimCkZk3qXLkrBRwCsTWq0wWWwk?= =?us-ascii?Q?fDNKnVvFasHhjucutO7yG/VcsDDv+61LIDk0c7oSMtrO5kiJlJcpgszuSDFU?= =?us-ascii?Q?VbxP8DRwScOlB/Z9m+4uppFTDn5TuNn8UclIZdW6rWWSDy+tmiQXvif9AKch?= =?us-ascii?Q?aRB5yRtZ6ICctF3FhVlfcUFLB6PaqNrFVPOUgw3Q8EgnU2iZoOST5GeI8Dq0?= =?us-ascii?Q?C05qxPu61PhRdzuTrj3GZUP0AbEcrZSCQ4NS7Lp9tI2tz0FVJQ5BChSwn5Gv?= =?us-ascii?Q?Sy0ws1893AQvgNtkxPkcvB3UCTuwikWiUU4/llZoadJrRIlCqDvZ+OVMy8+J?= =?us-ascii?Q?ESe3ApnpufqckCRKHTjZbq43eMmYYmzKSUuzpSG5qnUVPvOHpRaGlE8xIV4M?= =?us-ascii?Q?iarF/Q9FAvWQgKpz5qT4a7SnlV68gbwZSUi6YhXa4Vve1YHU9WB8caTVEH3I?= =?us-ascii?Q?hmNVWX203B56/syxi0SvpumWHc38z7MYhPaSZTnyUXN3TF+50xd7fHGYDZRZ?= =?us-ascii?Q?sn6nXNapE2huZTO0sEve4taDBoRlPZz5yEuUPSN/YjmnNWxQT6/h7PiCJ596?= =?us-ascii?Q?tK9EI5iZJx5zTADDhNArtxSdxMzhNUTzMO5CtKsJ7Fa0fDtoDXw7RFAYpkEW?= =?us-ascii?Q?qXR+s/16mPMvVOK+mKWMpKuK7ZRaypKFl3HQhfOE7WWXI3tMK16qrzE3MN+p?= =?us-ascii?Q?6Xxyb8YkyrC271ugub7Ts41SEnKQWhvGmNa5P+gOY5IAwfhh0SoJX4sOgjKp?= =?us-ascii?Q?gBqzDEuhxKPI+Eg8u3b5zIks0EppTTMRRUEuJKavnxj3XU4ABzOHbwXqfYok?= =?us-ascii?Q?sCjYRIqderdsY7/fg0BpCkICt4JkqotOPHv0NaTbjAFoqByT/D0hXP5FfMpC?= =?us-ascii?Q?OUB2GwpYqkuuadrcNBDJ4OnKnSRn61CgwntvZqA738lj6Js/GMD9L1yvK80v?= =?us-ascii?Q?LpM6oKuV5OnyFmJX0Wu3n5Oc2yjtIUHZFk0wH7lfFolJ0K+J+DzhHlFflBTv?= =?us-ascii?Q?g2siu8KEjrhrIK7VSsoZYI9fLG9UPXV98wVkWpjOOfK9m2jAUaYdnnbiRXfl?= =?us-ascii?Q?r2WqSAqyb78NpDBGDrRZe+B2wa/3X0mzzTELUPBNb60DWwSvs0qKWvPl0w4q?= =?us-ascii?Q?RvbWoZOawe0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?004Z0gForWWKO+ZpJ5RlkfzeJFOgS6h242+ztdlg+WQZCqPWaaiAD2xON1dA?= =?us-ascii?Q?fm11yf5EucZl/Si4vBwW82r/0lEKN1zfVSuS01LFM+hzIoSb9PEmT2NWtB0I?= =?us-ascii?Q?+tjthfdxn1aeIz5St0a0xAXwR/bAP8FFrRb7iEKN0bgcm929/kv7IMFiF3mi?= =?us-ascii?Q?lUp3fljmSsQuVBOQyUJBJwsYRnTXRTH2nIBJmLIU9znzUFwh9aRh77mb63PE?= =?us-ascii?Q?dtJ1lVlpeApANlOg4B51B+qCpVcuMlqjVpkMyS46TPGNtdIUgjoACP7tt3SM?= =?us-ascii?Q?8STPVEHRF9i6lyMyHN3VDJ5qq1IOLTmfXpLSEVrAQ4/9+6Ol0MMVEPEj7jz8?= =?us-ascii?Q?PQD7y165RCt4LrFZXLasPkNzCtsDqDOUczqQQwNfmUfdGLh3d8Atxez007dU?= =?us-ascii?Q?iroHNpuk/r7O65LInleonbU/b841zUFMsEIeoNSGvc41beqkI+zJ17TS1j5e?= =?us-ascii?Q?u6pcghMYJQcoIt6fb2HH9VJsRsMS9ZTrQOa4vQvhtZF5lHkWcTs7YpIFH5E/?= =?us-ascii?Q?Au9uIZzVryOUejFg+8yGPaHID10R2Z7akLyqShnVyvLGQY31GwkZ9AUofYCM?= =?us-ascii?Q?pRomGB5I7RZXYtOxh7Yl0yLCiwcTxGD89mLJkDLRx9M6jXQLps6ZHZukoXRj?= =?us-ascii?Q?lR2v5ZenS7IK6JwWOihX/+7BvyIBHYQDwus7l3C59s6ITQO8GlY8Kerz3ZlO?= =?us-ascii?Q?Yp2MynI7PDUxep9OX3dag6v09SbA/ZcmcH/xDqmDMxaGAow+Ts+O3zyADv5b?= =?us-ascii?Q?QmrIyaxIITqAzJHmWoBnWVayidQydS2zzT0yDErouVGdAw8gBHhgBkTK1i5d?= =?us-ascii?Q?EkXoU6Ak3gFYLRM24S1bg6oVzwjpsoerPK1Ltq/eEBW1B4TW/vAoO7yxAea0?= =?us-ascii?Q?xkK5aUB8i4MH10kQUThQUm3nFexKrC/YonfN9rttCOJP3WbwkkkyAtYeOt7N?= =?us-ascii?Q?XWsiwxC1hBBK+OKHocf+jnL6fbsB22fvi/P97xHh2YD9gBCrrBLbAjYZwHV9?= =?us-ascii?Q?7uX0N+7jRG2DAgjoAbhqswF2ygTBKz3F+kaAwqRI0ILztMghLU/WmrVkm1tk?= =?us-ascii?Q?/dNnt2K4p1inGLG5AV3kYzj+vOgkXwKUVya1KBSUnn1ZRNxWKI2haTe+WDgk?= =?us-ascii?Q?c9f3i061vK7K0st6UeQKq5dZgVR7nHhNUyZ8b6IXf7mSP27ycipuG9iO7qhk?= =?us-ascii?Q?CHCRlnRkvvGFIs6cCs3ocUeWVGJ7BiOoNrCw059KABjqyCdKCEtYMg4jfgD8?= =?us-ascii?Q?iLI+jR4BhKEgxELYb1fGXgxga1hkxkv0A1zdXzkEVunDz267QmAul7dzwTM9?= =?us-ascii?Q?t5RuTMhVzaMB8MZ9cVFKQQP5GjKZSQK9lvsYUkD46Mnzb4bxNgfqeOsIRTyb?= =?us-ascii?Q?NUL4qwVfAlhAhreY9+MdW6gfx9QGv3qMwtY2ArCs2Jb5SIxRLexJr3ORde25?= =?us-ascii?Q?eRdkL1qo3nmQrGvaTqgLP0IP6IWMkVZLAElc4HPE1llHVSUQstfrw0aUedW+?= =?us-ascii?Q?YbkkO3gM4TMxzi1Ag2C2+vGssJsqHCu+xg9gPLOj9mxF/TW3+f/qiCvCqjf7?= =?us-ascii?Q?T/JLydwCCaon9s8fb2RNDkxy+kI5sT9n3C0TqyMK?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e580e7ae-f428-4a33-a606-08dd7e93969d X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 16:10:50.9667 (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: 0S+EUW6QO104ANpgPwhz0VXd7/CtvpEdFG9wUQzA1OjDgy1AJzvpMh3x1YoT1uS1t6WhoQozKwhDtCCQdmnLSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Content-Type: text/plain; charset="utf-8" On ARM64, when running with --configs '36*SRCU-P', I noticed that only 1 in= stance instead of 36 for starting. Fix it by checking for Image files, instead of bzImage which ARM does not seem to have. With this I see all 36 instances running at the same time in the batch. Tested-by: Paul E. McKenney Signed-off-by: Joel Fernandes --- tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh b/too= ls/testing/selftests/rcutorture/bin/kvm-test-1-run.sh index ad79784e552d..957800c9ffba 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh @@ -73,7 +73,7 @@ config_override_param "$config_dir/CFcommon.$(uname -m)" = KcList \ cp $T/KcList $resdir/ConfigFragment =20 base_resdir=3D`echo $resdir | sed -e 's/\.[0-9]\+$//'` -if test "$base_resdir" !=3D "$resdir" && test -f $base_resdir/bzImage && t= est -f $base_resdir/vmlinux +if test "$base_resdir" !=3D "$resdir" && (test -f $base_resdir/bzImage || = test -f $base_resdir/Image) && test -f $base_resdir/vmlinux then # Rerunning previous test, so use that test's kernel. QEMU=3D"`identify_qemu $base_resdir/vmlinux`" --=20 2.43.0