From nobody Sun Dec 14 19:15:58 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