From nobody Sat Apr 4 01:50:14 2026 Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) (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 36EAD2DF719; Sat, 21 Mar 2026 10:25:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.166.238 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088730; cv=fail; b=refVhQUtEmhprHHxLnbWG3saY+hOG2ONU7wv1VceFpamsEh5ZcfPFdBTVPa7WCWTAA5H7Bc26WjtYxmAjCxKkCTClpCBVL8EsFHuyMXw/56HSypTtc+F6yGY3d9WquZhSWmYAd/nvfWZiKy13YxVberoM7HVbD9qjbvB3+9D8IQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088730; c=relaxed/simple; bh=8yPr34tgXpCLuKPuW0OIra8MSwOfONatQL9tty1Z5zY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=hmiQht1I9Y6zmYC/6+29tjrP3S5ncOS6pyB3RjWcty9/OG/BWhysFYGDEASKq28rv2rxSUjZ7BV39rG8yhFnv7AmiSy4VTMmyL0QwJnILGoMWfUcbUuyxky1KSjYRbeGpnkn+Ld8OlxHKr1Fbik5QLIM7yETKQrDUukQxgcg4lo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com; spf=pass smtp.mailfrom=windriver.com; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b=Vxn44jE/; arc=fail smtp.client-ip=205.220.166.238 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=windriver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b="Vxn44jE/" Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62LAH2Xa3561056; Sat, 21 Mar 2026 03:25:01 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=bX9I/KmzbRv+1dRa8Ep7RrGp9rTJM4hokTb1P+mwqnc=; b= Vxn44jE/l0UpWOozHmf1Zogs+JGmWWZH2+rQ5nT7jTgBvmer7gdGikrXKyaIgeSo //p47w1HirT7qVetRv7zuz1aiRuaLd4Ivym06qSV9HJ8IhAK8ZkRVS0QUNoMD0Iq N460VIJWbEePAgR5y6XwYdA5TWFFwVZXRSCFk5GZeJFOmTWpMMWpKydJzBsO6gt9 yosh8qsA16/eUR8jswWx+D/lMbP+TnhhtSa+pzTpW6scx0y9Yj5kjY8qwNZr0J+F yzSzF1xK6f9KmZ915ZwAip4BOORjD/B2s+QafXdIOI4fWcCU67JzZRrvfcwLcCJU 4oQhd+8wTgtD7lYSE8oH9w== Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011031.outbound.protection.outlook.com [52.101.62.31]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4d1pky834m-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Sat, 21 Mar 2026 03:25:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZIoE9Bid+t3B8PAsq2HH+rwLKIW2FkJx3yaO/hd0T12NHbHg6L0q5bmngNxzvZzn76UvdZgFcTva+B1/4cqY8EvpZt22c+Mj60TkZV3iHi104xNLXcQd4uUNlkpbEbMr5jB/9Qx4OWPlXODT7+MqKZbYlWPs/EqX5MmoNqR75HRMi4VODYDpOHFWWd9NPXTggj/NYd1/1pLdDAwkiDSA4Wfe60xuQwLkaul172VY+aHdoY/zR8yK5VvVYfEZtzloij/lrKAXWcWCBAIwbj4Wd7XY83qo3gXaUQ8nIr6R4j03Rrjiri0h1RDotbV7HZuLZjtr4i1vk6QEKE0YdZaUkQ== 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=bX9I/KmzbRv+1dRa8Ep7RrGp9rTJM4hokTb1P+mwqnc=; b=VL9uz8I9OM24XHpDisIl/1qHgYbzxsea/I2vjHJeY9TWhzE0SX4yUZpuPjDdpayHZIOEAAxlAnfl64yUYbKu92KgQ+nD5pi4vgr22MjQyMt3U/XCbQwQL6tb6ryWIn5vkXfx1fun8Rd+dQvdTo9SxQVpnbyBTK8AV+UTIiJnV9ObA51JN6K/j6z1mYzGaHqfCM97yOobwxyHozHGRnlWBK1Y+lgwO/uiVUPOc9/SvEkUD3aex46faTbtrC5/fjhAjHTxPwHnI4FT84TkW1unQ0Bw7uMRqD291rYu59J+BNUrPcBvkfP0SRf1t4PSZlb0eaprhIn9S4Jsw3tAAtJw0Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) by LV1PR11MB8850.namprd11.prod.outlook.com (2603:10b6:408:2b4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.13; Sat, 21 Mar 2026 10:24:58 +0000 Received: from SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced]) by SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced%5]) with mapi id 15.20.9745.012; Sat, 21 Mar 2026 10:24:58 +0000 From: "Ionut Nechita (Wind River)" To: stable@vger.kernel.org Cc: frederic@kernel.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, rdunlap@infradead.org, ptesarik@suse.com, Ionut Nechita Subject: [PATCH v2 6.12.y 1/7] timer/migration: Fix kernel-doc warnings for union tmigr_state Date: Sat, 21 Mar 2026 12:24:34 +0200 Message-ID: <20260321102440.27782-2-ionut.nechita@windriver.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321102440.27782-1-ionut.nechita@windriver.com> References: <20260321102440.27782-1-ionut.nechita@windriver.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VIZP296CA0002.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:2a1::6) To SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) 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: SJ2PR11MB7546:EE_|LV1PR11MB8850:EE_ X-MS-Office365-Filtering-Correlation-Id: a2e53601-9e5a-44d0-7c60-08de87341a72 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: 5/RptLK5YJFnURq1Vo7Jm494eLz4mktJxTjCfO3EY1B4YA47/wK2NlzthgwP9sYbwUhERHJy5kq1cz71lHq3NqEzCj+7h9xKRH5xVo5ROSQuezYUkgpjWXCA47nfEKRMq9+bDvKz2dzqLiaOV6Ltcxfy3e4QImGcoG0yUKoK558ZgYu8c4SttBe/ogCiFwCn9lnlViBDkRSaO7t5k6VcK2loWXZvDzIIHjg1FyEHDyhqiiH1CfYh9BQ6B9Zy0qxIfygorYtlsMNPo64bo7a4HDD0fj08JCuetqJrWRZNEzpS20yvR/D3AwSpPK56mbV+J0s82cFXmAM/ziLFIb9bP0fc5kVCC7iDsIHtD9u0uKnxr0PxNEltEjqV03H/m31srq1b1ni1S4Xc3JSmhzjWyvGTRxtC9zcDtPKPe4uAHLvxEaxnVRLsElR/VFoPG0c7xsyZ6FE9QFklQARZo4/H498L7LpRPLzwZ6/jp736X6upLgffbNTrzdeEEdTXxV409m7MDHAc0iSUvJqELWLrxNkht7oNDSQUhmuwdbpfSYr5nv0n//ZfRqq0aNZWLx+qVu9TCnQ/7MPsw7TOc+1I2VcJcizoqRO7lGCcSmF1nvG48jaCwnSBHmb3BGx9FrHALfAMAsnE19sQU4r5V6+q0EGoac5u4ILfgdxaRIxYmh7nUV+rSy6oU7cnlkz04IlvcoAIqGf4B/ERfCr+uED0bVdEEbbcRkIIqE5mkqbvzn41ZmVagphqam9b3JYx/2q2NtLlacX/m3SvQUrH45OxkhlY5ef5bcDX4s26vMPykMU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR11MB7546.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?a5Azvq4P2JlWjidoqvjJSiDgNoxswuIXmCdTgS2ktP9HPxD/9Af5+52hMrFb?= =?us-ascii?Q?ANp+lgZAlQsKKw8w6KMnRuIi55Yb4tgyVXJll/EivkKC9Ze6K3v4d98A8fJH?= =?us-ascii?Q?FfWFtsX+1rGvC/7PJxxPahydWgHzkKMHEzkvfKcMDDYN7HiDeiea086/lTGV?= =?us-ascii?Q?XIx0cIt7kIxuLxt3neXHdFZsGiV3Jyyw+QGU+wXTfM1DbnDeK/wbcFqsgIDt?= =?us-ascii?Q?hOznBMWw24jGqWERMmKn3Pd5Vdvg94pDNbPBV0GO5UQiwFfIk+a/OU+XtJy5?= =?us-ascii?Q?2b2K/fRDQXpGnrLsaIjce9XTuEsYRm5GofaAHTG1QV/sfr6CU9j06aS06YMc?= =?us-ascii?Q?LMEonjfw+WBY5zMyX3SQAFGfLWMQAJ29r+uztsw9SUa25PXrWNaVtGzmr57r?= =?us-ascii?Q?radUKaXgtlREsdgeAVgI1QGLu8xiGkhIHY/BL5jdMx3+CQ4glTLYlGJNHtSk?= =?us-ascii?Q?r80eKhX2QKWDo+OlYnVyaDvlhBdXVzWLm9+aRfTKnhfie6rTgkKPCNohw8Y+?= =?us-ascii?Q?+ERq5SA0POwqhMEJwpEp51sfQBxe63eO2zHsv2Pjq3YJOPWwYsIEnCD+J81A?= =?us-ascii?Q?0mbVpNdDFCCTtKZVOfXbWF9J9ecXNkOkzxPVf4mMSZ9v0xAoKH5xRFt7ReP2?= =?us-ascii?Q?ILidsYw7fwyrW3aujKr6fckGnOZqX5wXJF18ie04NIU4skqwb8eTrOrye/jY?= =?us-ascii?Q?joU1hB+QZkpRV7+iycn/AGRBOu/hjgKjYjWmaWdCwkUgXdmTxhb96yQu8Gbn?= =?us-ascii?Q?ZYhDXrPjs+4UvyCh+KeY2Bt6lM+37144ZuB6LFkQugUYULPjAifGKG19vMy9?= =?us-ascii?Q?BqK4rhU4oSvKTWW+BZxWg+bHmNxzXuYhlTMheUk/ODf1ymu5H+0EORHsY6t1?= =?us-ascii?Q?FBD2VePdITWnISLv0a+ZsqZwGFhKZZCiWBLrHdZ/EmqM51AoL/eNAdQcQhEF?= =?us-ascii?Q?uWI7adI06TnpTYLKwqCYGTuuS9rWbmCrxxmzq4jj81EBxj4MrkKXhZVbQycm?= =?us-ascii?Q?yFn2zYAaVnyjxadHk5ZGn1ajefmgltod7gwvmWj9zbeSQD0FykgXX69aqOTe?= =?us-ascii?Q?EhBS95SGaweofHiiyz8d+ct/nws9AgkcmlCbtNQsB6RrWCq9fObbT1jf20Qw?= =?us-ascii?Q?SzBufFuZYFXTLstdVoYouOIBSS1uAPk1u0TrdTHnjHMTu7tp9cJzWpKj0KeC?= =?us-ascii?Q?zBvha/104MN92DBCSSnhUeJjhoUbFms5pLjeDFQbLeeTTUQ3cbFO5whJlraM?= =?us-ascii?Q?5QLdZ8LQjpBIW7BDZ7C7CLNyoDMp3n9NMB4txMnJi4HTKa8ip5CSWeqqMPJG?= =?us-ascii?Q?a8+UKwC0GOQp4A/9EPiM9jN6YLDAj+GFt7GrMl/ix/94riSkdhmknirsVmFJ?= =?us-ascii?Q?xCWLpvBsHkPCGHTS0qNcJdEiGm3Tolz3Q7TGmfgJ1nWvuH0py3LRt5P0q/p8?= =?us-ascii?Q?+yuCXI8z3gYHTn92xwxRvTmvaTM8jQQ2rWtSrEpbhyVIBSn87eU0gBzMytzt?= =?us-ascii?Q?o8EsOiCfLDoktyVEUx14XjromCIroLnWR9ChPNDTzUaGPUoBWUKq6PBESQ/R?= =?us-ascii?Q?T5AGqGN2fRuzTM3LJTsqQL1UwzeVyRAiW8c9jPweuzQOdmv5DtGw9vXk16kn?= =?us-ascii?Q?tn3L5O1RM1uwJvlCdlh5A0A1acyq3RirGFXQglQLqbfJGWG/QyNr5nxabV0q?= =?us-ascii?Q?HCrxVm17+IZWp87G6kzfAi4+gyHFPnGhraRwjwDVbDpC0MPB/ydEmaeovDoP?= =?us-ascii?Q?+MoOKyxa6idj5FLtq1JTugZe5dhnTGo=3D?= X-Exchange-RoutingPolicyChecked: tSxWApIRsOgNRmOkI082QkPa902Wj2HRexAYZSlOoVLYwGUY8+a+Rtk5ET+KIVJaHJ3kKiVaRdR81tT9QvXW3BPRzXycqeQ4eKhBqmdDuTKILoMxD/+J4PyMlkI5xdCaO6m0JD24Cu8fGJEbShGRHizTHoCf+FTJhqWwr2CYSsblDVoyhccbWF+kP/bL50lfohnqSzqK3qehDHyQTl3rX3GLLHmWtwrHw2xrZKhpeY9GGvND5iIaaQrCumz56pSBfVQjMjjdanxK7YzSj+ifPJ7Tz/hvb1PkorvIl/Ie6oOMm9hVSHTtm2VFfeFp6uHDghAR27DzRkSXcHGZl/uT2w== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: a2e53601-9e5a-44d0-7c60-08de87341a72 X-MS-Exchange-CrossTenant-AuthSource: SJ2PR11MB7546.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 10:24:58.7154 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hUQ2h9SjqLUbCTvgba20iBaKTYzFMi7kTjPVm9glEU9X4rBb4NkQ+CH+CeOzTBOARkKkUDn8rBoBThggVgvtTlAsbDZTK5pCUD9YT/ZrPoA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV1PR11MB8850 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIxMDA4NCBTYWx0ZWRfXxgnqURrohQjw 0qBDzoyJzEFGVtE9EVV4Zqrpto2KZNshFTs5oZ5EC1MeYT5/lZwLuuF3Usk/WD+VSMJHj2Y2NK1 Nl37nCHae7iBXLxPzbXKSvZlHXDe/J4e3+eMzHhtq3oQOpRSinmr0xuchGoixNNCl7FbzMo9vJA ALzDViU5OsXqPKJB6FnC0aljn9D7rbilTkd8qg495pbTG3PUUn+w+3KwxnVwwBc3rFUNKVdEtgL kZDYRMlJRSyLRbt/m3J2oUKJYoYo5gGIqJS27O7SzYHuGMsPjOEMywTx3pX5Ojk3gruEd/68agE ypaC4V/KMTNOqD86Jm7IYaQFyxyUcwu/NicGGZYf1QbPFvEag8mKaJOW+/eN8iUV3mPl3iBfSTd 6g8K8YSbGs7QlnYKCv9E9uqFbApi1Bft54Z3cC8CKAVt6XKGFpViOYP+RVWjFKEeLrrckwv4PCT Q7ZTaqkW9T2gF6pw5Kw== X-Proofpoint-ORIG-GUID: vGZzzWH45-_XMBLynteRdZBJUQR_F2Tn X-Authority-Analysis: v=2.4 cv=Scr6t/Ru c=1 sm=1 tr=0 ts=69be71fc cx=c_pps a=XJaUxuKKdFC3a9vqRM80qw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=t7CeM3EgAAAA:8 a=clBZWekMHlowcS1oBDgA:9 a=1CNFftbPRP8L7MoqJWF3:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: vGZzzWH45-_XMBLynteRdZBJUQR_F2Tn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-21_03,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 phishscore=0 adultscore=0 suspectscore=0 impostorscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603210084 Content-Type: text/plain; charset="utf-8" From: Ionut Nechita From: Randy Dunlap commit 4477b0601471ba4fc67501b62b78aebd327fefd7 upstream. Use the correct kernel-doc notation for nested structs/unions to eliminate warnings: timer_migration.h:119: warning: Incorrect use of kernel-doc format: = * struct - split state of tmigr_group timer_migration.h:134: warning: Function parameter or struct member 'active= ' not described in 'tmigr_state' timer_migration.h:134: warning: Function parameter or struct member 'migrat= or' not described in 'tmigr_state' timer_migration.h:134: warning: Function parameter or struct member 'seq' n= ot described in 'tmigr_state' Signed-off-by: Randy Dunlap Signed-off-by: Thomas Gleixner Link: https://lore.kernel.org/all/20250111063156.910903-1-rdunlap@infradead= .org --- kernel/time/timer_migration.h | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/kernel/time/timer_migration.h b/kernel/time/timer_migration.h index 154accc7a543c..ae19f70f8170f 100644 --- a/kernel/time/timer_migration.h +++ b/kernel/time/timer_migration.h @@ -110,22 +110,19 @@ struct tmigr_cpu { * union tmigr_state - state of tmigr_group * @state: Combined version of the state - only used for atomic * read/cmpxchg function - * @struct: Split version of the state - only use the struct members to + * &anon struct: Split version of the state - only use the struct members = to * update information to stay independent of endianness + * @active: Contains each mask bit of the active children + * @migrator: Contains mask of the child which is migrator + * @seq: Sequence counter needs to be increased when an update + * to the tmigr_state is done. It prevents a race when + * updates in the child groups are propagated in changed + * order. Detailed information about the scenario is + * given in the documentation at the begin of + * timer_migration.c. */ union tmigr_state { u32 state; - /** - * struct - split state of tmigr_group - * @active: Contains each mask bit of the active children - * @migrator: Contains mask of the child which is migrator - * @seq: Sequence counter needs to be increased when an update - * to the tmigr_state is done. It prevents a race when - * updates in the child groups are propagated in changed - * order. Detailed information about the scenario is - * given in the documentation at the begin of - * timer_migration.c. - */ struct { u8 active; u8 migrator; --=20 2.53.0 From nobody Sat Apr 4 01:50:14 2026 Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) (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 9E03E30BB9B; Sat, 21 Mar 2026 10:25:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.166.238 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088741; cv=fail; b=cj5BEZP8N3cPCWumls1+EsD34RhBLH5vPTQa/OJPjgflELfz5RK+bVDLckpqbuWxgdyKD8YVkG/7mxoyrl/OX+RFTq7nq7ypb9Pk6GEmdP+jjSgZQT/Cgic4HQryzJQrXUoIZdAJ2DGxs7NR4GutYWrM1N3xCyuFfrKLL8aKYgA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088741; c=relaxed/simple; bh=aW1D2XKvLhFZwaUgmHlTt5B65x0Zq2c2mqBtlsh8hy0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=tz33TilTcVSpPP5MVCb12fsWy6EYGElAzS0Oj4dIV8HNg1e8Velgg6oAeeaMWqQc76L1JQAJ5zv42oHkD1StijuMPGJc2WX5QD4aKjfJ5BknDmSvsUw8k+WDRnOFU+nQ21WNAg0HGJhLrhEo1ABS/unwKlJNyHPfCfwbfDbJ8gM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com; spf=pass smtp.mailfrom=windriver.com; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b=O986LigX; arc=fail smtp.client-ip=205.220.166.238 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=windriver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b="O986LigX" Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62L9uEuC3525421; Sat, 21 Mar 2026 03:25:05 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=KAZsW8SphZ4vX3RO26K59S+AS+AvllklbSkXQB/Wek0=; b= O986LigXmgd0tINyYtORKkFBubFGSnVrfcvVKrhDOec8rD29Ii4jHsvtbEDzYfIi WnqA6/jagTDV647s2NISQ2Ib8ru2Ss73Z1bNo4PpjHKYQdU9jcWQ67mSkZh+bIM6 TynlsYthW7SfbXfQrhJZhdtvTN8nKqFc5n62fa5QbYLsSUSCCdxzMSfyg0wF+Zqf MH8pnVfR8KjstCbGY4JoRT9ZFIvi99OtLbxxrPWKCzVmYuQjdGgpjpK4FJiN8OER yvtvW/kPzuiedhU3JRd4MsMOnjZgA4rQF/Mp1Piy5rPz2F5Fnyalwbt9LcJ/Zppm TmiknjK3nFtW4qCZlC0mTQ== Received: from sj2pr03cu001.outbound.protection.outlook.com (mail-westusazon11012005.outbound.protection.outlook.com [52.101.43.5]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4d1pky834r-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Sat, 21 Mar 2026 03:25:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Bb2yLVSV3keEByFG4S4YpNF5+JTU6ZVoSsf1g9cJ2exi5R0ijTkdW0t3EYh12QWtKnMnZJBDUvdrJo1yM8s8g4K74FjQTQ53/EA4WCr6Xmmmg/e1MsG1k7wIyPTzylXgnTobbA887ucNbNK09gDmUd0peseDDWjjcpOg9Vqg+LS8ZK3f6iwIPk1t7RvMCzuclQt6tB/xrhQHBcSivSibYWue1/uc6bqOl3IkKeE4E2QDtAXTso3HnI4I6URo0uiot/Hw9AyxcjK2vccLF7/LkhxupotFet9G5fqFoTgajXUrsIBQZgTLjIV4PavZiwyUcksrPVc5K4Gj044ub6IRUQ== 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=KAZsW8SphZ4vX3RO26K59S+AS+AvllklbSkXQB/Wek0=; b=Y4RyWoOdAb/XKNt0VhydKQdPwlT+kCslcPT6ERgCO77mBQWxhD4asHoRca2XND0XsD3EVakKue8r1+6Rj1ap/vyG/fMuDz4wMr0HMaliXUgrez01oIorU1SZtm6C+J3UvkHGFbXywJZyPEH42fWFGwM8SZsgUTsJJQdr0MlJEcuCrwDWG4Jb3q2MhqaIHj3WOI0QTIp9dHiPhqJojIp4Dxci7P7NhK81991Chgal7TdBoSqHrvi9d16RvYwcwmFlRwb6vq9Q3CGkSXuz8S0uZBaSjZtE8KV4ntIGB6wStN4mQmcLtKlxBfGHgpYhvpcGBWdKY/At+F7R4kwNOw5Yhg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) by LV1PR11MB8850.namprd11.prod.outlook.com (2603:10b6:408:2b4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.13; Sat, 21 Mar 2026 10:25:02 +0000 Received: from SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced]) by SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced%5]) with mapi id 15.20.9745.012; Sat, 21 Mar 2026 10:25:02 +0000 From: "Ionut Nechita (Wind River)" To: stable@vger.kernel.org Cc: frederic@kernel.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, rdunlap@infradead.org, ptesarik@suse.com, Ionut Nechita , kernel test robot Subject: [PATCH v2 6.12.y 2/7] timers/migration: Annotate accesses to ignore flag Date: Sat, 21 Mar 2026 12:24:35 +0200 Message-ID: <20260321102440.27782-3-ionut.nechita@windriver.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321102440.27782-1-ionut.nechita@windriver.com> References: <20260321102440.27782-1-ionut.nechita@windriver.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VIZP296CA0002.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:2a1::6) To SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) 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: SJ2PR11MB7546:EE_|LV1PR11MB8850:EE_ X-MS-Office365-Filtering-Correlation-Id: d24a1369-4d82-4ceb-b194-08de87341cc6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: SqP7/qhBhUEAkdU32IDBudqsZKkJtA6caHQWCGWrpjtAqRfb8thvY5VoF8yr1b2v2B6dxQ5RlP+q9QobRSaW2GL2rwkUtdgAC8bHfaiO6X/+8SniLoT0Was11iLbQREMgep0T++MJekvpZO83dj/7fu3YZK6nay6OVakLVYKYLFIzR0+ay7EyiW82iqcKT2Ez9LS20mCaob/ooTBe6McZ9mBuyjsuN8rmjhLEv94YW4kDFDkzHq1RkPz3yqXZPMoSuZY8Qo0/znxJ/xqwZU0CwgDthMLGQaJAcvsNmRlYrL4QBLG4JUmxvs8ksBpyOzk6ca78ovwnharAEEbfWsI727OfHxzQtmLU06uEPVp5Nn1gsTHtfE6GLxOm3GbbLe4iiT6TvOI6xaR2S5v0cE8+SnanwIx8d/04AnbSv3b+fNbv2aqhZbv1PtLGlcbArQgenTXuSIBKPSm+llIGoLIL6YK6qNGhdfaSJg7JnKANoWTDz+G8E+eU2QPamNbcIcVhfHVeD4E5brd4v2/P0HblEGGI7aFnB6KE8+AHIbvnqi+IlF0hEblcEOvkJ9trCkWg5ratW0BN/GBYfojyeqFLY+U3jUGdzfjfU7w41YlLxUQ2nUMbgKSM4EwJwQh6hVw3fzHdMtzpdFwsGpt+5vIJD5Z/ZQ0OclE0MsIJv7m+IjAv3KlXVc7VhNuUNos+4c36Y33aehcVyOGQGo4C6qMoA8flDE7f7L3gh6Xo5yfhshQXgchabe/0uET8D4h2Ia0x5Bd8AMI3NnZsDIeytOSmQF+SyGtfAFte7tnIu3EZJMB4t+7INUxW0VIdmK1p3Oj X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR11MB7546.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JlFu9YbF7nkczBGI3QovC5cqk+ITXXj3mAHi1ZtIUeUsjHKbZO9+vnvKR5JW?= =?us-ascii?Q?E7hQf7AuzJuMpkY+55CCyOVrQ5xgkjIokG2TY8QWucdxzZO5AlrfCNvg7z+I?= =?us-ascii?Q?ty091FB+3gQnfr/U0Whs5m2+sAUyDG4t1YRW38I7B4G9bpAtW2rutheH0GGz?= =?us-ascii?Q?vvUxHbpAR0HrGZLdPXiRx/mm3Av+rHIGcs5Xft5Yxa73gCff/weZZORleS1I?= =?us-ascii?Q?SGvMe5yCtJhThYnHXZsv6LtCXzMfl6mlYASDEAaBrVeUL+AVdsCUrwN8b26N?= =?us-ascii?Q?Ul8cbBtXuCpnihO+0dhtMcrBkDAZSxGXG6ozzgCTD629x1kzXZgd28Em6nOZ?= =?us-ascii?Q?gONGr4CZYxFcgOF/dJJseteQX/sO60+omG39TskzvhKOUdYxkTXmnyZuBjLL?= =?us-ascii?Q?+iOW62uMwz3yQd+sLjLs8H+6yM/SGak8Xqwpx9FPUqc9tG78u+JQNagmaE+4?= =?us-ascii?Q?s2CgEsXoYF3qzxsOOSBZzza78Nv6z8mWMBz6Ut4XWEaOKPyTXjTSVL6EDgDS?= =?us-ascii?Q?feEPpW9C+KsGcL9QqjZ7dUh9W6zKBLOLkHx5opVliUoHLFtK8sDYmkno6TjQ?= =?us-ascii?Q?q9ihdCuk5S8NfGW09OOLclb7zKnvttou87tWLj2ndg+ywsCzXq98kh08sV36?= =?us-ascii?Q?SO1cGZzu1U4/AWadXoyktS9TCUiOP+oCKd5/YSwBId12az/+0HSlACPmUaC+?= =?us-ascii?Q?5s6UR/cUc47vlQubF9JPPeZQAO0PQsgn3t2OLHkWdamhnFZZxfP9uEkezlBg?= =?us-ascii?Q?SsKsugFOiKanOcE/pCiq7hzxi59CJIiEGQ799N7xTBjEEOrJP6PlGZCQXG2W?= =?us-ascii?Q?y3b+dRqJspWiyfBp1HR51ySF9OLlwhx5MQdtqcq4ZENgCBY1gm2rSMXAdWXq?= =?us-ascii?Q?g2TnRQlPUi/P3x7P2PX1XYz+qKDxJ9XUEKEp9jUxmEFvImp+Nhav9u7gh6s0?= =?us-ascii?Q?+nWujusMqYivkwXxzMsOLi/s/coj/mMKSu0lN1xe+PNvbszzbZWTKguh7S7Z?= =?us-ascii?Q?M8DHhRk2l4WUeplCEH0jndW7nPv4v131g3FgDflF2EJmHiIhz4K0zzpXhrhy?= =?us-ascii?Q?Xtn81LuA9mCUD240ahYN/PvT3JcubXW4n21bQ7zSbKC5RtIBwbBZisGgFiju?= =?us-ascii?Q?gM09zWdiBGlHDk0XVQTUTnQ+SAnSQlT/7HlWr49nM+iOTduIM5BJZunfXXcE?= =?us-ascii?Q?A4VkyI9nZ/iDcRJihCS8MdURQvaVERMbJbmtr6HygTwekz+uuQpbZGGHS8FO?= =?us-ascii?Q?OdaSt/7uR7wcXAATE044r28GA99sgv2tjF/Ei4O+SyzV1loj4sZnEzcvziG9?= =?us-ascii?Q?88INN3iBfzxN6P34MINhd9Q1l/7nahmel1sswj0gx1luTkboohLBH/hEVipn?= =?us-ascii?Q?4tCcVgHduW5p6Lzve4FZqJDv0qukYtC1gVeAmDJxiUCZtpC/oxYcPnXcTkTE?= =?us-ascii?Q?ZcLi5bsq1g/yeNiOOyD7dw9H1f0pX7R3xx7LNuIQNq2oiO+QPwR7ePasJPZP?= =?us-ascii?Q?fbO+muokUuBoQ5JGLxS34NDOUfga5IB9aZyyOGj3o1vVs+SAl5/cGGHjQHMw?= =?us-ascii?Q?oSLByDKSgz8LLGPTzaMqbhWOOvc3CF9UHsYWj5hlMvUbflOvQpj0+4aiJpbK?= =?us-ascii?Q?RBvwNKHvxlkqPpt2gbJjg6X/oSlUX/IGVB5T6V0U9spaC/cIWWtkcio5nWue?= =?us-ascii?Q?2YsckIAc3/i7d0q69XgG0ZjokYR/8ZTjCoqEoZVDCgeHvs6dYkNMBt/31zRm?= =?us-ascii?Q?0f9qWxoQE04F2CDbI8uxjtdXyXR1GlI=3D?= X-Exchange-RoutingPolicyChecked: fXSYPS7jPp4VVIgxZAqj1AVa1MtKZVIo32s1HZ0zl/cfSw16gaJdBurMClr+LMEU9U4zZABWoq/hR4TLTPGSvF+P+l0wmvSDI/BismeGuR//TY7cPZRHBgDYe4Ejr/CotQ2gJraxKIzaLxQg76F2KjcJ40U48DouTAcLlGBPcJGOSHMyU5dbC4LYsQNIfkK5K+h8YAjuJ5cyBfxL+KCBsrixcbuu9URYOw9XEUtub7u5pflgyng/KPcWGmvKIAS+0jIjn0xtYKjg/z1jOZFHmJ9ONd12ARhIiqyhDq8qJv+qIo/FL7H4PolnaXkU5iL1DKZ3HjCjAES81J8TFX5y5w== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: d24a1369-4d82-4ceb-b194-08de87341cc6 X-MS-Exchange-CrossTenant-AuthSource: SJ2PR11MB7546.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 10:25:02.5741 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SfdDwlH/D5OjS+b41cU6TS+kLH9SkI0ItCtwMK8W49g91HEFyfvMFTUHySGKFgnSQdCyA9MCYqmiw2MCzPOCTuqbHtkSuA4OWr0mJJoHDuw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV1PR11MB8850 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIxMDA4NCBTYWx0ZWRfX2YS+O6CfCjHY M9EL4O7tmHTydHDoPiQhlB0ADaqJsRcl+kG6Ib58mMQ8/4pc01p9D77UfLRtCfrHh8hF6pjjsh2 8px76a2n8O+xoXSLT/EzuvqpXcTfmMron/RrVez0MmVM+UAIVgz0SxFT/JQHd9DsucyYpNhX+zD jDZI1CSUULldPtLfkH30RsVgCmNKy1ox4WBVg3NhvQ3OU6+q5B7+6gN5ydCKv+IjXtQEImoR3cT dtoMiWFqZ0krIpGI/d5tY3JgiSZ26L83epLNDfrPHFwjAZYDtUNvH2zweKvGVyH2sR2GK3/lhMT SDLV5Yt2uW6YLvvRD3fjNvxWCDEdd40b0WE5CVV+QBWsEve4fL9avmyDxlF+VFtx7QSD6GVRnJw Vhz04YB7F9etbduOIbS7hNtS+GYP9OE/Paullg9LPA1xsQdF43zExWZ/5cvD92+Hby3QDrpjd/+ rTOy5k+ljzAmvX6ApmQ== X-Proofpoint-ORIG-GUID: 5EiYp_Svk0Jnec5Tgsyh0wgAszizFiVW X-Authority-Analysis: v=2.4 cv=Scr6t/Ru c=1 sm=1 tr=0 ts=69be7200 cx=c_pps a=Zi+2/POLpdgQ9anv5Nu4tw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=VwQbUJbxAAAA:8 a=QyXUC8HyAAAA:8 a=t7CeM3EgAAAA:8 a=7WZfy2cueCGYbQ_s_o0A:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: 5EiYp_Svk0Jnec5Tgsyh0wgAszizFiVW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-21_03,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 phishscore=0 adultscore=0 suspectscore=0 impostorscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603210084 Content-Type: text/plain; charset="utf-8" From: Ionut Nechita From: Frederic Weisbecker commit 922efd298bb2636880408c00942dbd54d8bf6e0d upstream. The group's ignore flag is: _ read under the group's lock (idle entry, remote expiry) _ turned on/off under the group's lock (idle entry, remote expiry) _ turned on locklessly on idle exit When idle entry or remote expiry clear the "ignore" flag of a group, the operation must be synchronized against other concurrent idle entry or remote expiry to make sure the related group timer is never missed. To enforce this synchronization, both "ignore" clear and read are performed under the group lock. On the contrary, whether idle entry or remote expiry manage to observe the "ignore" flag turned on by a CPU exiting idle is a matter of optimization. If that flag set is missed or cleared concurrently, the worst outcome is a migrator wasting time remotely handling a "ghost" timer. This is why the ignore flag can be set locklessly. Unfortunately, the related lockless accesses are bare and miss appropriate annotations. KCSAN rightfully complains: BUG: KCSAN: data-race in __tmigr_cpu_activate / print_report write to 0xffff88842fc28004 of 1 bytes by task 0 on cpu 0: __tmigr_cpu_activate tmigr_cpu_activate timer_clear_idle tick_nohz_restart_sched_tick tick_nohz_idle_exit do_idle cpu_startup_entry kernel_init do_initcalls clear_bss reserve_bios_regions common_startup_64 read to 0xffff88842fc28004 of 1 bytes by task 0 on cpu 1: print_report kcsan_report_known_origin kcsan_setup_watchpoint tmigr_next_groupevt tmigr_update_events tmigr_inactive_up __walk_groups+0x50/0x77 walk_groups __tmigr_cpu_deactivate tmigr_cpu_deactivate __get_next_timer_interrupt timer_base_try_to_set_idle tick_nohz_stop_tick tick_nohz_idle_stop_tick cpuidle_idle_call do_idle Although the relevant accesses could be marked as data_race(), the "ignore" flag being read several times within the same tmigr_update_events() function is confusing and error prone. Prefer reading it once in that function and make use of similar/paired accesses elsewhere with appropriate comments when necessary. Reported-by: kernel test robot Signed-off-by: Frederic Weisbecker Signed-off-by: Thomas Gleixner Link: https://lore.kernel.org/all/20250114231507.21672-4-frederic@kernel.org Closes: https://lore.kernel.org/oe-lkp/202501031612.62e0c498-lkp@intel.com --- kernel/time/timer_migration.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c index 72538baa7a1fb..0707f1ef05f7e 100644 --- a/kernel/time/timer_migration.c +++ b/kernel/time/timer_migration.c @@ -569,7 +569,7 @@ static struct tmigr_event *tmigr_next_groupevt(struct t= migr_group *group) while ((node =3D timerqueue_getnext(&group->events))) { evt =3D container_of(node, struct tmigr_event, nextevt); =20 - if (!evt->ignore) { + if (!READ_ONCE(evt->ignore)) { WRITE_ONCE(group->next_expiry, evt->nextevt.expires); return evt; } @@ -665,7 +665,7 @@ static bool tmigr_active_up(struct tmigr_group *group, * lock is held while updating the ignore flag in idle path. So this * state change will not be lost. */ - group->groupevt.ignore =3D true; + WRITE_ONCE(group->groupevt.ignore, true); =20 return walk_done; } @@ -726,6 +726,7 @@ bool tmigr_update_events(struct tmigr_group *group, str= uct tmigr_group *child, union tmigr_state childstate, groupstate; bool remote =3D data->remote; bool walk_done =3D false; + bool ignore; u64 nextexp; =20 if (child) { @@ -744,11 +745,19 @@ bool tmigr_update_events(struct tmigr_group *group, s= truct tmigr_group *child, nextexp =3D child->next_expiry; evt =3D &child->groupevt; =20 - evt->ignore =3D (nextexp =3D=3D KTIME_MAX) ? true : false; + /* + * This can race with concurrent idle exit (activate). + * If the current writer wins, a useless remote expiration may + * be scheduled. If the activate wins, the event is properly + * ignored. + */ + ignore =3D (nextexp =3D=3D KTIME_MAX) ? true : false; + WRITE_ONCE(evt->ignore, ignore); } else { nextexp =3D data->nextexp; =20 first_childevt =3D evt =3D data->evt; + ignore =3D evt->ignore; =20 /* * Walking the hierarchy is required in any case when a @@ -774,7 +783,7 @@ bool tmigr_update_events(struct tmigr_group *group, str= uct tmigr_group *child, * first event information of the group is updated properly and * also handled properly, so skip this fast return path. */ - if (evt->ignore && !remote && group->parent) + if (ignore && !remote && group->parent) return true; =20 raw_spin_lock(&group->lock); @@ -788,7 +797,7 @@ bool tmigr_update_events(struct tmigr_group *group, str= uct tmigr_group *child, * queue when the expiry time changed only or when it could be ignored. */ if (timerqueue_node_queued(&evt->nextevt)) { - if ((evt->nextevt.expires =3D=3D nextexp) && !evt->ignore) { + if ((evt->nextevt.expires =3D=3D nextexp) && !ignore) { /* Make sure not to miss a new CPU event with the same expiry */ evt->cpu =3D first_childevt->cpu; goto check_toplvl; @@ -798,7 +807,7 @@ bool tmigr_update_events(struct tmigr_group *group, str= uct tmigr_group *child, WRITE_ONCE(group->next_expiry, KTIME_MAX); } =20 - if (evt->ignore) { + if (ignore) { /* * When the next child event could be ignored (nextexp is * KTIME_MAX) and there was no remote timer handling before or --=20 2.53.0 From nobody Sat Apr 4 01:50:14 2026 Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) (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 B67DD2BD11; Sat, 21 Mar 2026 10:25:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.166.238 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088728; cv=fail; b=iYtEWu0KAv/q1znPSjVDJS1AhBnheIU68xQgR4zhYLYzrqDGX1mUb8PlYjugYapVc1s+NnRgIXKnI8fnfTVh09jpOnFZCejZ8EUm3TiUPWnJOYnVjciMYvmiev5P+dYvJL+OR/u2SsfPgCWFxTQpw/VKhQYJzBLabf3yIsV7k2c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088728; c=relaxed/simple; bh=2T2/MqaYUq9EYC5/4tKmixmV6wIGhG5QLHUS6zJfb7I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=KUd48TJopCxREV2TApyV2YbsgcRpt/tY5j+7tb6pzTeWL4gx++MpZTiS2EOWs1s3EmpGCQq7iXYK7CfAD9T+Ivcz4WEVr6K9O6DbHfpXxcy1ai9enp4EKC7K4rZQlfgVxUBrL4S7LQSpzuMF4R/6D8pRhYnIi3YWMjG2lyMMzYc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com; spf=pass smtp.mailfrom=windriver.com; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b=U5nrTOi1; arc=fail smtp.client-ip=205.220.166.238 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=windriver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b="U5nrTOi1" Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62L9uBOL3678324; Sat, 21 Mar 2026 03:25:08 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=YcrZsIvL4ra4968KR0iwTmP0GMV62rbUJRzSptB49G0=; b= U5nrTOi1GdBMXA+HYqgpielVq4J0CbEVC5NlcDPXrzg5faeidgscgAxSRwnPIzOO C65mRh/IXZ299ZfRKcJhMis9Va1iAmiFr/w6HGGpuyrStxR8frxGCBA02xXxQYmO IEHji8LIMEexMYqz8ALDZjqXzZaOV+7yb6uyC9twXSa/mdJrhrKYkFDvr1b96PxJ UlZgtvLI+2fT6S5tqdHfB/1uKobhtMYMIwS7Dr1pL5NnR899y2TRbIlVRlvmUFVS YTGYlwyvEg28Rc9QkSR1Wg6Kb1vKjuPU3ref249H8LLVieP1UTzk8GsaR7mWMnkq LeU0On5F930lxiku7jIlFg== Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011046.outbound.protection.outlook.com [40.93.194.46]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4d18uggv7v-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Sat, 21 Mar 2026 03:25:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=feMKf5rPXRBcpRIGHH2aPE4wMfJRsBErPboOSQp9/UF6rjZtPzsrjR+/FkcEFZmWYtIti2AJvAOHcHB6pE1qprIDNwvBjDZwzK7HaA8ZjXWSy8uw3jKeaF6WFqwm2fevHjWKu5h/K8YgVnJx/PKUOsxSw0XSFyKlqFSVHWvIPcSF4b2891ubCdXp/NRzX9Y03wvftSJhHl4uj+2TyeT2G5TbzN44xE72HOAl/4cCt3Zj27jwOmLEVOUKAz6QjSTGYq4l+sVBe+2iFutEIZKw6yDwzz0Y+9yzgmFi7Hs50WnO13oYL0W0dGwV2jrtEpkysdv+hTy9q4bJabHeu6Cdug== 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=YcrZsIvL4ra4968KR0iwTmP0GMV62rbUJRzSptB49G0=; b=foKZExZXQPwusaf28vpiP55vKjSogcHmZ8qmrV5qOAiIoKjapkBdtkLfWSizUr8Hgl0nCdZVsDbjsl1fBC2m1xGdHxaGz9u1aee/X0DQv2E9E94HxgegcdWQk3Df3LDiZiRCszkRpgaciz6mj+Rolqe6Re8Im7kd4Z5ONl259MfoH5CT4+Gtzt5pejxqMzI2Ms1x3OJnbTEM1evXH86iqzjB6/d4eLY2WJ0O9fsOU5sjf6SMKZnqdhV7ZbNAA06dWfvtDRmMvILQIU6IrrT2oG4j3+Z9SNxWlpkQEmQ45uScmhS2e+sWdnIuVySR9H4wk72SQqrar99+l0x06p+XGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) by LV1PR11MB8850.namprd11.prod.outlook.com (2603:10b6:408:2b4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.13; Sat, 21 Mar 2026 10:25:05 +0000 Received: from SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced]) by SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced%5]) with mapi id 15.20.9745.012; Sat, 21 Mar 2026 10:25:05 +0000 From: "Ionut Nechita (Wind River)" To: stable@vger.kernel.org Cc: frederic@kernel.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, rdunlap@infradead.org, ptesarik@suse.com, Ionut Nechita Subject: [PATCH v2 6.12.y 3/7] timers/migration: Simplify top level detection on group setup Date: Sat, 21 Mar 2026 12:24:36 +0200 Message-ID: <20260321102440.27782-4-ionut.nechita@windriver.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321102440.27782-1-ionut.nechita@windriver.com> References: <20260321102440.27782-1-ionut.nechita@windriver.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VIZP296CA0002.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:2a1::6) To SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) 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: SJ2PR11MB7546:EE_|LV1PR11MB8850:EE_ X-MS-Office365-Filtering-Correlation-Id: fd594ac1-db9a-4310-9224-08de87341e8a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: AD/tM2uchFANRqkf4wHi7hSXRrpoONtlfBnCtNZdSu+a2OFRayyndbdBJwmFeC2hY3lEYA493+Qc1XEUtLvunOVf8ziaL8RIi7lifyQmuiNJHUhm1ROmyDtjPCgOjhG0NobT+7VRD/c78o31Nvb8c5gxe7lRVq5xiEycJEhOrbu+nNbFkrmuO5/3+RP276Ad2c0L5csKgumA5mY6bgLvarZIeIw5tdhgMqpbQ/SAbD/w0be3H+E70ZaZJaobloiIA6vzTBg8z7s5JZ+XmVqF7rb/5CKp+kfi0ASOjju/IoeAKGX4qQMXYlt6yc/GaMFO4c8xlrcwwX8li1IBeCT9iCi5mtPc3karQwyY/Nv/Pm6vTcziVToawLTCI/akjCHwcMgoayYq88pf1qbzlF/d47MFn2JiLp+h4ysL3vsOjW9UrUd+xcWKlrgPEPwfbR2zFPq00nfgnGdrq+n2eE6+bb14SsvG/X/9r/cH+Ss9yMWdvr8/9e6fShehsfiSwyzkwD+X9NIzrTmWQ2Spn3Uq5P+kzvji1GCFJqX9RWx98pYoOBaPZ6xLWYmCbm9+nypoBTUGnHd0k5mUuR8yEP0XVggyiNS4VdfxqKr2BLrr4VDUbYGSikD+BhlcV2rTSaXUnmvsJtUdPpTYQE1lopkkdkjDqTk0soJX6/ezSyfOw3Nd+zd8m24+CHczw7ECRth7XpASTOQj/xgZPxr1TycBJS9MUo5wfl72a6oSZF4PpoeoQdbcA8oRrG9DK4VOH9N6yVDXWO0Fnv5pr2WOrpOKKuNNDGismJV/ihHOrpQvBVk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR11MB7546.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?o5Kq7NdxiWNod2fFSocJl5JEUqNfJ8BYEVOj7chHUHTJwXkmGawFcinzhZh3?= =?us-ascii?Q?3y21kXzPcUMSwA4ZJ7NGp70GCSgpaWzdJds0CBkFRVRv1sBqyLQjSssUX/O2?= =?us-ascii?Q?CFf8tge2CoTltrLygqEWDqBOrIqaLoQJl/MoDgGiZvWjK4HICDYhSmnOezsL?= =?us-ascii?Q?cLY0idkjaBJIC7F+d5M+4P/1Y6Zbg6cQRqQwg32tAsYoSoiv+dnXXjhs2JtV?= =?us-ascii?Q?pANJ4g3cOYmv3CUOs+fSFAAbc266IX3CLG2hXC5xmhlfqCCnAlLB/SbDMNCz?= =?us-ascii?Q?4YmRMHABDp8bUbKC153Ak+GNnVSoygPyefr3XdpmwFqX0nEq3ywE9xISHSwV?= =?us-ascii?Q?0w30AiYcY/xz3AlqnkSX59nBnbBaPYrDgY+YayJZl3QxyRWc6Na2RKKqhzsd?= =?us-ascii?Q?dJx1VbmS8mWvC/I6rAfL7/GOOp340r+MrjBOiDp6aMTiP2EtoO2+Xul5Erfx?= =?us-ascii?Q?WmbF2clRhFZ5UneUk9s8me+I88Ewk+EGlwWeXzERlsDKzRbfevAFIGmwz6Ua?= =?us-ascii?Q?Ftn8mVjRdiOS7iQrUzkURtsA0Vpps3wXehEBwY4b6LZvZN9YljtwTgvNVr7+?= =?us-ascii?Q?B03O6GlbenRH+bpuoxng3JzkMv1zLNsiSEu0i6DhLlmeTGrEhEAthPLMIku2?= =?us-ascii?Q?eYt/lOR6HsNMDS2BVoALLW1D1hN4XCfnxveqDmMfjqwE+BvSFrpbT0E+f70M?= =?us-ascii?Q?cfJyBYD6TY3FwoQemao7a3EFGeSyHPi+HHDecWou2iiWB9JEyH9mmvyYozDi?= =?us-ascii?Q?UGfetbvqsSR1ZxZ3re3NkZgSCjtYJEOOzLcEXDdbySeyK78Dz69ru4XAPvc8?= =?us-ascii?Q?LkgiqzRMs8i8SKlP+hYBN3SmGNu23IFzG5bUur6Y2uqwhCj2QYV+GPJUeRrQ?= =?us-ascii?Q?h/aUbExhYEE3TZbgb7CIGgt4E0N11QC6s6x6JihS2yFMjmHZ9ToZlMN8g751?= =?us-ascii?Q?eRGO92bWrTLeqEscDXf5eYUFf3LCQEzbe/h7BqzBwV0L1AWx7EzYbHFvA8QS?= =?us-ascii?Q?JEpfEYOXMUyaMZxYYEamcP4wORRqLhV9GK+O+JX5nqa/NY/8RAA2Q0oyeUJB?= =?us-ascii?Q?SK7B38zvWLSMLth2kz7wgsHKWx1ahJXPkA+KuzdkGznsyp2NQ6YKqd+PpMIV?= =?us-ascii?Q?+BRhfvi9CTkAnumiIVxfbxvSV2+BEz/g+bIOkHSVGvfD/PMlpQRTcJgSEibI?= =?us-ascii?Q?ZU+3VtuAjhzKPuK0bVMMbZDcYmDFCbiMKQt/fnA674LXGzjr6BOSqqmBGNlz?= =?us-ascii?Q?Aq9QgwqYA1OUNa7iBvbnmE6yMg1kpujX9urFhgBYuSeSSr6r1M1oodQRN1kO?= =?us-ascii?Q?yzg2jgWNdu81bJHgroutW0XMRS4nWu/ZatKHgN0mBbMe8XAfNzMAl2wspkmk?= =?us-ascii?Q?3K1ei1EabamBJL4zNYkROmUZCEdVYQoUN5B+4PnWNcNpXwX3uAxe0KXg0IUj?= =?us-ascii?Q?D9vzO3fFA1VXSG+R7q6Qu3W6JTpPgVDi+pzaQBscEg6pyH5nDqD6rmNp+OrE?= =?us-ascii?Q?Hb/IoNcpHO0eK+kPXB8hVftd8RRr5lqGn+T24ks+ty2b+H9ns9gZR8MAAgET?= =?us-ascii?Q?hXwKzEMZANhf3c/9hPScSJGHxq5EadSjiAmxZGuzRrDjc7scVViXF6utMX5V?= =?us-ascii?Q?myfQOspTB2dkNEIITuFEQWBYcs8j6EVVrklbbIXmg2Y24lrC0++BARj3Xjhv?= =?us-ascii?Q?qasnay1U7gbToG2co4JmWP77TEDdUHCnmF6Ha4kcoLsrf36gpr6cosJkoVwl?= =?us-ascii?Q?FxiDi0KmPuD+2ausa9d6IFz5XHvV/0c=3D?= X-Exchange-RoutingPolicyChecked: OFLnlC+6n0nLzaDMFLQFzsEUq3OKwD23YdOaAwijRq+PznwoNJ6QeX9cpr1wadxJLzwaaqW3eL8XFmwn4CosTDlAkmHT1mkvueH0jltK5A1pDDfCf5k+RrnmDkN3OlHyysZ3Es+ds5j1iSzjDnR1qhrvtjw7E1h/hydU0T7sILZDZK0kKbRF8j9DZRqvU3G8khUu2jDpsYnL/89JY5Cu/8qyUV68VO40jdwrxlq88OS3sV6DdjhFfv/3g30eevz6LzTMU20YibReBhnqnGYtUYdniy4rfqe2Y4DKn4jmL/NQlitt2w2Bmb8rLvLTQsow6LV28sHxM2s5NusTn5HArQ== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd594ac1-db9a-4310-9224-08de87341e8a X-MS-Exchange-CrossTenant-AuthSource: SJ2PR11MB7546.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 10:25:05.6702 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: W5ja6lQibp0/e/SksNyjYLBtg7j589J849QJW8yP/8b01dRTxfU7KwMUUWSfPv9zrUiZe4S+Dlx/RdzYigjV8oevuaarm/AIpFz7xqWCmbY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV1PR11MB8850 X-Proofpoint-ORIG-GUID: 2FNWo0M8VH6V5VQe02AojAYVGPVjznZj X-Proofpoint-GUID: 2FNWo0M8VH6V5VQe02AojAYVGPVjznZj X-Authority-Analysis: v=2.4 cv=A89h/qWG c=1 sm=1 tr=0 ts=69be7204 cx=c_pps a=kRgXGWC4h8N5Zk8PQP6WEw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=iKiJcTA2PjBS6x5JeXcw:22 a=VwQbUJbxAAAA:8 a=t7CeM3EgAAAA:8 a=a_7miW0GuXv1hvqcwZwA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIxMDA4NCBTYWx0ZWRfX3FZPLUa7ANko Jc8zQKOcYXIEogucmGSldv2Czy3H/VOn3/OUauHUVOXi4xbHF0xKQn8a/796pm7nzXHaVQ2pNQM 4du2mEPj+U6JvKLGXE8TCSEVZRQLKpQl2EQhvOj7OhZAKWgbGer8+dFLQ9psAftJmh3xpwYnN/o 9m+IM2xSrXleKYis4HwYHQ/K0+W8F/n7Jqyim+P5YrRUQUkLkvACgBN38J5lK5yuGhSogpe6aQZ 9oJAvnlAIppTojYC9DGjZdN1aJ5y16Ju9fdrUODv2+I5SESPqIhFh2BR3Te2bCHMELLcBq0fuWz XyMFqWL2273k6ZYMiFbX1lHM51Jkq/E611DmPTYWeFwEli8GDp4HiHKGowkXwKDa/MlL7b755Dd RIFMaHIZ8UPSG4CgXseQxsHdY+ywzA2zSAl1pIBaBCgCcShrHUM1eQvXd7AaYW14iFnOKcSizxr EI4Kc62zFAsUF0WmTdQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-21_03,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 clxscore=1015 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603210084 Content-Type: text/plain; charset="utf-8" From: Ionut Nechita From: Frederic Weisbecker commit dcf6230555dcd0b05e8d2dd5b128dcc4b6fc04ef upstream. Having a single group on a given level is enough to know this is the top level, because a root has to have at least two children, unless that root is the only group and the children are actual CPUs. Simplify the test in tmigr_setup_groups() accordingly. Signed-off-by: Frederic Weisbecker Signed-off-by: Thomas Gleixner Link: https://lore.kernel.org/all/20250114231507.21672-5-frederic@kernel.org --- kernel/time/timer_migration.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c index 0707f1ef05f7e..2f6330831f084 100644 --- a/kernel/time/timer_migration.c +++ b/kernel/time/timer_migration.c @@ -1670,9 +1670,7 @@ static int tmigr_setup_groups(unsigned int cpu, unsig= ned int node) * be different from tmigr_hierarchy_levels, contains only a * single group. */ - if (group->parent || i =3D=3D tmigr_hierarchy_levels || - (list_empty(&tmigr_level_list[i]) && - list_is_singular(&tmigr_level_list[i - 1]))) + if (group->parent || list_is_singular(&tmigr_level_list[i - 1])) break; =20 } while (i < tmigr_hierarchy_levels); --=20 2.53.0 From nobody Sat Apr 4 01:50:14 2026 Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) (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 C48032DF3F2; Sat, 21 Mar 2026 10:25:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.166.238 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088731; cv=fail; b=CQ4zsATcRNoHSuRBQ4kyOv/uiNSQqrq0d43q5NMJQq0mFxbRxufecVGUBaRR3q6583fCqI2qeqNEgrFamSzqdQGsTvuQ0g/VWr9VjrfMLM5NEmg9xTN8nKTrB26+snCvSbF7wpEvGldDrH5xswqqMuqtIa53RCT6SBraW33NEGs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088731; c=relaxed/simple; bh=eGJrFLV/bfrEnuvRyYS0LPspT6IEhXw7n6OpEnaS7ck=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Zv4FUBiViRiqVESJt8xVqvReegeYSaHuiwI6s6u7KEXkFH61cAvVcIooHiXHta2HTpwlkDCvPirbVwzaK2GCCRlppRudxDkYu9kgBSBIPOew9XnDsES6CCVG5AJgyKXYXtVRI0K3COu5xswyVjsQhLNOB1ofrBVTGvakyX1Mvvg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com; spf=pass smtp.mailfrom=windriver.com; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b=iZgumSKh; arc=fail smtp.client-ip=205.220.166.238 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=windriver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b="iZgumSKh" Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62L9tv9q3678047; Sat, 21 Mar 2026 03:25:11 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=ODAZBL+UHaU7ZwKGZgCaljgyhBcOIJrzR87Fg8MUlmI=; b= iZgumSKhR5RlTBZFx5HPelsPBgSZ6CV06l7OaTggPMgH34Xz0Ks9uSTKPkKPQa/q iX0JTPOYEa2eBVcIZRM10kBQys5h7ztMQAhu/6xyC0Faik7TdSYT3ri+EupY/+VV yYfSZoxZgqjcgWWWtwSTjK9v1AVZbbd5HKZknqM+UW3XTa9BKhv/r14uFHphS2LR ej+sddNRy4Rm21yah7phZmme4smmohu5yxgTOBd/Ud2OHnOSv477oTsiMj6rrQhW P+yYbq0dWTTkJo7PRizCkj33BgvQ3hUTvYu3WfwTIBqYpqGYZSGAfnCqilYS/Ole FvzIHoujUx+LrVX26cecHw== Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11011041.outbound.protection.outlook.com [40.93.194.41]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4d18uggv7x-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Sat, 21 Mar 2026 03:25:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cES9K651gWmXJNttUA7cM1GlKq6z+f+U2dhwFYRN4exgeOYGJvUs8mG4CG0KcVWgzAGh8WNXVutLSqfoj/NXUADktky+wtbmzz6RboOLjIr3pr+gqNxo/bnur/ZI2MtXn2XRZvzT8CIti49rGV77dLZW52aTULfJMln9gwNK3Fvit1BBWSgdQ3WnLD7x+lEv4JC7Iqg8FJ0j6bq8FEGIfSypaCJ3i7SWdkJ7TYW0vml3FrXAAGvxtfiFld1xQd0cg+T/xh5+B038DySL9ZVh19mx8+SfXo1dSv2oBDasvVkcYtNQs/jRtDmfT9bBT0J42kMYbDmvRMKW94u/59BJTQ== 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=ODAZBL+UHaU7ZwKGZgCaljgyhBcOIJrzR87Fg8MUlmI=; b=YEvG8aZ6VtGIVw3zGnsDkVyBNs0Uqz0sh0z+83FKeKaW1tG4S1Z74TuA/5rZLAzuVzDSX6R7V1l1y6/24c0I2gR1ex454tbs4R261d9AjQLz/WmftiSQDlhRHQ1aclkBEcw1W2/GgXy7LsvYqNR2+DglsQaPtBW6+JqaW7MRt2yKaXZm83obIe/H5XGhvJZK44bQ9V6lH0IoWIrHofx6y1J6KwkA/9mWdd5SGT3rb/mjGfzuOjXew/xqR7bWqctIeK3yrO9UxRi+c2hx5n++WWbGfpV7F5jMSor4b/+FOk+Y1FU+GFAf7H1ato2n4YL3baysxUpWLyk3tkCnnvy74w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) by LV1PR11MB8850.namprd11.prod.outlook.com (2603:10b6:408:2b4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.13; Sat, 21 Mar 2026 10:25:09 +0000 Received: from SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced]) by SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced%5]) with mapi id 15.20.9745.012; Sat, 21 Mar 2026 10:25:09 +0000 From: "Ionut Nechita (Wind River)" To: stable@vger.kernel.org Cc: frederic@kernel.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, rdunlap@infradead.org, ptesarik@suse.com, Ionut Nechita Subject: [PATCH v2 6.12.y 4/7] timers/migration: Clean up the loop in tmigr_quick_check() Date: Sat, 21 Mar 2026 12:24:37 +0200 Message-ID: <20260321102440.27782-5-ionut.nechita@windriver.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321102440.27782-1-ionut.nechita@windriver.com> References: <20260321102440.27782-1-ionut.nechita@windriver.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VIZP296CA0002.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:2a1::6) To SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) 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: SJ2PR11MB7546:EE_|LV1PR11MB8850:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c455c61-1147-4403-f132-08de873420b6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: Hu9P+jPPABsZ7N77q37RADUu5hsNn3Enwek40/nxWdmTHXePw8kZHXsMLFq6KwRawRUTeC2DEC0bvMlM05x0g36Eu8CHcIlDSn2OqRleA4g9tzb+iey8Qwt08+t5nGBkZ7Obgobt+qgAPwLIGt/1PLe4OsKDoxU8ca+LSQHqUHoV9+C8g2/QxmL0amj48rNU9RqBfwJa939YVHVSppmIkmMCJoHII5DJX+07PVEoQTYQUjLn8g87Xb9GxNh5arzH/ISom1ydbF2o3tlyJMfgMzTiUVOxwL04Te38wjSA4BCXR4FtRtaGu5dC9s1zZ4ZaDg48gZX8z3nAKxKEZpoKMskVZ84MmKzuHJUa0gwK31V2pmxFTS3KSm3V/mbCDX1Y5d8ACM5eFljqfblKQZbzedAEzcqXtwF8NhkSuaB+dlpGYSBW15DO+qeO5ivXL1LiEtBHVKApDU9MHunA+jLax5kpHI9BxPIwcYHmZs8ViUSRYbakad/VkHIyqAEdvRSWWsKjA0OGiA1IKFwDnUUpJNdKBRYQC3Bs2S0sp9DYG787hvP5580+T+xnHR8PkhfdvGCypiXYj4KS8J5xk4Id8mwrNV5Beoyj+G42gG7hh1e32D323qedPCU+64JdxYBSGLXECxlbI+EhzZ854AZKKVxc3dc5cBRNoBG33La/QZCu4le41GDVS7H6kD0Ujwv9sIrMK0CJjnSJY45QhXsi9wC+cRX773RKBxAUaWTD+cRzWS8URFDZe87AUAm4sAoD9SR9+Ppw4SiQ/yR7yn+qATJlu9U0Dr3LDbj41DrKGGQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR11MB7546.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7Am7IebJSprbsJBhTfZyjWwKMv0hVkNjD5P8FjeN3HmQAeh7dz7HUNny7aVC?= =?us-ascii?Q?aEAJVfitxxSaDb1+y3k8GtvH+NKlGTbmFa5qMhF6czqUAcmX/okxqSm2zTPY?= =?us-ascii?Q?kL+Q8kb3An2DXiK3sJYIMaxORDK+ADMschr588Usy/aAh+GksmLHzUSw9A72?= =?us-ascii?Q?8FhF2YOGVWv5FHgHLpHxOma8yZ3kxh9IKY9zo5tYDW9WrrJWTpWqIF6VXt8N?= =?us-ascii?Q?TH+GfCLybBFyFGwte3DMaNT0qvMqYrU4vZnAws4svpV+AuEm04H/kewSkcQ4?= =?us-ascii?Q?2KX1QE4G+phPZ4XSg9reILSf4Z1t/7CFAS38Jb9DkhTP63x0pc+5DIVldLyf?= =?us-ascii?Q?UIvvoM25Mo+vjjsX4eAByppfK+mjWa+SsAA96U+gnbacCY8lPsPAcbJhyIXI?= =?us-ascii?Q?GnCejNI0i+7+QUJmD0LHPOjtu2shY1zRatb7jqtw29eg82rsrdDCY0oY0q0J?= =?us-ascii?Q?AE5Zl/jR3+tluDxe0cO04RXd6zdCi9wRXgoMvobHZfhZNn4Kflp9PEV45gbn?= =?us-ascii?Q?o1Y09GkxiUujbOvYv6OVU242HqytQ53OYM9OzH9DNTk3DmoKO2eqqReMaEuM?= =?us-ascii?Q?9Cr4xzNSfHXPwQXi4IGfKZuUbLeZ6ygeAw2PzSHMwkOU5tIt93eRdmZueJ63?= =?us-ascii?Q?08PUQ02XZEhh5vffrwuXK0bOMv6KTDNcrVxSPLpg9auncP6W7ZUs27bbNzpr?= =?us-ascii?Q?r4E5QyGxan71chZ2lasm1Kkvigax0l/IHIjlkth/pI6mic8Sq+2/R814KV/z?= =?us-ascii?Q?VauEXwIUBcpCiCdub9R0MUjzou5VDDmrOA4OS4tJEHP2kHGYaI3XF7zdsVyz?= =?us-ascii?Q?jvecm+B4zmFmWyz88klxvgX8G51QdSELcbPVomgj+46V5WJxw4nhw0W+qwCs?= =?us-ascii?Q?Pdd8S7CZM4QqimzUVgFWpkeHV17EDHfr+FYNafrS4gRzYyQCnmFAbXKeotsk?= =?us-ascii?Q?jl4HXj0FyPd0wC+LO8DU2qrQqg10pIg9027p7UxE+4dJPqQSD6lP+SFjY7VM?= =?us-ascii?Q?oggXBLSiCu9bniGU4pYinU0P6fauJvgqwDB2y739JDVvmImet0O9F3ad+8Ue?= =?us-ascii?Q?HFnGLH873kYaNbbyGVx8ujBFdRl/03seYGq579+pHESXTTvpJuzQWI0QMAYZ?= =?us-ascii?Q?71+njWvK5Ip9h/K1x3EvRMxKHrr2f6EXy6SYdHOvuD3mx8pc8+2Eg3RTjvQ8?= =?us-ascii?Q?516ZZhgUoqzL6jADh3xIXdLgM5NFVDZRGhjGJzmsKFRWjRgLIvp9jjIoZKND?= =?us-ascii?Q?xDumOYbnX0mBoSKlPIAHoR5yvdLpl3uDoUPWDu37wNCArRosvbZpU/ey3Qy/?= =?us-ascii?Q?aKkBY60JcUW98A/mSimRIrWEtC9G6kpHVU6717gFQzUBJaw8YLQpjinYFZks?= =?us-ascii?Q?+Q/UmI2fGgo1iX4r/vnHK3K17VWe89KH+MhmoNtxWD2WDUo2FM3qtpcEdxA3?= =?us-ascii?Q?iDphabwBmgq0TlzUUv3G+kkYt3VBSD7v5NBcJ91Y4e9uCw7zplsY+8jKAR9G?= =?us-ascii?Q?Nk9oCOnPDpCaYmmtau7r3Yumk02lOE+AX3cLll5S1vWWgFZqu+CrwlwG7gJa?= =?us-ascii?Q?mF+hn3+ANHKX9NykvmDjzd5AsCBzAUubAhfM/EOfTBuTQ2VcxFMzbJ3hVwrr?= =?us-ascii?Q?RWvmmhhAAwW4Vjpgh2Mnp3zSpF4NxRtZRG6ePHj1LmSC3T7BsuXVu7tXjjUI?= =?us-ascii?Q?nW1jgthL5Ij5/NOTkwLrlRPK0qbK5GVZeql9X0EmInmkoVsvSVmCXkXZSpBq?= =?us-ascii?Q?afka0Ifh23lP8ovcksaDTF+EO+cYERk=3D?= X-Exchange-RoutingPolicyChecked: b+ko0Q3vD7ez6T2q3s2vGtEPlmZDAphxHy66GwHBGkuCwMjGUeXTVcLVZf54JAfmku23kPGHkBTSn+GD0tkl00WNschMPiNrR1BbgF8FdkLe3Y6Jx28BVHCj8eNq+Q6NlfJYDZAMS1nQ0M8whOAgC6vuJGIvmuYDmXvyH2BMaulUywKEIxY+At5RIS8zIaGsou2gXczo1NeXIa8/YOrdBKcIJsi593MIKCx94DEtk+oEqgQiR33nxT7kc+ktzs1JSTkDSKDBySO4b9S3NzxtTGIXUeOLLk6rnrLq8oNWaqmU/pqWqMeqNXT1cbeMfjsCRjjY4xZ43Fr+3RW5/IRv7A== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c455c61-1147-4403-f132-08de873420b6 X-MS-Exchange-CrossTenant-AuthSource: SJ2PR11MB7546.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 10:25:09.1910 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 28kASGEvLoyeHKL2HrUHpAD0IBAHvsIZj/o4KiefK4HFiqpyKtH4kScRVvCWdb7fV2qaesPv4O4Bzx47g4829UgsHJZXopGZwt3+hcmYmso= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV1PR11MB8850 X-Proofpoint-ORIG-GUID: 1uQ4Lb-2jcXojx6EmlC3gN_19Do_B6Ad X-Proofpoint-GUID: 1uQ4Lb-2jcXojx6EmlC3gN_19Do_B6Ad X-Authority-Analysis: v=2.4 cv=A89h/qWG c=1 sm=1 tr=0 ts=69be7207 cx=c_pps a=Ie6vhHcvS3zZlrI9i1bNAw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=iKiJcTA2PjBS6x5JeXcw:22 a=VwQbUJbxAAAA:8 a=iox4zFpeAAAA:8 a=t7CeM3EgAAAA:8 a=l--xBdwv-kE57s5NKCUA:9 a=WzC6qhA0u3u7Ye7llzcV:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIxMDA4NCBTYWx0ZWRfX432ehPRzE7CJ WY15TnGDNoi4CsT2dn9JfvOBQmkeMXqfQJ/cqufU1Ysoy36JW3UjHqbGaB08THlXf7IUn6Emj8/ 4nQiVm2cHvBQc6Ks9LT8UXjwUvSRYfwHi/x8hf4KU4lki/6bBB70/V4865Z45/u9RHFBU75+7Yl +HB+TzfQ7SYXcq4oHrd40zFs1YddCXz5rRRrepWeC3Y5pWcp6b2atu2B0XRcGOAi4v4xw3CLVgP 5F8fBnnGRXRwr7SbJZ4DFo5s9zCmm4CqeL1qODYl8WEa2RTyG05V+PZcY0ZYtZ5Rk/t1iwusE6H Nm2BzUykuUZiiUg3oS+63vQuHR/p3d8eMRo0S7m17V3G7M/uuEs2KMEU4M5XSmU0lM5clWz2K4L 38xD3JbrVPiER0H0C8Qmm4ZmX4y+5deEKvOLiL4qZ4Yv5uvvqIBy17V9Ir7VokqUpD7GuosYm4+ +5ctzAGOj77GlCxl8Kg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-21_03,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 clxscore=1015 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603210084 Content-Type: text/plain; charset="utf-8" From: Ionut Nechita From: Petr Tesarik commit ff56a3e2a8613e8524f40ef2efa2c0169659e99e upstream. Make the logic easier to follow: - Remove the final return statement, which is never reached, and move the actual walk-terminating return statement out of the do-while loop. - Remove the else-clause to reduce indentation. If a non-lonely group is encountered during the walk, the loop is immediately terminated with a return statement anyway; no need for an else. Signed-off-by: Petr Tesarik Signed-off-by: Thomas Gleixner Reviewed-by: Frederic Weisbecker Link: https://lore.kernel.org/all/20250606124818.455560-1-ptesarik@suse.com --- kernel/time/timer_migration.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c index 2f6330831f084..c0c54dc5314c3 100644 --- a/kernel/time/timer_migration.c +++ b/kernel/time/timer_migration.c @@ -1405,23 +1405,20 @@ u64 tmigr_quick_check(u64 nextevt) return KTIME_MAX; =20 do { - if (!tmigr_check_lonely(group)) { + if (!tmigr_check_lonely(group)) return KTIME_MAX; - } else { - /* - * Since current CPU is active, events may not be sorted - * from bottom to the top because the CPU's event is ignored - * up to the top and its sibling's events not propagated upwards. - * Thus keep track of the lowest observed expiry. - */ - nextevt =3D min_t(u64, nextevt, READ_ONCE(group->next_expiry)); - if (!group->parent) - return nextevt; - } + + /* + * Since current CPU is active, events may not be sorted + * from bottom to the top because the CPU's event is ignored + * up to the top and its sibling's events not propagated upwards. + * Thus keep track of the lowest observed expiry. + */ + nextevt =3D min_t(u64, nextevt, READ_ONCE(group->next_expiry)); group =3D group->parent; } while (group); =20 - return KTIME_MAX; + return nextevt; } =20 /* --=20 2.53.0 From nobody Sat Apr 4 01:50:14 2026 Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) (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 B937830DD2F; Sat, 21 Mar 2026 10:25:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.166.238 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088731; cv=fail; b=kjy5Ea6o6rMLpLcHartFQg/e3blf2FR1cym4ertswIasqZnAgcFsWnMmCvYiuBc1JN52lnYCIY0zpcofjEV0O9GM3rdWcpVzB9oZj6UOkv5kEa7AFGiWjEk7yFKKjBr0erAKH5r5893YCh9Hrw88oFeuxURrPYwhaoeMtY61Z1M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088731; c=relaxed/simple; bh=gH2xmjE33j7zCMksmhjTH4wMHZbZhvsaPl6/gthGu9c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=RgSE3oD/wsUS5UasF53E1mMyODRN+sjDvHTes7x7MudvARDOQhFbUtVwij3o3RF6vtQVvT9CSX47ACo6gUb/4J0BrpI3kUHBURSj3qMgJ80PgnQerrjLkC+PX1QTDvk5f0RsRVwRctgQ27PkC3e8Vlg4Q95fNnXQTNP73pl0lX0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com; spf=pass smtp.mailfrom=windriver.com; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b=YFYSfhWS; arc=fail smtp.client-ip=205.220.166.238 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=windriver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b="YFYSfhWS" Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62L9uEuD3525421; Sat, 21 Mar 2026 03:25:14 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=9c72HpFyQE+mzeqBeh+6ec/nH+59n+IAstuOQQ1XDLw=; b= YFYSfhWSATfs7xtJ6OFCRghRxJiK4Tz+5G/1MxeH+O6HG/5tUadj+oWQAOaPJEVu TF3D03/FaGOjxXzorxEkRYbfbUEjdiiqeUayfS8KWGNgHvi4ndYVuBUYd1jeFBLO hiaMoKP7mXchyoMOovsAt8Ryfhs4SCj9VMZ9ucH2kbS015zYoYNmP6hpii+U4uUE iEOP+wdzr+D6ZLEjdx9RiiAb/1yQU8elHKja5m9gZOK+MMhlY5UbFO3FZZagGfOM bC+KyJY4Xqhl9eDlM9WpsjDW66mUc/eG2SeO9w5KzYfTyouo+uS4IUBBquGCzPqr 2N9rcEY3mOm7SkfrMj7qbA== Received: from sa9pr02cu001.outbound.protection.outlook.com (mail-southcentralusazon11013001.outbound.protection.outlook.com [40.93.196.1]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4d1pky834w-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Sat, 21 Mar 2026 03:25:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=khunUzK8T5gWZo2UdtsCazv6SS7Fv8fjjKS3qVvVsXbiHGVhYExO6HTKoDSv1G3Pe0IDMVIX4qqtB07G1oCrePYc5vlRFhCLehF6aiIpaDW3Dh3Fea+amSNpgllrtTIZJ7lYTtWkTynBjTeNLhjzSgqh2ZFWZiawyOr0uMOix8FqyQjU9HeP0vPvIlm6Kr6XZaGCD/Awgj+sHltG4e7bpTLM2p9TKf9YbLg4u9FLPPsryIO7PvISP1wZl5gaCBbwFw1BrpF9v60C/bqZqkQe7EIi5lgRn/koU2Kaev9O8LZdBbKK3Odedl2JFLG75U9n6fS6Ek6FlkPybrF4BOs1mQ== 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=9c72HpFyQE+mzeqBeh+6ec/nH+59n+IAstuOQQ1XDLw=; b=E2rub1G1d1omxWOYWs8RK3wUMZ5S395SVG3Ip3iHneB3ZlQJtc7qmEvizwQQDbNQNN2b5z1R32WrtrjaJx4O7hggIjycpXNX67zYqJaOF1cVT1INEGRf4zqVaZWsxvXzLbqBMHpTwG8FSaSMslT66p08f9lc+St7r8SoHIj+Fz/BPSoBxccy4hQRGJRzb7e0qVGeBHfiCFPM+EkrOws/+X4lFdg3+WT8qusDnwZ1kvY5KTHcQY4/3V8W54OennS5egorbkaURCExa4yUsLQmtxepYUXy03IElWG8Qfs8XIgU4J0Q/PY5WW0Jq6jYLP4KEGdsHcLsf7QtNDd82sgBlA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) by LV1PR11MB8850.namprd11.prod.outlook.com (2603:10b6:408:2b4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.13; Sat, 21 Mar 2026 10:25:12 +0000 Received: from SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced]) by SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced%5]) with mapi id 15.20.9745.012; Sat, 21 Mar 2026 10:25:12 +0000 From: "Ionut Nechita (Wind River)" To: stable@vger.kernel.org Cc: frederic@kernel.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, rdunlap@infradead.org, ptesarik@suse.com, Ionut Nechita Subject: [PATCH v2 6.12.y 5/7] timers/migration: Convert "while" loops to use "for" Date: Sat, 21 Mar 2026 12:24:38 +0200 Message-ID: <20260321102440.27782-6-ionut.nechita@windriver.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321102440.27782-1-ionut.nechita@windriver.com> References: <20260321102440.27782-1-ionut.nechita@windriver.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VIZP296CA0002.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:2a1::6) To SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) 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: SJ2PR11MB7546:EE_|LV1PR11MB8850:EE_ X-MS-Office365-Filtering-Correlation-Id: ea388394-c864-4e73-3eba-08de8734228a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: 7DFvlQFe9z1V/763VOXzj9cPz4v53nyy9K1imDVPQLFJhESdJzvNkqoER4XMOLhq6slZhwFDacX//XRy1EI/8zXyUev1O13NCC+tn+L9Cwk7uE1K/e92RpmtJdvkf86jbtEpk4J2uw/X2LXahVmt+VIRRQd456hkYM90H0eTf13q3ngUp5NEOWkw4tLYzSJ+a7iLf7764ZQW1deDuYYZ8NRMgxsh3FudInYsxrZ5Bvu+RvJK9zYXnPfaRIjASZ42h85h8IXq4XJCWY3G6KJ0szROm5dycV2rEKgE+3LdqZa25vUQY8A2dcyNZ+1MLyzuQchHqNf5mZO67CUdvA9NMekPM/G35afNttDrE0x8RxJqcNopOiKVm9vNbXnJkUJkIuhadQ1cCk74sFB8/MeMex0QD5bLrmsZnuJz2MFpvpP6GFgmFVoMcO7FO+TUxWM1OdZKclfltNtVF/n7Sdmmer3Yr9d90GOVhzcuNNpeOTA1A7VqX/U0+dz2SzVI6Dhp2/OxMork1WfxL2lg7X5qOxm4UhHW48puFxGdl5DffZwbtGBe7bBSFOmY2y3HnwBtYafPy63tg2j6XhdZi5qh6n3K1uUncR+FI1z4HKjzZ1zAZnO+RLVzS9cF8x8qzVlqeRgKnsIbtKcwCAK5Zf/HVS7nrLPsT6fewtTb9GpyPpXhoz3+55BrJ7X06xcR/ZVCHrzPiijlADOHE5g5DYEB0mGJdj0HwAiQnPybZ9mPDRYmfcCQ45MCJLzqhWy7cyzB X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR11MB7546.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5QtQS4ZdLz0+jqXcjgcBnhBoRenOwtY8fZ6BfZCQId1M+d3cZdUhlQrK/DNk?= =?us-ascii?Q?KoT+r2pIpWMF9uZIKCzNBJIQwgN1AkFWoFlO7WGUmjDIPQuZOiyjHCBOcbol?= =?us-ascii?Q?/3iTulKnFX+K1AOhCHTfKeW239G9Jt19fVKh5z07wvqqHP3xy4/NoPM8Gkq6?= =?us-ascii?Q?Oq9I1VmFtfIONcEzQqqv+AMkrzE9myLLkqrYUcFhS6xcOYeD1p9i4KhZykv4?= =?us-ascii?Q?PBRv8CwihjtIrpHX4qFMJqZteJ/KvLBivYIIm6eOJWeTvhP2rGJluJ/F/dON?= =?us-ascii?Q?ygkOGrburjk8uwfx+eEf59Hx4//UAHxInwtzteM6SZz9qQeXLI1JXiUMmRxR?= =?us-ascii?Q?1Bri7QcmIHimWCICAqfFjmJJ9wK0kBGTNaPGwD3LKCs6nLxrXjjZJNgFPQqt?= =?us-ascii?Q?L0wQASD2AlHegvGWgQqf1K/OFZ6YheW6rJWZOG8w5KBhDw54gUEDaIz74yIa?= =?us-ascii?Q?ofWoVkV8yg+K2jvraolwt7FXZobjTYThWFHyHaVIKootv6TOTZk0GFRdK8Kd?= =?us-ascii?Q?CrC67d6bfF3qg+FuMlsuer/wm49oqMiDDxbPslCUcVIVExiGYhgrkNs4bGn6?= =?us-ascii?Q?I7blTo7UkeYjmGMdFTWBZUo7JdZ69jZVY/PMpldX+EWuU6UHEGY/m56qHGyq?= =?us-ascii?Q?b1xkzKApBN1ALs/mCMUDAN1i8Zi4hTU9vFHmCCKS+Op4ACJgxQSWBYZSOS/E?= =?us-ascii?Q?As/ApEaYG/KKnEpHSShIKFQlvzJEJyrkSB7lgmc7ikRUII5/QQCUWGbwiK3W?= =?us-ascii?Q?uk6YU5qly+lsEgfMzGurtbeGiJ4AVcHCpLkGE2bmt3TbctcmoVNTOulwtT+y?= =?us-ascii?Q?YhHzSrj+3G/TgWJs+xVXFJTb0w8YZtw7fk2/2r334z7wL59qWqaAYjK+NWvj?= =?us-ascii?Q?wl1PBtLR9coMxA1NG7kGTb21XRlRgVtAm62BLU1rZaToI6qExtJx5PnfTk4y?= =?us-ascii?Q?zVhECgPfQQodPUw3VH47fBHy91FSUzXe0HXq9kRQZtJuCk+LEgxwttTL3G8S?= =?us-ascii?Q?27yUU/vtREjlL1XsodUPDQjVVDJuQY5s6npaLeZpKx3icd5v+9ta+AJMHuOA?= =?us-ascii?Q?Mnyppb9e1SJo3vw/DZsaTQO5Q1Ix/rH8JxltvB0vgamNfnvrDkQxT2QKudqm?= =?us-ascii?Q?IjOU+p5DV/7e7AHz0unLq28EmKmOgE5yu1NgnngjgzSIGgyatXgJnInCb160?= =?us-ascii?Q?4nPYGpMWdx7/w6ebBnvubQqv9bfr+caJ3Y1kxN9ef2TA3EUoiA8QYDCYxHb2?= =?us-ascii?Q?ODZkFFZ+afmKPjQ3PveLxa9bc47wgi1NwbtQ5t4mjvO4T4h63plfqAUTVC6O?= =?us-ascii?Q?Jz1VRGgEpyUJn1cxDJMVKL4VvFZNNNP0BRT/XBYMT32vucu1FYJVbwUhCHVr?= =?us-ascii?Q?SRUKFOgakNRNHfebqRUKUjVLbFIJXm/c0lKvesvdmBrdvmcyP0Iq80gEhzTN?= =?us-ascii?Q?IoU1bg9YvfGWWs7KqiJAxWZjL7MGAVzk8ruDRvKUJ9SnXW9spYzSTr1deRVt?= =?us-ascii?Q?7RnuXm9mBR6K8PdC8Q97g7hHb105N6FhSZOTGdZzAjA5lRG66c5QzfUaH9cR?= =?us-ascii?Q?tQ4FxJ3r5brFtMX1/OWGpRZZNhId1IpHoMxvyU398sNfXUc8pLqPZZxQcl/T?= =?us-ascii?Q?MtvA/OfI72681138LGVBTefyYMZDs0PPHFlfn0ZMth9G7KPVccmVzZoz4s0m?= =?us-ascii?Q?IsW91p9qQjq9rdN74ETqfCR7VicGLHoB02peY3cgX67UaqV848zrX1TCGgNU?= =?us-ascii?Q?OJ8i/eYjlsV0qYl6HGWlAwRClWGfv4E=3D?= X-Exchange-RoutingPolicyChecked: H6nY+5mOkPAO/4BXC5aRaB8ra2Ri4NXqtKl8XnHPWAopkP/tBndpvh4oYw0HE8Sw5fP4WOCSYVWwWeVph9nAqwTB1laFvrm13qm6j6L/rWQIAHN2TH7EIIQvoJ8nDjcAaTFjJRzrh6aQ3z0xQedd09mko2eeCGnxppN7gwREDfcgjC6Xg4ZCObrwNYJVx/TOSjrRtUWOMY/v299gw76BUppsX248apc62j4gbNold8O67sdryASGJXq6JKeQvgVyRUGInC0aJoZaJgilRDvycxuAzaPP2t6rOcuE6JSSmak72jMuai1MkgsXUA/IkXCZOWUUpLAjoIVjqJFMFCn0UQ== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: ea388394-c864-4e73-3eba-08de8734228a X-MS-Exchange-CrossTenant-AuthSource: SJ2PR11MB7546.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 10:25:12.1523 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 45G79bN5pVBnPXf5E5zX+IXJaNlNzNU/x4kTWREkyfGywa2NKMXTlEFO1wMjtwysXwr0Nq2nWFDzfgBguUouPf7VjnXzhjX2AI1nsdW0ixk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV1PR11MB8850 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIxMDA4NCBTYWx0ZWRfX/9zluGIdLNze qeeFJ6CUXsgUQckBIyDsuSLsC/eRduPBdoW14cYxE8X8JHWFuyJs8AyyI+MJbFIK29ISXscS3sZ 9aOhQfdKWmuhLWLrOh1CoIN2DUIAfblfvKG6KOJ6jVSTGph08pVTjXjuhvY1F4jEVJO+ENmMYFE 1yz7+FKm9uhvF/OZMZRZe8R40pLmkjGgh72woJ4Aw3OzzJOXVW2hX4axeTpj7RpEqgVn+B/iGhC PSLZ+JM2XCzqFPS4tCeyGEODSIxgTsy01h5LumCCubMVqecxrSJj1wfQXCErtpqDw958tcoCfBe cJt+rZ/OdzTGGFGgWHj3EVN3Jr3VEp0I2hNurhsnQL9fgffSdNCov1IFxA9gXuHcaLhBxJwtWXV ngnbIvCC70KfRseNBDOTS60zwV8YmNV8P62ZLzlVHxpUX5W/quVltWd7Jwc3S3jrRbtGRd+Z2Qj 8nLCQDLXmi7tpKySjzw== X-Proofpoint-ORIG-GUID: 3ZKtue35myQa6xqHHB0vy8RfJUReyK_L X-Authority-Analysis: v=2.4 cv=Scr6t/Ru c=1 sm=1 tr=0 ts=69be720a cx=c_pps a=dImUGf+04sfXZTE2vAy0Gw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=bC-a23v3AAAA:8 a=VwQbUJbxAAAA:8 a=t7CeM3EgAAAA:8 a=uKeqS0WbUAxLMEKsOFcA:9 a=FO4_E8m0qiDe52t0p3_H:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: 3ZKtue35myQa6xqHHB0vy8RfJUReyK_L X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-21_03,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 phishscore=0 adultscore=0 suspectscore=0 impostorscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603210084 Content-Type: text/plain; charset="utf-8" From: Ionut Nechita From: Frederic Weisbecker commit 6c181b5667eea3e6564d334443536a5974190e15 upstream. Both the "do while" and "while" loops in tmigr_setup_groups() eventually mimic the behaviour of "for" loops. Simplify accordingly. Signed-off-by: Frederic Weisbecker Signed-off-by: Thomas Gleixner Link: https://patch.msgid.link/20251024132536.39841-2-frederic@kernel.org --- kernel/time/timer_migration.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c index c0c54dc5314c3..1e371f1fdc86c 100644 --- a/kernel/time/timer_migration.c +++ b/kernel/time/timer_migration.c @@ -1642,22 +1642,23 @@ static void tmigr_connect_child_parent(struct tmigr= _group *child, static int tmigr_setup_groups(unsigned int cpu, unsigned int node) { struct tmigr_group *group, *child, **stack; - int top =3D 0, err =3D 0, i =3D 0; + int i, top =3D 0, err =3D 0; struct list_head *lvllist; =20 stack =3D kcalloc(tmigr_hierarchy_levels, sizeof(*stack), GFP_KERNEL); if (!stack) return -ENOMEM; =20 - do { + for (i =3D 0; i < tmigr_hierarchy_levels; i++) { group =3D tmigr_get_group(cpu, node, i); if (IS_ERR(group)) { err =3D PTR_ERR(group); + i--; break; } =20 top =3D i; - stack[i++] =3D group; + stack[i] =3D group; =20 /* * When booting only less CPUs of a system than CPUs are @@ -1667,16 +1668,18 @@ static int tmigr_setup_groups(unsigned int cpu, uns= igned int node) * be different from tmigr_hierarchy_levels, contains only a * single group. */ - if (group->parent || list_is_singular(&tmigr_level_list[i - 1])) + if (group->parent || list_is_singular(&tmigr_level_list[i])) break; + } =20 - } while (i < tmigr_hierarchy_levels); - - /* Assert single root */ - WARN_ON_ONCE(!err && !group->parent && !list_is_singular(&tmigr_level_lis= t[top])); + /* Assert single root without parent */ + if (WARN_ON_ONCE(i >=3D tmigr_hierarchy_levels)) + return -EINVAL; + if (WARN_ON_ONCE(!err && !group->parent && !list_is_singular(&tmigr_level= _list[top]))) + return -EINVAL; =20 - while (i > 0) { - group =3D stack[--i]; + for (; i >=3D 0; i--) { + group =3D stack[i]; =20 if (err < 0) { list_del(&group->list); --=20 2.53.0 From nobody Sat Apr 4 01:50:14 2026 Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) (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 D061C30E858; Sat, 21 Mar 2026 10:25:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.166.238 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088731; cv=fail; b=CPSj8aBJjLryS+lAF+XSeNMhHULiGw7v79+SQrKrsfTz4fFXG5hrUBnCFSW5A6LQ8AuqIlT+GBHhQBTs81abtiZOmJ9E+54hU3IhTVUHkaW8Vy9Qxa+dNRhtr68OXGdVJfMO+e8RBZdDZo3dVtOBV9+0RE9OcjqrwglDVeC+rok= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088731; c=relaxed/simple; bh=tFrGOyLT++IWpszsEV9kdoYGRpqfVeB7OcId2ZDgPwU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=XN2zREGUeDt/+AyzwkYjCLDV3vYGYlgiOxedqoTcI88eICYR16353KIQeiuIJjVbC59Xm29P0xehtGIlDwXHDfPis1uKE+z311iwuCWHXN2ADSRzCqXO85KZ++ziGHv40/koDZZlI5hXWjA1kUvIS3DnZ0C92X4CXg/HUeB8+II= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com; spf=pass smtp.mailfrom=windriver.com; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b=alQUqKsU; arc=fail smtp.client-ip=205.220.166.238 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=windriver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b="alQUqKsU" Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62L9uBOM3678324; Sat, 21 Mar 2026 03:25:17 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=crM6nqs1oXBnkfasMFilS+oumh6KD223+waFGgeGxdI=; b= alQUqKsUNJKLAeJavSr2YOGK+8uJCww4lC9b4JOtBi58WZJfeN7PO6Yo/0AatXR2 cvcDjF4Afo4h8kjJ/VIQAblCDbPcRXK76cXfSntSu7eSrHgU96PY21p8aTgcX5NK 23jraELTbODrnTFzHFQv3hh0lIbnTgVETtB/4pc0NHu1V1lBIXMDVTyEl2GBX0f+ Fy6r9BJQxsA++I/+/pvP5bG3F2rOK2YHqp9pnKB2S4G6GTq1gsqoidir3SfG7lpK +bcyISaLY4JTUNRkrW/LrMs1tGvQ2/b7aelbXKZFNk5gSVjKzraYjKgd28df8JHw qF+wN6lTdB23qXUVMHgFOw== Received: from sa9pr02cu001.outbound.protection.outlook.com (mail-southcentralusazon11013060.outbound.protection.outlook.com [40.93.196.60]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4d18uggv7y-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Sat, 21 Mar 2026 03:25:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cF1x1qxIT0EkJDxxFRBMQnpbMkLXDau9PdrBZefkexvJrX4uRe9+0YabxrdU6MqZzwtwvdpQsU/Bya+epIbSI2KHhZYBIwnmrkOmMkn3EXG4ulpcYgogRoE3gAxKLig4BV/HW40hfci05gsq9D4coT87Eo2iG5YywugW9Jdt3we1gvHZnB98LNZeSnaiHY7qTIXwIrTYsRQKJseO5IJ3m2AZVaSMukZ149YnfRmRdjtCSDezHia4kjZLj5BIH5AB4ZpY2mUt1/SHBPVobU4rjlvCfbCjrvlrymM4EMqlbNeC3e9RfQwDUE+DKt7ECQWRyWuPjMPWhvh1YmKUugpvBQ== 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=crM6nqs1oXBnkfasMFilS+oumh6KD223+waFGgeGxdI=; b=Kdq0o+6+STEDw6ywfk1jrjpzJy6KWLYF5BAaywnQKYTYOZlGlqAPbCXiOA2opn700eqkcb6UPiW9QGZBemczRVHHDBtsk8KulcmptTMY9MjbRTy3BmmQlkBjzrMmw2AgY6FLBKroxpcxkTLeUcqhCHq/Kl7cb5BXL9112vT3oJ04/gTw2CODto6lSyAS7zqlcrFj56oy65XqfalSbqsqwlJqy9Lpv90QT3DiybGDhMoLpFDrTN+iEZgEKxAIimBQv6IczMT/ZPvRrhi399WIeKvKKenRuj8kXC8mxDLYv5Lcva8FScOwlQH1o7P3pveVp4UHxLOX+DQa2A2dQX6D1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) by LV1PR11MB8850.namprd11.prod.outlook.com (2603:10b6:408:2b4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.13; Sat, 21 Mar 2026 10:25:15 +0000 Received: from SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced]) by SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced%5]) with mapi id 15.20.9745.012; Sat, 21 Mar 2026 10:25:15 +0000 From: "Ionut Nechita (Wind River)" To: stable@vger.kernel.org Cc: frederic@kernel.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, rdunlap@infradead.org, ptesarik@suse.com, Ionut Nechita Subject: [PATCH v2 6.12.y 6/7] timers/migration: Remove locking on group connection Date: Sat, 21 Mar 2026 12:24:39 +0200 Message-ID: <20260321102440.27782-7-ionut.nechita@windriver.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321102440.27782-1-ionut.nechita@windriver.com> References: <20260321102440.27782-1-ionut.nechita@windriver.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VIZP296CA0002.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:2a1::6) To SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) 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: SJ2PR11MB7546:EE_|LV1PR11MB8850:EE_ X-MS-Office365-Filtering-Correlation-Id: 2576efce-8337-4b04-f4e3-08de8734244b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: oyioT1QFaoERRCuNlM7BirTPfuFZ0NfxiRkDCxR8fwGgxtVT1FJ0e2HLmzVR343Gsfxxs9uCSSIyKWG5dCvFwMTqWYHB5TwoiZR8fHbXhepSb+Iahduhm+5EUb17S/OjltznCsT7LgU8trJeGTYRNVzRneNL48cS96QixhB9G+zHxqi7aKX9rU0kxKkv6tE/qwTQwQOYtv50ORPqre6tnevkqdVNOnZET3+r5KLWEo69q2BfZH/JPj1EukZx4KdGTnGQgjZM8tRQcHJOLRWdAjgWi9wam/oo6HsXxwmdHWYt4Ew7NbHhqIK079+bL+Htnk+WHkLSV/w+quyDV4SjmojOi3AiKJ9d6pMqaZt5CIG9Y+q6MKSMBaCPHIyVzMhtuBNScVOH1fe5bobrrQ/eXPzWNAJFAFKF0vLztS1PEGQFBzdnykF6wfA1tk4hwrzQOvA3qs2yCzDk049GyO6DTVxvXcAC5KPzZZYH8pLcJscHgqDplvrlfDIkxXEt7Ne5v0CN+uGDZOx5CG3nGLoMxV2901xzMpKXeGFmveQeEcLrNYw9+XtF3g3EiE3PPKBftt74xF4Xmo2qmvC3ZE2g85OE61FayAV7DPfIkXymJSvKrBr864/0Q+2X0Y/DH9DANSRTW6KKBiM5PofvKgUcRK4hYK/GecoeGSdu3fMeYes3J7A8WnXMojqy+mjL7+5hicr5/0dy8BXtex9ieu6b0Xq8YX6WG/mal0+hpLk8sN6XP6QJdPiZh7+ENrFy2CeJ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR11MB7546.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ce4N9/ApmuokMmscJZsEhI5SAUOnvlA2Gl5BT3CRVOyBCOtstCkJB/tSLs6+?= =?us-ascii?Q?JANlORo8YydX0Qg7cbdb7i46CdvVpO4eswe3Ssyp+PIyr+57X/kCj4NirOUA?= =?us-ascii?Q?CpOExtMs2yNotC95Gi+4ioFtn+61tMeM/eRfYtBs5EOHUru/Mn+bM/+LzXC+?= =?us-ascii?Q?7/2PmTbDKX7/PaUTvOlPVLGbtt4ZBwKI9G50uU+1Xp7x39KN/Zil3Z9zj4Ej?= =?us-ascii?Q?3gnzjk5TAiE9h24TfAxo1LUp21ISrEGAY5Az8TIwMBEABgzD3T2Xhee+AP8Y?= =?us-ascii?Q?4MM1o+X7f+JEwSJyExUrOK93m+qwXLl1+9PAHaji9duXIuyr4v7sLET18XrT?= =?us-ascii?Q?EqWqXik0huD1gmDa3TCDCaRd15nvrhV6ZNVe3qEZfwPpnMIZhXrdKJCW4qhV?= =?us-ascii?Q?nZLJjFESA7O7JRnRZUWX/O8+dwL4vUIOqsiY1XikeXz37scCzE0hhAaTw/xy?= =?us-ascii?Q?ZQUkmQLged57zl+sh34j1vfOCDA/2QpglM75w1jyWVgUv7riXbVHx1ocMYgJ?= =?us-ascii?Q?WQBew4albVWHewqkAd5BLRulvkDSqQ8DVrtEX1OgjmyLH2isBuMohKsf117S?= =?us-ascii?Q?3DMXIkmyyfBPBkTCgJMyfIl3VdXtXHvYcIJdzWlDr4q5nz7P5NUI0U6fKPKq?= =?us-ascii?Q?tE2B7J+/dQJJ9rtMsqtongxSuCCFC7IsEJf2pTJ5ZjRWZ3jZqN5/s8QxlPEF?= =?us-ascii?Q?5ZztSmHU+qvY4Ga7ahkXaXtrGDBCEJ8tiVMfQkAmOjA09sOj3G+MerZUV/JS?= =?us-ascii?Q?7kLn8h56gqGfv+epxEKiJxte6krCqWl7hlD8sTm+1fqHPNVKU77X6IqHtVPv?= =?us-ascii?Q?3u468sbFTOx01euBUYb6UMZeCxEYh+M1ZFXJFhXr/DvSAOQOBB0TSE73DubU?= =?us-ascii?Q?WnSwD8Z5U9t8guT7vvPZ+zxzKkCyRs1Tqk+aIWIuBa0DN28ko8VZkvg+0L6z?= =?us-ascii?Q?RE0eYBz9Vgi0hwOUdMIyJK9OyNmGiQ9EYBz6U3d8KMU1U/F+zFzD8jg0x0kO?= =?us-ascii?Q?omYfQNbrSt5Gc6rBDXtyxlTpqKXvobLLgZWoM5hXtxMW8GONcZd6cqgCUlSi?= =?us-ascii?Q?e8zTygcaHAVnNmRltlbB8klIs9CSYSxYoT1VaCaX2uwz2K7arCriGKE5oxAs?= =?us-ascii?Q?CjxoXatY2jGh5fWxD4qYH1vrWdZ4DdVNoI6LlYeV6UN+TCrRR42pYdH1/Vbx?= =?us-ascii?Q?iDOYKaq239iz4pvx8naMpS4BMADYP/pS4amdHqjbrdCjUK0tMu7vZgIC6iFa?= =?us-ascii?Q?LFoE1i9SQN32Iw+wSIp7xr9gk8VGl12kknZNAGf+ywE6JjKr6LmkEU88amej?= =?us-ascii?Q?FALiz7b9QMRAeopW8/vY+YjiDPvVZIJdxhJ/2bi/C6ONk3wVULuDjolE+rQz?= =?us-ascii?Q?okg8mEe685NR91a0GNu+c8T6BeKN1wcTUBDityNHgi6vvDa6rYQchFSqS5J/?= =?us-ascii?Q?y3erfMV5MTd+m1ZUgatlPu/k+2ukoG7NlRcpgnPdySNOUU672w5ogK/tb3Hp?= =?us-ascii?Q?SAeB+1NVnQl1J+Hxlz12LY6xob4vFAJX5Szt9eS7aHGuMjQMxDSl8Pv3Qeab?= =?us-ascii?Q?qVW0eZyaisNqtdiPmv5Wa5ub6yCg/li8AjWlqrYfYq3oex6nuSMvDngDtfLm?= =?us-ascii?Q?6Iq+YwYEQtdHU1nq4B65IS2nExnd4BmV4rvxZG9cMiGHk91A6cL51ObXnnzR?= =?us-ascii?Q?MQ+gJU6i0kRttgZgUI97OQ7GarKbRqZFQk1ZMwyFRuwLQDki52PsNse6hNX1?= =?us-ascii?Q?ImKRxYmoBmPGbPut+P86DogvmEwszl8=3D?= X-Exchange-RoutingPolicyChecked: sUXYuOvHlswZYD3+We1x8RTLTcH3a0VON3w/mQtlrPHCOBgT4QU2lMqKTXersTX1hai7QsQG24oJOb1eCkXBNIF21KB95Y55r7TVkN92kACG2woItLWFIiYFzb55aMdlErUI+Hf+BCzC0K0q4WOP6pfwleT2UcXn5TOvheC4DwXwaKC4hlmwC2yy4tuIVQoZkcztnUg0IKb+fKoRZUFpZz83z1vZcig2qffrjlFAkQN52o+KVvS/B4e5fiWzYxoSM/WcTkPKo4dDnzkEJFmzSDmM59gI1e+GeHgGYio0Sw52ark4PlaMhriRzRf3wDTFkEY0gOESUowGlm7Hy6bgJw== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2576efce-8337-4b04-f4e3-08de8734244b X-MS-Exchange-CrossTenant-AuthSource: SJ2PR11MB7546.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 10:25:15.2070 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: owyunJTxmVOG787y77Xoqp3S1UElGQ443zEiFKwM1cmE6EQBPKaCP1XRUCAJJOU06hFKJ0zgDt8I/HEgh0G8mkmIkwJWeE+RBFeZ+dCSZWI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV1PR11MB8850 X-Proofpoint-ORIG-GUID: RmsZDCDF3BSbK5o6TF3l0JgC23dFKYxE X-Proofpoint-GUID: RmsZDCDF3BSbK5o6TF3l0JgC23dFKYxE X-Authority-Analysis: v=2.4 cv=A89h/qWG c=1 sm=1 tr=0 ts=69be720d cx=c_pps a=Ei0IHGVoEhmO3RFfwX1Atw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=iKiJcTA2PjBS6x5JeXcw:22 a=bC-a23v3AAAA:8 a=VwQbUJbxAAAA:8 a=t7CeM3EgAAAA:8 a=7v3I3WkK9OejaAtlTNQA:9 a=FO4_E8m0qiDe52t0p3_H:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIxMDA4NCBTYWx0ZWRfX4PhyFO9/a0w4 6TOjJ2OSbSuppCt/Dh0s1OGwQyu1ps5xlkVCclWlgzloYC9J4xlOawk0dVBukNl3bFiy3ftup1S f7qHMhLp8FuQ19MLATvUklJEXMnZZYJO7+3q1UCGIQ1lE7l+Pblu0PVYxX8Qiw8PQpUoZDZDLVx 4DLE3QRr93jO4fpaKLTZPzQZdrICW5xvEHkL52fwCKPiKtNgEcBPzcrfqkaTWGI4BTcsk89CET0 Mt/B8jH5tc7y11NuomdhBvV0dbSu9DOWg6ckKz5J8YRj9LpJi3Ee5UrlmS4kfiz+/lBvmre3uHs U+WPE+S4iaII96kssq/DtNlAJyazvh4mJvfIsnN6wK8dIMy4bG0Inmjv1E+5E4KFqaTK53tX/v3 0oZJYCQ2Iwkxuvo0TaFMB6fmBPCzUjSC1wmRBLx8Qaosp7JKh5HOD1MTc1z67G58Yg22P+EDaEw TTtDglTlNeQPMHek+Bw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-21_03,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 clxscore=1015 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603210084 Content-Type: text/plain; charset="utf-8" From: Ionut Nechita From: Frederic Weisbecker commit fa9620355d4192200f15cb3d97c6eb9c02442249 upstream. Initializing the tmc's group, the group's number of children and the group's parent can all be done without locking because: 1) Reading the group's parent and its group mask is done locklessly. 2) The connections prepared for a given CPU hierarchy are visible to the target CPU once online, thanks to the CPU hotplug enforced memory ordering. 3) In case of a newly created upper level, the new root and its connections and initialization are made visible by the CPU which made the connections. When that CPUs goes idle in the future, the new link is published by tmigr_inactive_up() through the atomic RmW on ->migr_state. 4) If CPUs were still walking up the active hierarchy, they could observe the new root earlier. In this case the ordering is enforced by an early initialization of the group mask and by barriers that maintain address dependency as explained in: b729cc1ec21a ("timers/migration: Fix another race between hotplug and = idle entry/exit") de3ced72a792 ("timers/migration: Enforce group initialization visibili= ty to tree walkers") 5) Timers are propagated by a chain of group locking from the bottom to the top. And while doing so, the tree also propagates groups links and initialization. Therefore remote expiration, which also relies on group locking, will observe those links and initialization while holding the root lock before walking the tree remotely and update remote timers. This is especially important for migrators in the active hierarchy that may observe the new root early. Therefore the locking is unnecessary at initialization. If anything, it just brings confusion. Remove it. Signed-off-by: Frederic Weisbecker Signed-off-by: Thomas Gleixner Link: https://patch.msgid.link/20251024132536.39841-3-frederic@kernel.org --- kernel/time/timer_migration.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c index 1e371f1fdc86c..5f8aef94ca0f7 100644 --- a/kernel/time/timer_migration.c +++ b/kernel/time/timer_migration.c @@ -1573,9 +1573,6 @@ static void tmigr_connect_child_parent(struct tmigr_g= roup *child, { struct tmigr_walk data; =20 - raw_spin_lock_irq(&child->lock); - raw_spin_lock_nested(&parent->lock, SINGLE_DEPTH_NESTING); - if (activate) { /* * @child is the old top and @parent the new one. In this @@ -1596,9 +1593,6 @@ static void tmigr_connect_child_parent(struct tmigr_g= roup *child, */ smp_store_release(&child->parent, parent); =20 - raw_spin_unlock(&parent->lock); - raw_spin_unlock_irq(&child->lock); - trace_tmigr_connect_child_parent(child); =20 if (!activate) @@ -1695,13 +1689,9 @@ static int tmigr_setup_groups(unsigned int cpu, unsi= gned int node) if (i =3D=3D 0) { struct tmigr_cpu *tmc =3D per_cpu_ptr(&tmigr_cpu, cpu); =20 - raw_spin_lock_irq(&group->lock); - tmc->tmgroup =3D group; tmc->groupmask =3D BIT(group->num_children++); =20 - raw_spin_unlock_irq(&group->lock); - trace_tmigr_connect_cpu_parent(tmc); =20 /* There are no children that need to be connected */ --=20 2.53.0 From nobody Sat Apr 4 01:50:14 2026 Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) (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 686BD314D0D; Sat, 21 Mar 2026 10:25:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.166.238 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088735; cv=fail; b=PY15uzWPPVS7Lp9YPl23voacSEyWj7uYXId6SY9ewXP3JliVAkkhtWyDR4SpvmC13NpPALDaEvAQslPW8STG+NWkT8x0EOjbsSbGpL4NNw17p6HvqKT33E4E+jBIapXc0zQlP7sOfyXbt+3ZhFnggzmp46TmeEOcayC6NLRvy3Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088735; c=relaxed/simple; bh=IkjSWUFaY7ae6cy5AGfj3DpyOfYJsKOQW6xbb6/ODrU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=aaPO/9YWMBcMzx2YVPkYshY2KX6hcR1baoeT0bLKy91OkC6s6q98pvHDLjZx53NWb4Q/BcIv4cy8AfJBx5p1iKB/n+uzRmbfNJHqBLjiz7UzeKcIe2qNqBN8ZVm/DitBqDuysv2idZm9C66AKi5AEsAnSti/vQSa3uj/A2thK1U= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com; spf=pass smtp.mailfrom=windriver.com; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b=g0EYofs8; arc=fail smtp.client-ip=205.220.166.238 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=windriver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=windriver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=windriver.com header.i=@windriver.com header.b="g0EYofs8" Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62L9tv9r3678047; Sat, 21 Mar 2026 03:25:20 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=dEbIYcrLgGHyzvkwKVA54JAge6PqkrZ6jGU3uvx4t+4=; b= g0EYofs80Mu2yXMDv0jAKYHn0hAPZr4vOF9M6FhraDqvV8z+P2lv91HNLfIS35qP P5MXyVs5JNhINt7hFiP5r/4QPGa/XzhMAtmNCRNEv/lWuwVyLlpBsMoWSI30X6tB Fh4sHPW6ogdpdBRTYFis0cQ7iBkytvBga5UGQwrF9syQ8WlBjqP+Zbm/kPFSOKCM /oK7Vqo90gxZh11DVRUTVxPUUOisJMGaHQhPhRU3Cvno8jBwrZ6Q6VuDU0IpqeVO U/MxjvfOFr1HhqpUpjF7uVGDvoVD+Ku25IwACg0Pk2JOdFdxoJ/447YzOJe/Ej+q y0yLpGr4kf6kaMPiebHXIQ== Received: from sa9pr02cu001.outbound.protection.outlook.com (mail-southcentralusazon11013008.outbound.protection.outlook.com [40.93.196.8]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4d18uggv81-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Sat, 21 Mar 2026 03:25:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GFEipTNm6o6jHIOJ/vwg6Sq9lc2lNwz99hrTR3sm9sgOe3Uxgl0KA06aeaHe4ql9IZ2Z3xdKiom6h1MMXxDUuPu1tO5zX+eqL9/qtumN5XiwpwGmAn3zFM6AEb1nTs/HdHeV2dtsOdeiztoEF80aOhkOT/j5prLvHK4f9P+eMNRfDjR2mJ+zyOb9Fbg1YuyZQ8+bRXo8UAh7eSw49IL3nlcLb1sNuz3EAtrXnVzvAfBv/KLZMZGXFlWydYTnO28axBgIDJYB6Nzoe/Wdh7k81L0EzBreZs/P1coVnlbxV9PF8KEMJds/oyteh+2MHUopvC4T3J9LhN5YVbZBjz734Q== 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=dEbIYcrLgGHyzvkwKVA54JAge6PqkrZ6jGU3uvx4t+4=; b=oFvZwdeDYjsg9osGmeoPf/bDvJMUbCQeQTM/QJnMhhsMR8ppOTTiKHtJKed8woPKU83I10XDiTrTiQvRRFzohwTSywKphKJPMdC4rK8DFo8hC7ZTKob7xxpRzUvsqjLtYOS4Jwcs7GrhqooFcKigmxh6nQ6/WfpNed46D6TiJuPTYxwWVmwWucQv2p8+orb8WIIlRrUpfEpgcorxkhbaquhVovb0zQxltYO0yJKNRkPptzfFZ4rghFMvuQP8LkNW2G1BIhuJej+C3p+S+zxle4CBBSAiQ9BcGMCApgUUi07MBwIOuaf0ISdH0loA0MDXOOvqyN4JhQ5h2QAWQ3JM6A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) by LV1PR11MB8850.namprd11.prod.outlook.com (2603:10b6:408:2b4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.13; Sat, 21 Mar 2026 10:25:18 +0000 Received: from SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced]) by SJ2PR11MB7546.namprd11.prod.outlook.com ([fe80::ca9b:dcf:8881:bced%5]) with mapi id 15.20.9745.012; Sat, 21 Mar 2026 10:25:18 +0000 From: "Ionut Nechita (Wind River)" To: stable@vger.kernel.org Cc: frederic@kernel.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, rdunlap@infradead.org, ptesarik@suse.com, Ionut Nechita Subject: [PATCH v2 6.12.y 7/7] timers/migration: Fix imbalanced NUMA trees Date: Sat, 21 Mar 2026 12:24:40 +0200 Message-ID: <20260321102440.27782-8-ionut.nechita@windriver.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321102440.27782-1-ionut.nechita@windriver.com> References: <20260321102440.27782-1-ionut.nechita@windriver.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VIZP296CA0002.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:2a1::6) To SJ2PR11MB7546.namprd11.prod.outlook.com (2603:10b6:a03:4cc::8) 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: SJ2PR11MB7546:EE_|LV1PR11MB8850:EE_ X-MS-Office365-Filtering-Correlation-Id: b142e05f-d60f-4364-fcf6-08de8734260c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: Dw/1AuQXH39eCqV3WzMpqAnwtPk9eGM7NHD31+M0F2uJD95kcK8CkOIK9kqcuXmz7OnthDZb+o3MXYeSKthAibrHMmUntWW80GzAWgTWamcI3Pd559aEr2cd1OFin6wUG3Cy4OYo9dAaRgrCVD7lTHI0C+gsfDJrCyirLVRKIflnbn1aAiJg/l2phb02qyorgy50D9BThL2xgl9ejKuL9GBNe2YkXC/MEcbe7pr/37VSuYZv2XkXXWINV4TeuBfwxUnAE94Xo/Ed8g1N3+T66aoVUyEDTlIcQiVQs7dXdJEuI+O4l7yG9WgVkbJ/zZ/ww/Iug1eDyYbFbMEmgN2qFZH3DUcipfGsiRa0si0/1pQJmq51DfU056AiQcYt+k1+bPC2QpiPePDKtiED027XRRxcxrPH7bWQyJ8r7rul6Oa3lUmhicbcl9pdWKMmI6FsdZqtDj1C36aCgN/NPB64d9XJT2neweBYtbPYdYgpCDuwdYP6Od97F2KyXG2Koct/PckFyRBwaVXTZ8E+fhor9aG/sevXQyL6WeXq7vgF2QIpN3UPlOaVr/165x0sxL4ClxYw4iS7T5yFJXdp+MQnWYSXMx54m0HBO06VrdUMfnlfBOWsuMuVZcQIvzaVy1UXKvSC6lAVNYNrBnz8zhCSsC36niLCZemrVhilYAfU5gbfYIALTnM+LYKThKe+4kzM37CEn1mT9q/KO7N9A+m4PbQVSzziepsJMhkvLYjalNnmZInP7ZENV4YCJUyJjLwm X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR11MB7546.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xqLp0kPd59vkfyTQuYSTwk+FnKSOOR9H4+mPKJjic8nSDmaO5NWoVfJtq/Lu?= =?us-ascii?Q?1eGsueEqf6e4Ga8CddWXlaj9bKgbhhbFuaYCjO/HMvAAIosPs8n0gjGv1pd5?= =?us-ascii?Q?B70bUVWvtaIeIW8NpvzNH/BGzCNpFyoRp6DXylWlPQ+RnQKekuZxkUcPSfG3?= =?us-ascii?Q?QqrmLAsbuioyCLu9CFi1JEZkOR1i/jp4SKlWIB+f+mJ8ug6mn58nYVbFOtxs?= =?us-ascii?Q?JI5kchAADSlwGgJUm1v6Y1IZE5JZXnCG/EhzHD3243DoQY1iOUV41leVm17b?= =?us-ascii?Q?fD+1D4HsaQt8lJYtCXD0nt4I4fkvdHVxqIcxStX9S5IT66uhOA6CEsZHsK4P?= =?us-ascii?Q?Y19cM5f53aDX5J9RzAXHiwtIFvFHspOBF4TIMhuotL2pQzu81gd0NUSkXCTh?= =?us-ascii?Q?ZlPKowU13IOr4BsVd2Hn57BW4GBu2FZagv6G4QUYcJFV/+VQgdN6r8Zzv6iM?= =?us-ascii?Q?9jRPp3CvjwJhtYorUUeLqTcyTPMJoya/VbqB20ig0V5ngE3fzX6V2eth1mD+?= =?us-ascii?Q?eTtW1T4MHFIIffs7uWdorPRD1uhRalXD50n0HqLoJ9KuCSKR18KGngFJw1nh?= =?us-ascii?Q?eBVYBiAdu7h3Gr7x4+StywwEFBymxXrQGsEkaqAkwF5Bqai9iRpLESM7/zEd?= =?us-ascii?Q?8jn7NUTMVoNPsbS4Ci8c9hOJE7I+SVr8PIg8WsRnjR1L6uGd/nJzIrNPiAzH?= =?us-ascii?Q?pWkPfANFQorLw9q4xUofBZYJSer1Jnza3QiybDhXY5R1G7wnPGy8CDNMAPkn?= =?us-ascii?Q?ddrpi6o+3PFNzGiA7vOhghQdAyzej07jLm7BTazLE4PyZ7msc9rA/7y2qjp4?= =?us-ascii?Q?kukPFbu1CShsf1XkBnmf5lBwPbVuGueggPTgVZzo9B2e8sV0+xVrzelvQpss?= =?us-ascii?Q?JTO3NZBJW6uN/mJyeAepjBy8Fj8CA9v8Z/1za5YoPvOXYGne/ofOg0hLkd3V?= =?us-ascii?Q?qAZqxzdiqipK72AAFdhIBqzrDsZcNUCpwYhTy0GsFtZ39dNzl6PrtZRVyIht?= =?us-ascii?Q?wINyDZM29J/u8bl7EV214uBU+2yJfm5MdJrISkLdEL24MNOOzDzR/Xx+uj9V?= =?us-ascii?Q?7M4n6nspZ6gatrnGn/fdajhVFhyoNOaTpdzzGHu+XsUykAn5SYjvGIuT4cXa?= =?us-ascii?Q?CH4q1lEPVEUQ1buXRaIo+euMxdfZJcb6fjDKvVOfO3ZQi6tg2wA0l0cNpBdx?= =?us-ascii?Q?fYseaEC1IKRKNzM4lfyZ0lz9+BOXafI2a3tqnyye0frfEp78DHIJ/b+jiks7?= =?us-ascii?Q?iizM7tfLH+uhHiunZrIAdvkifD+MnPaUPJtiXaSGWdb08gUpa0DUQPJ415+d?= =?us-ascii?Q?Jh8/Gi1IWUuE1fu5axUTxzn0TQZIc+6GrGg2rGra/x7n/pDmiISXMs4c3nd6?= =?us-ascii?Q?Fv7gBBwpK8hzU5HTfAQuSrGpqo82LaqoLW0RAOhWpGRqP4uHq+pO3/NXlKmr?= =?us-ascii?Q?RgfNRjHh9tByPmBGUrNqZdakB2LSu9bzlBLcYgEbcFRKVvDF75ze1m85QTG+?= =?us-ascii?Q?/zG5oClLHmVXOa1rtG7PFPB51tQeCaib93wV8Ch41R2jjtKl9mdwtS0YWTKm?= =?us-ascii?Q?INECXs6ww1c9H3kjgUZGhw1ozW017wGgAxy7icgTPRyEDfyh7xwCSq14tSlg?= =?us-ascii?Q?nashDFX3VHjetGQkzYBLNB4DJuTSQdQSBTWHeVLNiQwXXn+aiYNRNZ2TNr6G?= =?us-ascii?Q?golb1T3AdzvAUZmhnqzlHgoui4QpIoce1JnBteOOQmw9jrYWGwetYDw2dc4e?= =?us-ascii?Q?f/eI7iPNyfnZtrFitcktSmMVYejesUc=3D?= X-Exchange-RoutingPolicyChecked: F3dnNqHM/DwuvtzFa6ep7pwLGKLTTCjHeU66ZpvmKzmVP92KXTw790Kv0QF54P+mUI2tGKV39T33P+m/oA2fRkFBoYVYAYutm7N+BdEbTu0CJQEpS1zvPVivkyhwGjSR0Gp709rLYfpM3lCy5Vafofq6EDRiZqoKxr2ouHhB5PrdRTE1gxAPx+4RjAnUDGyPvqudvaDM4XwQW3dMmh4nK0Lq5jpUzH7ayaR2B/t7fLcfeizTpmKafFl7kogTS9z/+5VAKaS6Z38m1pZx7FATDHRWLhHAmO62ugfNyuKCncxCsG19a3uf4UtfCU5oVNcOSKbMR+a756yLJmxKNqgSjg== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: b142e05f-d60f-4364-fcf6-08de8734260c X-MS-Exchange-CrossTenant-AuthSource: SJ2PR11MB7546.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 10:25:18.2543 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9KAfMxF9hkC/re5yC/+vhPZkvb/QJXUUdSxJAiajNj+ksP8gCcPqd0pABS8lEgYxeI0L31B6ugQnnFZjS8F4P7oZ+7/zAisLPAdodTObCBY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV1PR11MB8850 X-Proofpoint-ORIG-GUID: Wv5xsf2aHhUvrR-fr2T3fVROWea-0AYj X-Proofpoint-GUID: Wv5xsf2aHhUvrR-fr2T3fVROWea-0AYj X-Authority-Analysis: v=2.4 cv=A89h/qWG c=1 sm=1 tr=0 ts=69be7210 cx=c_pps a=espmfoAAVKQgPoIy+vmhGg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=iKiJcTA2PjBS6x5JeXcw:22 a=bC-a23v3AAAA:8 a=VwQbUJbxAAAA:8 a=t7CeM3EgAAAA:8 a=rPOk8Gav1BpNgUgkAfMA:9 a=FO4_E8m0qiDe52t0p3_H:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIxMDA4NCBTYWx0ZWRfX7AMDQnXooirp 0iul12hd2REvIz+IGDHNugz5IbQiqhq48TQ01LibxXJUPNx3BOZRv7TErxvsz3H+fzzsCO9javO nzP9cRO9VcFrQ4QA+/STTgC+drELF9XRaNmfjXx+Bns1/NsRmYyjGggq/ytdooe/cm+jTJ5nofy tcw6x9mrPG75z0lhz78Ol0Pyn8C6qPyOCe9Sb3CPAbv96odTu6pZ57xUuQWTBOQXuwbqjFIOIfn PO8mQvdioQxituqmusYffEWfyOfTqNxbBXGgZKJZ1EJa20fHTrmV7GjvW3lRG2xW+ljxL81NcLV L9mFPeziSVfm6cTHyMmEooc53ylmHi5pmWB5ni6DyYSTcD0A5FyrZ7cfxE5rRqx9i9LxoYVsI6a VJpUmn/O6c5yhZs1pxu3TXRZABzHBwQwLjEc4uR4sZLZDak2irYNkjALdMvYJ3nsKfagvmBrKUi 4h4cW9kCVtNModynq/Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-21_03,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 clxscore=1015 phishscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603210084 Content-Type: text/plain; charset="utf-8" From: Ionut Nechita From: Frederic Weisbecker commit 5eb579dfd46b4949117ecb0f1ba2f12d3dc9a6f2 upstream. When a CPU from a new node boots, the old root may happen to be connected to the new root even if their node mismatch, as depicted in the following scenario: 1) CPU 0 boots and creates the first group for node 0. [GRP0:0] node 0 | CPU 0 2) CPU 1 from node 1 boots and creates a new top that corresponds to node 1, but it also connects the old root from node 0 to the new root from node 1 by mistake. [GRP1:0] node 1 / \ / \ [GRP0:0] [GRP0:1] node 0 node 1 | | CPU 0 CPU 1 3) This eventually leads to an imbalanced tree where some node 0 CPUs migrate node 1 timers (and vice versa) way before reaching the crossnode groups, resulting in more frequent remote memory accesses than expected. [GRP2:0] NUMA_NO_NODE / \ [GRP1:0] [GRP1:1] node 1 node 0 / \ | / \ [...] [GRP0:0] [GRP0:1] node 0 node 1 | | CPU 0... CPU 1... A balanced tree should only contain groups having children that belong to the same node: [GRP2:0] NUMA_NO_NODE / \ [GRP1:0] [GRP1:0] node 0 node 1 / \ / \ / \ / \ [GRP0:0] [...] [...] [GRP0:1] node 0 node 1 | | CPU 0... CPU 1... In order to fix this, the hierarchy must be unfolded up to the crossnode level as soon as a node mismatch is detected. For example the stage 2 above should lead to this layout: [GRP2:0] NUMA_NO_NODE / \ [GRP1:0] [GRP1:1] node 0 node 1 / \ / \ [GRP0:0] [GRP0:1] node 0 node 1 | | CPU 0 CPU 1 This means that not only GRP1:0 must be created but also GRP1:1 and GRP2:0 in order to prepare a balanced tree for next CPUs to boot. Fixes: 7ee988770326 ("timers: Implement the hierarchical pull model") Signed-off-by: Frederic Weisbecker Signed-off-by: Thomas Gleixner Link: https://patch.msgid.link/20251024132536.39841-4-frederic@kernel.org --- kernel/time/timer_migration.c | 231 +++++++++++++++++++--------------- 1 file changed, 127 insertions(+), 104 deletions(-) diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c index 5f8aef94ca0f7..49635a2b7ee28 100644 --- a/kernel/time/timer_migration.c +++ b/kernel/time/timer_migration.c @@ -420,6 +420,8 @@ static struct list_head *tmigr_level_list __read_mostly; static unsigned int tmigr_hierarchy_levels __read_mostly; static unsigned int tmigr_crossnode_level __read_mostly; =20 +static struct tmigr_group *tmigr_root; + static DEFINE_PER_CPU(struct tmigr_cpu, tmigr_cpu); =20 #define TMIGR_NONE 0xFF @@ -522,11 +524,9 @@ struct tmigr_walk { =20 typedef bool (*up_f)(struct tmigr_group *, struct tmigr_group *, struct tm= igr_walk *); =20 -static void __walk_groups(up_f up, struct tmigr_walk *data, - struct tmigr_cpu *tmc) +static void __walk_groups_from(up_f up, struct tmigr_walk *data, + struct tmigr_group *child, struct tmigr_group *group) { - struct tmigr_group *child =3D NULL, *group =3D tmc->tmgroup; - do { WARN_ON_ONCE(group->level >=3D tmigr_hierarchy_levels); =20 @@ -544,6 +544,12 @@ static void __walk_groups(up_f up, struct tmigr_walk *= data, } while (group); } =20 +static void __walk_groups(up_f up, struct tmigr_walk *data, + struct tmigr_cpu *tmc) +{ + __walk_groups_from(up, data, NULL, tmc->tmgroup); +} + static void walk_groups(up_f up, struct tmigr_walk *data, struct tmigr_cpu= *tmc) { lockdep_assert_held(&tmc->lock); @@ -1498,21 +1504,6 @@ static void tmigr_init_group(struct tmigr_group *gro= up, unsigned int lvl, s.seq =3D 0; atomic_set(&group->migr_state, s.state); =20 - /* - * If this is a new top-level, prepare its groupmask in advance. - * This avoids accidents where yet another new top-level is - * created in the future and made visible before the current groupmask. - */ - if (list_empty(&tmigr_level_list[lvl])) { - group->groupmask =3D BIT(0); - /* - * The previous top level has prepared its groupmask already, - * simply account it as the first child. - */ - if (lvl > 0) - group->num_children =3D 1; - } - timerqueue_init_head(&group->events); timerqueue_init(&group->groupevt.nextevt); group->groupevt.nextevt.expires =3D KTIME_MAX; @@ -1567,22 +1558,51 @@ static struct tmigr_group *tmigr_get_group(unsigned= int cpu, int node, return group; } =20 +static bool tmigr_init_root(struct tmigr_group *group, bool activate) +{ + if (!group->parent && group !=3D tmigr_root) { + /* + * This is the new top-level, prepare its groupmask in advance + * to avoid accidents where yet another new top-level is + * created in the future and made visible before this groupmask. + */ + group->groupmask =3D BIT(0); + WARN_ON_ONCE(activate); + + return true; + } + + return false; + +} + static void tmigr_connect_child_parent(struct tmigr_group *child, struct tmigr_group *parent, bool activate) { - struct tmigr_walk data; + if (tmigr_init_root(parent, activate)) { + /* + * The previous top level had prepared its groupmask already, + * simply account it in advance as the first child. If some groups + * have been created between the old and new root due to node + * mismatch, the new root's child will be intialized accordingly. + */ + parent->num_children =3D 1; + } =20 - if (activate) { + /* Connecting old root to new root ? */ + if (!parent->parent && activate) { /* - * @child is the old top and @parent the new one. In this - * case groupmask is pre-initialized and @child already - * accounted, along with its new sibling corresponding to the - * CPU going up. + * @child is the old top, or in case of node mismatch, some + * intermediate group between the old top and the new one in + * @parent. In this case the @child must be pre-accounted above + * as the first child. Its new inactive sibling corresponding + * to the CPU going up has been accounted as the second child. */ - WARN_ON_ONCE(child->groupmask !=3D BIT(0) || parent->num_children !=3D 2= ); + WARN_ON_ONCE(parent->num_children !=3D 2); + child->groupmask =3D BIT(0); } else { - /* Adding @child for the CPU going up to @parent. */ + /* Common case adding @child for the CPU going up to @parent. */ child->groupmask =3D BIT(parent->num_children++); } =20 @@ -1594,56 +1614,28 @@ static void tmigr_connect_child_parent(struct tmigr= _group *child, smp_store_release(&child->parent, parent); =20 trace_tmigr_connect_child_parent(child); - - if (!activate) - return; - - /* - * To prevent inconsistent states, active children need to be active in - * the new parent as well. Inactive children are already marked inactive - * in the parent group: - * - * * When new groups were created by tmigr_setup_groups() starting from - * the lowest level (and not higher then one level below the current - * top level), then they are not active. They will be set active when - * the new online CPU comes active. - * - * * But if a new group above the current top level is required, it is - * mandatory to propagate the active state of the already existing - * child to the new parent. So tmigr_connect_child_parent() is - * executed with the formerly top level group (child) and the newly - * created group (parent). - * - * * It is ensured that the child is active, as this setup path is - * executed in hotplug prepare callback. This is exectued by an - * already connected and !idle CPU. Even if all other CPUs go idle, - * the CPU executing the setup will be responsible up to current top - * level group. And the next time it goes inactive, it will release - * the new childmask and parent to subsequent walkers through this - * @child. Therefore propagate active state unconditionally. - */ - data.childmask =3D child->groupmask; - - /* - * There is only one new level per time (which is protected by - * tmigr_mutex). When connecting the child and the parent and set the - * child active when the parent is inactive, the parent needs to be the - * uppermost level. Otherwise there went something wrong! - */ - WARN_ON(!tmigr_active_up(parent, child, &data) && parent->parent); } =20 -static int tmigr_setup_groups(unsigned int cpu, unsigned int node) +static int tmigr_setup_groups(unsigned int cpu, unsigned int node, + struct tmigr_group *start, bool activate) { struct tmigr_group *group, *child, **stack; - int i, top =3D 0, err =3D 0; - struct list_head *lvllist; + int i, top =3D 0, err =3D 0, start_lvl =3D 0; + bool root_mismatch =3D false; =20 stack =3D kcalloc(tmigr_hierarchy_levels, sizeof(*stack), GFP_KERNEL); if (!stack) return -ENOMEM; =20 - for (i =3D 0; i < tmigr_hierarchy_levels; i++) { + if (start) { + stack[start->level] =3D start; + start_lvl =3D start->level + 1; + } + + if (tmigr_root) + root_mismatch =3D tmigr_root->numa_node !=3D node; + + for (i =3D start_lvl; i < tmigr_hierarchy_levels; i++) { group =3D tmigr_get_group(cpu, node, i); if (IS_ERR(group)) { err =3D PTR_ERR(group); @@ -1656,23 +1648,25 @@ static int tmigr_setup_groups(unsigned int cpu, uns= igned int node) =20 /* * When booting only less CPUs of a system than CPUs are - * available, not all calculated hierarchy levels are required. + * available, not all calculated hierarchy levels are required, + * unless a node mismatch is detected. * * The loop is aborted as soon as the highest level, which might * be different from tmigr_hierarchy_levels, contains only a - * single group. + * single group, unless the nodes mismatch below tmigr_crossnode_level */ - if (group->parent || list_is_singular(&tmigr_level_list[i])) + if (group->parent) + break; + if ((!root_mismatch || i >=3D tmigr_crossnode_level) && + list_is_singular(&tmigr_level_list[i])) break; } =20 /* Assert single root without parent */ if (WARN_ON_ONCE(i >=3D tmigr_hierarchy_levels)) return -EINVAL; - if (WARN_ON_ONCE(!err && !group->parent && !list_is_singular(&tmigr_level= _list[top]))) - return -EINVAL; =20 - for (; i >=3D 0; i--) { + for (; i >=3D start_lvl; i--) { group =3D stack[i]; =20 if (err < 0) { @@ -1692,48 +1686,63 @@ static int tmigr_setup_groups(unsigned int cpu, uns= igned int node) tmc->tmgroup =3D group; tmc->groupmask =3D BIT(group->num_children++); =20 + tmigr_init_root(group, activate); + trace_tmigr_connect_cpu_parent(tmc); =20 /* There are no children that need to be connected */ continue; } else { child =3D stack[i - 1]; - /* Will be activated at online time */ - tmigr_connect_child_parent(child, group, false); + tmigr_connect_child_parent(child, group, activate); } + } =20 - /* check if uppermost level was newly created */ - if (top !=3D i) - continue; - - WARN_ON_ONCE(top =3D=3D 0); + if (err < 0) + goto out; =20 - lvllist =3D &tmigr_level_list[top]; + if (activate) { + struct tmigr_walk data; =20 /* - * Newly created root level should have accounted the upcoming - * CPU's child group and pre-accounted the old root. + * To prevent inconsistent states, active children need to be active in + * the new parent as well. Inactive children are already marked inactive + * in the parent group: + * + * * When new groups were created by tmigr_setup_groups() starting from + * the lowest level, then they are not active. They will be set active + * when the new online CPU comes active. + * + * * But if new groups above the current top level are required, it is + * mandatory to propagate the active state of the already existing + * child to the new parents. So tmigr_active_up() activates the + * new parents while walking up from the old root to the new. + * + * * It is ensured that @start is active, as this setup path is + * executed in hotplug prepare callback. This is executed by an + * already connected and !idle CPU. Even if all other CPUs go idle, + * the CPU executing the setup will be responsible up to current top + * level group. And the next time it goes inactive, it will release + * the new childmask and parent to subsequent walkers through this + * @child. Therefore propagate active state unconditionally. */ - if (group->num_children =3D=3D 2 && list_is_singular(lvllist)) { - /* - * The target CPU must never do the prepare work, except - * on early boot when the boot CPU is the target. Otherwise - * it may spuriously activate the old top level group inside - * the new one (nevertheless whether old top level group is - * active or not) and/or release an uninitialized childmask. - */ - WARN_ON_ONCE(cpu =3D=3D raw_smp_processor_id()); - - lvllist =3D &tmigr_level_list[top - 1]; - list_for_each_entry(child, lvllist, list) { - if (child->parent) - continue; + WARN_ON_ONCE(!start->parent); + data.childmask =3D start->groupmask; + __walk_groups_from(tmigr_active_up, &data, start, start->parent); + } =20 - tmigr_connect_child_parent(child, group, true); - } + /* Root update */ + if (list_is_singular(&tmigr_level_list[top])) { + group =3D list_first_entry(&tmigr_level_list[top], + typeof(*group), list); + WARN_ON_ONCE(group->parent); + if (tmigr_root) { + /* Old root should be the same or below */ + WARN_ON_ONCE(tmigr_root->level > top); } + tmigr_root =3D group; } - +out: kfree(stack); =20 return err; @@ -1741,12 +1750,26 @@ static int tmigr_setup_groups(unsigned int cpu, uns= igned int node) =20 static int tmigr_add_cpu(unsigned int cpu) { + struct tmigr_group *old_root =3D tmigr_root; int node =3D cpu_to_node(cpu); int ret; =20 - mutex_lock(&tmigr_mutex); - ret =3D tmigr_setup_groups(cpu, node); - mutex_unlock(&tmigr_mutex); + guard(mutex)(&tmigr_mutex); + + ret =3D tmigr_setup_groups(cpu, node, NULL, false); + + /* Root has changed? Connect the old one to the new */ + if (ret >=3D 0 && old_root && old_root !=3D tmigr_root) { + /* + * The target CPU must never do the prepare work, except + * on early boot when the boot CPU is the target. Otherwise + * it may spuriously activate the old top level group inside + * the new one (nevertheless whether old top level group is + * active or not) and/or release an uninitialized childmask. + */ + WARN_ON_ONCE(cpu =3D=3D raw_smp_processor_id()); + ret =3D tmigr_setup_groups(-1, old_root->numa_node, old_root, true); + } =20 return ret; } --=20 2.53.0