From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 643FF30B51E for ; Mon, 8 Jun 2026 13:54:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780926859; cv=fail; b=NXzaXPgE+XektfJi/gV7m5P5qpVOemPwA7OZCleFjbwdq1/gXKJM2CiBTkB7Xv19B5cNQyYTGJry5cdnkR+xU2ClUXUb4XD3ZhSuaM8bCtVQlqrqZaJ5BOK1cNbb4D7ea5N9BjiPJ5iGs0BJjk1doKaJT0NKPNRANZ5WPgEb8qw= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780926859; c=relaxed/simple; bh=7UJ+Yy2EGc7DZPuc3jKfKfzI8b72yvONg9hRUC4I060=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=Ngix3wsVA5Wot5BAtwxoBZBiEmqwJJP2XUMd7wiyBK9HxkE2ztummuJHp7vrfCxf6NYEPB0ak3CY/6Ci54r01ZSyTDjNxs+0rbZ/G1juUsIZ1JNVPIkYHnJMswbmZJ/kbgnZ/KgZr1ulrJUgUtq0DygALMT04qjBq309Rwq5Roo= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=n1GVF2jG; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=YGAlGOO3; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="n1GVF2jG"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="YGAlGOO3" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6588NADZ035027; Mon, 8 Jun 2026 13:53:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=uoNxjbzz5+ch8bFkLn/3xGq7z8eOy6vg5znadF7inoI=; b= n1GVF2jGPqFrMtS7HWNxYAIITcMFRFLFEeYgVJwxXtWXBnsw59Vuf/NyyU1NrAV/ hLjmdhE1pdrx7gg19fxOur0ZFdjccxkRS7M6oICQYrwtYzckcGo3HQPWuDFIqaUQ EGjk+S/+DPvsu/HZzpqzW5n5PTG40us6OF+x0AauNt1i0xDNGNGMYbmibeO7Y81u ZIqhmGxZIuwj0BljvAikI3jb6umYm3AonRnkqi+CmYPWdWsqlLhIcwfNJ8/OBCbo q5WjWNss50xqDUrVpLaqVsukAxostsWWYu0+NfYWAQMu4PIBip+7/l8SJcf0vM69 B/J1pyTugI/E4+hvQMhotw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4emaf92h1c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 13:53:58 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 658Drinf040796; Mon, 8 Jun 2026 13:53:57 GMT Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013001.outbound.protection.outlook.com [40.93.201.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4ema0nu2nq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Jun 2026 13:53:54 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wVtERitA4xG13mXVHBSknjNs/C+ZTDcQWzfBS8wkXdYu8Eqp/DhHfGB0g7AhZc0UsOu5Kxzv2VCoXDBFufYtPLMrt+s9vnCBgeMTwB6KHhF4JvFNLfwraCAXLBMgQwheETLnL11wk/OWsdNUnzS+DHWpHLy/1bjPLH9LQx3TZc4J00poM5WsMIpji1IZ4Gp/6nYulAgDtFZiSDr0rKnAeJoZD7slzAoNk6DmTzkzT8u2vRdSnSSkIav0oGkpzIFg3eQipL5vxSd41WgFmmNHYsJ7/G04iywT4PVyWrZzyq6Kr6GBdzEXuxinEVQ/RVp4gJN3bwZSwoPeh5znuiI9BQ== 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=uoNxjbzz5+ch8bFkLn/3xGq7z8eOy6vg5znadF7inoI=; b=d22YWNbZEiOcO7jYaTkyDPCTZKOVrI4oXO9dimS6md2VEvzYCsD4zK7E22uj1XRmm186w74zlf2lppeUaopKdFbcOX1Y6TgfmHoT1SqoToUoFC5zsnkazXup6bx0PV2cGT0pV9H658GaARcdbULjsMcW7q+284Gh0XeZDXxyVylWqNVDAViskE8/EVvCh1COspcUA9HmiYjEx0WcUrL8hVTK/XxZv7CtATBaSxFyZeg9aqJeLGC41K7WQzrbL7h8dRTPNId53MdBIXgNzIW5nZ4IpTP+/N8BucA8+8s+ZDB+90vKLHENojSBtz3DefwtCdn6b7rFUFJ1NkDd/ypk5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uoNxjbzz5+ch8bFkLn/3xGq7z8eOy6vg5znadF7inoI=; b=YGAlGOO373kl8M5cB3XnQotBay5Dp0AFSMl+eolNr/n+/IBJ8WMH6VXQ3pC0g+x6U2uyAvFbk4K+zo1L7Oa5MFyYYWMZJRDRg8o7OdXfM3QzWwIpKirU3V4jTSLdNzW+bMiq7YxO0THsnP82LD5RZpx/R84533uZXuY+j3uIZik= Received: from DS7PR10MB4990.namprd10.prod.outlook.com (2603:10b6:5:3a5::8) by MW4PR10MB5864.namprd10.prod.outlook.com (2603:10b6:303:18f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Mon, 8 Jun 2026 13:52:45 +0000 Received: from DS7PR10MB4990.namprd10.prod.outlook.com ([fe80::48cd:32fd:985e:239e]) by DS7PR10MB4990.namprd10.prod.outlook.com ([fe80::48cd:32fd:985e:239e%4]) with mapi id 15.21.0092.011; Mon, 8 Jun 2026 13:52:45 +0000 Message-ID: Date: Mon, 8 Jun 2026 19:22:38 +0530 User-Agent: Mozilla Thunderbird Subject: Re: [External] : Re: [PATCH 1/2] timer: add add_timer_active_cpu() To: Thomas Gleixner , anna-maria@linutronix.de, frederic@kernel.org, linux-kernel@vger.kernel.org, tj@kernel.org, jiangshanlai@gmail.com Cc: notify@kernel.org References: <20260423091914.63645-1-partha.satapathy@oracle.com> <20260423091914.63645-2-partha.satapathy@oracle.com> <87tsslwngu.ffs@tglx> Content-Language: en-US From: Partha Satapathy Organization: Oracle Corporation In-Reply-To: <87tsslwngu.ffs@tglx> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: PH8P222CA0012.NAMP222.PROD.OUTLOOK.COM (2603:10b6:510:2d7::25) To DS7PR10MB4990.namprd10.prod.outlook.com (2603:10b6:5:3a5::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: DS7PR10MB4990:EE_|MW4PR10MB5864:EE_ X-MS-Office365-Filtering-Correlation-Id: 4f5b22bb-b4a8-42ca-c8a6-08dec56537f0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|4143699003|56012099006; X-Microsoft-Antispam-Message-Info: Pu9MZGdpthItRf76Ocb4iXAT7pJLwFUU09fYPdwgDqm+k0lam6flk8C+CDf/Pi86Bv0Nca91pYlDwUdMJWtKoVX7YyHc32Il81vzhOjFO/4qCgaLkY02croJE3b9Ou3tW37UaR9LkBb4vJcXGShDZlkynjZxJe82x9CzQG4Qr5qd4lZlnzOq50JFbKmgUxSsrH6rbjkzYvbezft5Czxl316H4TFDmcl3OSrP+uVOjJNz1jhBsxwEKR3ntKaveJYxcts96PKmIV4Fy/uNuqxBK9fqqkM3pVsHPnZ/giLCCdO2YL5qmdS4zsR1tQgFgFZqPTaCpIVJ1tY3EpLKrKIbPGXET4vxp4A/lXPfE4F1HG80qNXQwNW51B8PXaW2iLEWZ9hDwrzfyJelr0vctJHsUKsuxkcHWE7AiTibr5EmeZDJDW1bNMgTv8bcLpyPpYoMTi/rYEwsoMWT59w7RmxuFgXkukYKy2CzZsmW295v6OfI/o7/tYCTChubdQpBQPD8DAs12J0EJUVcb5T8PfRAr9R4zj915DYEtQIRjYDV44dPAaE1gcTexJR2QT6wfnO5IVW8Sgq28Wig/DRvZ/q5zxO9cu+Op+eeDvq16TGr4EyRspCUVHUuQXMw2PcNVjINTvbXxVCRlZO5uVTQZkEzuti2vLGtvgDsC1gYRht2AuAmj9u8KCJM9hSn2fuwIIfz X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR10MB4990.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(4143699003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ejVhT0RnVHhkME5UVFVhQi9SYjdMWVhZNjM1YmwzQVhKdjdGdEJTUUI0VTVP?= =?utf-8?B?dGpDR2FFc1F1OGo5ajFqNHZqNmJWMGc2amk2Z2p1TmtXVlZjV0daeEhDaVpr?= =?utf-8?B?MHJCUllsbk44K3Y4OThhNDF1d3pRQWFXRWV3cHhIYytQWjkvdlNQdk1XbVZO?= =?utf-8?B?a3dxMEdWSlk4Y1ZWMThQbS9ScGR5dkQ4dndNL0xQVzltTk55R1c2aUh3THU0?= =?utf-8?B?alZQWXM1dzRUemJpQzQ2RXRBbVducUVWRHJ1a2d6M1RXZEtwTmxMbU1xNDlB?= =?utf-8?B?QmJFbklTWEs4aUxmU1UzeDdqYzY0TjR2cnliOWJ2UUV5eUM5MDhGbXoxbHZY?= =?utf-8?B?VWpkamVIK2FSL3p2N0t3MGdMaEYyVXBueDJqYUhLKzhFRUFkTWhmQWRvS0Zz?= =?utf-8?B?K1dDSmxzcW9adkNoa2VWWWhOUmRqOTI5WWVkTFhFOEN0U3hRdzA5OENCaXZP?= =?utf-8?B?S3B2RGxKdlRTOVFRc3Z1Y0ZMaU1INlF4bnRDYXhuM2Y4VEtHb1U1S0xJem8w?= =?utf-8?B?YkxYcXIreUFxNFJOSFdIbVgrUkc0dnpXUWs3aTVjUUZvV0xqNUJlREMzMGJR?= =?utf-8?B?R1U3c2ljZGtpVkllV00weVpueVVHUlVoM2o2dEltSHYwVzVGYmtsMkhtRkJi?= =?utf-8?B?UUZua0ZRMmtPY1R0bENPNUszRDV0T29iNUN5SlVuYVBzMmN0djRtS0hNcDhE?= =?utf-8?B?cTBZMDJDZHhmWUlESG9GQmZQN3htdzJZbDFRaGlsN2RoMno0b3l4UlVaVjI0?= =?utf-8?B?eDhkRktnOSt6YUdkUk9XcFNBdmFzL2RIbmhDYjJOWGVGcU1CQTVZTlAydmd5?= =?utf-8?B?ZUZPZ2J1TGZ6ZzJjNzdaUmkwdGRIQ2RnU1NNS0o2cEd1V3NVVllqd1ZDSnpx?= =?utf-8?B?UjJMUWdGUFB6MUpIVktKZlJjODR4ZzkrYm5XYysxOTE3SjUzZzg4WWIrNUMy?= =?utf-8?B?cG9idXF4bDluclJZUndXOEVzM2NHaXJCNjgrbytoay9KN2g1WndoUU1IV1hG?= =?utf-8?B?WkFmampQVTQrNTB5MThscThoNngwMEtYVFp0ZW4vTDNzOUdqUEE5dzZiTitR?= =?utf-8?B?b0tmRGwzamFFd1EvckxaOStlTERIbTdhQjlIeXdpK0x0WTlUeWw0OERXT29r?= =?utf-8?B?V2hYa25obHJoZU93NnNrNEFtUHlRcE54SUtodkpCT1hYWnp4amJhbW52S2tF?= =?utf-8?B?UWxsWStwM2Iza1hEMUFDYUFsckxTY2J6R1Z2bkFzY05NdzZXOXdTSTRYN1kw?= =?utf-8?B?UUJzZHQ5c29sTEVYZW1vbkZtRWFkeDlYbHBSNkRiUWtpWlhSelBhNUJHWHZC?= =?utf-8?B?dWpONXN6a0NVMng3NjQwNTVyQkIwbHRSbTJkZ3hhSmhJci83MGp5Wko5bVIx?= =?utf-8?B?Zm10ZS9ZL3N4cDgzM3NqTVZDUVd0d0ZwZjJwY0s2R0U1T3JzRDJHYll3MkFT?= =?utf-8?B?ZE9xeGowSFBQNGxQY3lPdnFuRWZHMlVlMHpjOXV2QVF6WGQzNk9GQjY3S1ZL?= =?utf-8?B?UEorMWozYXZGblhLMEVCUFptZFRldVpGVE81c2QyNUhaU1VCVjR6ejVleTQx?= =?utf-8?B?bDN3S3lzRFBSV1ZiVTJnN0FXOW5tM1JMTVJ0Vk9MRFpyUThjcGMwUTBHaFR4?= =?utf-8?B?K3dOVzdMT25KYlNuajVFbXRYS0xuWWlQaldFYU5JMHZRL2ZSZll4dGdaL3dF?= =?utf-8?B?ZTZnVEdLM1B2VGFsby9Oa2t6VEhVRmlDWUdyZ3pMOE9JTjU4VG5ieUNpMWk3?= =?utf-8?B?QUpsUGxVS3dtRjZuMzc2QU1jcHJ4Ym1aem5US2FIckJYa3RwZERHQklKTmU3?= =?utf-8?B?WCtrbktZY1duVDFhaHJhYnovdGUzSFgvSHJWVWdrWUM2SHRkRlQxaEx4cU9l?= =?utf-8?B?ZUhLZUI3R2YxakQ2aXFBYmlRVVllaFZlMXFkemhmYlI1NXRCdkNUazZMS0xK?= =?utf-8?B?UjI1akNrQXNiempmeTJPZHRDV01IS25lZjNDUHJBRzhqbUxHRzlQZXd6RFRF?= =?utf-8?B?ZytnR2NTTFhtODZGazBSS0cvQ0lPS1hoMGdZMDcyUldGUEpXT21Oei9IUjVY?= =?utf-8?B?RUE0bHpPSkJJbnlYaHBVQzJpQURDSk9WMWhFRHpJcFJaMFBzaWJ5NFVheWNs?= =?utf-8?B?eUpOQnpLcnZPVFNrRjJnM1drcXYwdFFZaWlCRG14Z1lUR0RjNFhtYm91N0RK?= =?utf-8?B?S0tvMHUzYkk0aGoyaXRYVFJBYU5rS21WcWZxSlN4Q2pES3VuUGxmSzVveGNm?= =?utf-8?B?bHNGcGZBM3RxQWluMGJSZzFiMGpucVg3RDB3OS9FUituUUFEeDZLdWFpM2l0?= =?utf-8?B?L1psZGFVUEk2RlYxNG5BZ0dXYWY2aG5yZW90TVFESFZGekdEYyt2eGVhKzhp?= =?utf-8?Q?/qXbMa+5JB96L04w=3D?= X-Exchange-RoutingPolicyChecked: knhbZKQco9tUFHfWHczN+NnBhaOcTqH9SxNHWczj4kN9Tqf8tUIZgeYkaZDZwqtEZWGAYrx9UOsAiOGD4V1I51jYSgmqteGsjIDdng23fza0xiXww1p3nBsMXXV+jv8wgiVqHiCO4fa15hO7nooEUnosww/bm3vk14ca/Tg48t3KrXWqa+LWUa4lcTl8slotrqDeBsPZbwXh83WUYYh9SuPHLc3kx/MBXdJL9b7PJacf9P2CaV+L6nPDuj34LqyN7AjZkVqE7KffoBMHTqdCj2MktkBQsGJM3GB4fmbPQwPgj1Ejzyf+qfJRS6KOrGf8NmSdiQnlW/L7zrC0LIW/4g== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: IfDJ2mPx4d19o6jLQ+cDqogSfwEvANYGC5aWg2ROSvEK0uo+vk0a7YQ8xZZ7uZKDrnZwsk1qcNrtJvnXoUfzOQlFn1SrhB8gdIDfFm3MuVkOj+JfOG5iQAggfUOkng0XMrxokziJ33npuTjifnNC8cU10GJPU/Gm85Ay7527v+/6DEwN110NYAuVXQeqhoT82A7oYyyXGACgyLI39pCkYWqe06VimKgOMeVOIdUOwaN/n+8Vi5GtpKXkVuWSX4yqeGS4f/XNChwlY75Qv3DwQbisbeKzQmWkJjd4tYAgmY2MKMYckxj0TV31Q6o3B0bm87vKsBRBxr5vFwi8imz7Awyy7/kaLqN52wV8+y+6ZfHoBj4/kIiWSgn/MDCRObh2HFyzf0BVaEfPYNUOAyeYO4OJdh4317TA9Ln1aqsEsjOkt/A8L3Rfgw1krh2PZnrFbilaDPQQSPoT18uv3Ed2QhymdS9LWfXtUiNgXGEeuqItHXF5Hj+S7XUUFKXJ4OtmYMw6txk5XZdLPza+KBQ+1QKFT0aHeD3WN7E/KbFbIypNdlkYebudgXW0Mec+raMsz9xyUuAZSy7qdIgoKsVamiD8fSrdAWQD1ay9barmY0k= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f5b22bb-b4a8-42ca-c8a6-08dec56537f0 X-MS-Exchange-CrossTenant-AuthSource: DS7PR10MB4990.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2026 13:52:45.6091 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3rJLviuZcE1xmM28+6upkrpHSuF+YKMbqiNh85hDa3qeOPF6bRlWBwRe6DscT/vg2SYwR6a/ithA5rjkSR32e5l7aWODdYLbAfkQBgR6l20= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB5864 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-08_03,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2606080132 X-Proofpoint-GUID: jGEVzRWz6VzP2GTf9Ko4j9X36bFB-tMS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA4MDEzMCBTYWx0ZWRfX+Y65yLpGTPKj hnNvg8cXEEofftjMvnXcclexd5sWEe9dakdRRFuuU0pThRXSBT3c3kndvei2e61N5/1rVka0oLG nfG255fGgbr6CwnuAGa7YsqY5/v36ylJwtU0fN7h34/Lzfa6NrnLTudtXVY3G77+XZlQ189aUjJ Z5m6jgN9mjOM7/8OqiFcDvVO79vwDdt1PS2JHcHPNdWZ/xI1l3+HVdh2n30z9qAwdJj58KCJnix 8VFbbKEGeoCCvR4mf1TiKujEm/9GM7crelPwhuHk2GKwG3HFYq2+/kVoFprdv5ReE9gOyqvMJcT I5ryJBFSzCHqNcV+XwRF5xYOuR8ruR2Rhndy4ddpKTQHcGM072rUjJXYEdFocVqQE716CXw/laL UGjpQ4egBEYJrfn+T6HFmiE623lH7LGuwy+IM2ht8uLGRAm8WoLkNllQw6ttWgKNqLft1wA5oL3 OtT0qOOR7oTtvMIHGcbWzBpVtG5hPeR7cVmSTL3M= X-Proofpoint-ORIG-GUID: jGEVzRWz6VzP2GTf9Ko4j9X36bFB-tMS X-Authority-Analysis: v=2.4 cv=OYeoyBTY c=1 sm=1 tr=0 ts=6a26c976 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=x0eKOSpe3m1H3M0S9YoZ:22 a=yPCof4ZbAAAA:8 a=LeIuDuB6_JLbeU4eM6UA:9 a=QEXdDO2ut3YA:10 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12312 Thanks for the review, RDS already checks cpu_online() before calling add_timer_on(). However, that still races with CPU hotplug and can leave a timer queued on a CPU which goes offline before the enqueue completes. The current workaround is to serialize the operation with cpus_read_lock(), but doing so in the networking path adds overhead to every timer enqueue and increases CPU hotplug latency. > On Thu, Apr 23 2026 at 09:19, Partha Satapathy wrote: >> From: Partha Sarathi Satapathy >> >> add_timer_on() can queue a timer on a CPU that goes offline before the >> timer is enqueued. When that happens, the timer remains unserviced until >> the CPU comes back online. >> >> Callers can try to avoid that by checking CPU state themselves, but that >> does not close the race with CPU hotplug. Taking the hotplug lock around >> every enqueue is also too expensive for users that only want CPU-local >> placement as a performance hint. >> >> Add add_timer_active_cpu() for callers that want to queue a timer on a > > Aside of Frederic's comments this is a patently bad function name as it > suggests that the timer should be placed on any active CPU, which makes > it more confusing as the function has a @cpu argument. I agree that both names are poor. I will rename them to better reflect that the target CPU is a preferred placement target rather than a strict requirement. > >> @@ -1296,7 +1297,7 @@ EXPORT_SYMBOL(add_timer_global); >> * >> * See add_timer() for further details. >> */ >> -void add_timer_on(struct timer_list *timer, int cpu) >> +static void __add_timer_on(struct timer_list *timer, int cpu, bool need_ol_cpu) > > How is the kernel-doc comment still valid for that function? > > Also 'need_ol_cpu' is the most ridiculous argument name I've seen in a > long time. My first read was: "Need [good] ol' CPU" > >> { >> struct timer_base *new_base, *base; >> unsigned long flags; >> @@ -1333,6 +1334,18 @@ void add_timer_on(struct timer_list *timer, int cpu) >> WRITE_ONCE(timer->flags, >> (timer->flags & ~TIMER_BASEMASK) | cpu); >> } >> +#ifdef CONFIG_HOTPLUG_CPU >> + if (need_ol_cpu) { > > This #ifdeffery is pointless and can be replaced with > > if (IS_ENABLED(CONFIG...) && ...) > > But that's just a cosmetic detail. I will restore add_timer_on(), clean up the #ifdef using IS_ENABLED() as you suggested. > >> + if (!base->is_active) { >> + raw_spin_unlock(&base->lock); >> + base = this_cpu_ptr(&timer_bases[BASE_LOCAL]); >> + raw_spin_lock(&base->lock); >> + cpu = smp_processor_id(); >> + WRITE_ONCE(timer->flags, >> + (timer->flags & ~TIMER_BASEMASK) | cpu); > > This is broken vs. the TIMER_MIGRATION semantics. Agreed. The intention was to signal back to the caller that the timer did not enqueue on the requested CPU. That information is better tracked through the CPU hotplug infrastructure, so I will remove this logic in the next revision. > >> +void add_timer_on(struct timer_list *timer, int cpu) >> +{ >> + bool need_ol_cpu = false; >> + >> + __add_timer_on(timer, cpu, need_ol_cpu); >> +} >> EXPORT_SYMBOL_GPL(add_timer_on); >> >> +/** >> + * add_timer_active_cpu - Start a timer on a particular CPU if online or current >> + * @timer: The timer to be started >> + * @cpu: The CPU to start it on >> + * >> + * This is like add_timer_on(), except that it queues the timer on the >> + * given CPU only when that CPU is online or on the current CPU. >> + */ >> +void add_timer_active_cpu(struct timer_list *timer, int cpu) >> +{ >> + bool need_ol_cpu = true; >> + >> + __add_timer_on(timer, cpu, need_ol_cpu); >> +} >> +EXPORT_SYMBOL_GPL(add_timer_active_cpu); > > We surely need more exports just for adding a misnamed argument. > >> + >> /** >> * __timer_delete - Internal function: Deactivate a timer >> * @timer: The timer to be deactivated >> @@ -2507,6 +2543,7 @@ int timers_prepare_cpu(unsigned int cpu) >> base->next_expiry_recalc = false; >> base->timers_pending = false; >> base->is_idle = false; >> + base->is_active = true; > > That's just wrong. The base is active only when the CPU reaches online state. Setting base->is_active = true in timers_prepare_cpu() was intentional as a small optimization to avoid an additional hotplug callback. Timers queued in this window will be serviced as the CPU completes bring-up. However, to keep the state strictly aligned with CPU online state, I can move this activation logic to a dedicated callback under CPUHP_AP_ONLINE_DYN instead if you prefer. > >> @@ -2535,6 +2572,11 @@ int timers_dead_cpu(unsigned int cpu) >> >> WARN_ON_ONCE(old_base->running_timer); >> old_base->running_timer = NULL; >> + /* >> + * Make the dead CPU base unavailable to add_timer_on() >> + * when the caller wants an active target CPU. >> + */ >> + old_base->is_active = false; > > After a CPU went offline no timer should be queued on it anymore and > add_timer_on() clearly lacks a > > if (WARN_ON(cpu_offline(cpu))) > return; > > If at all what you really want is an interface, which > > 1) allows to give a hint about the CPU to place the timer on > > 2) checks whether the hinted CPU is online (or even active) and places > if on it if so > > 3) if #2 fails picks a CPU on the same node when available (online or > active) > > 4) Picks any online CPU (maybe prefer the calling CPU) > > But let me look at your argument you provided to Frederic: > >> Commit 4c00f3b0dea023a9851908a501735c899b0772f9 >> ("net/rds: Add preferred_cpu option to rds_rdma.ko") >> added `preferred_cpu` so follow-up work can be placed for locality and >> performance, not because correctness requires that exact CPU. > > If RDS fails to update the preferred CPU logic once that CPU goes > offline, then that's a clear bug in that code and should not be worked > around elsewhere. > > Thanks, > > tglx The RDS use case treats the target CPU primarily as a locality hint rather than a strict execution requirement. Given your outline above, this may be better addressed by a generic placement-hint interface than by strict CPU placement semantics. If that direction makes sense, I can respin the series and send a V2 addressing the issues raised above. Thanks Partha