From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.15]) (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 8F49B2868B4 for ; Wed, 15 Apr 2026 03:11:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.15 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776222666; cv=fail; b=KpaO0Xda6Lhw84bABomdZQvhO+OrZbTKBTe/Ae5XRRZw5Bu4jV4vi9VfB+dWWVdrmGRM9nWA5UKIhXN+HgbyAWH4OMf3oKhG+uTk4wiEaJSpKvwd4rN+kPlLq7Rd+k9dejXWCRdBQCPqiMu0Ch9jAzHoX+gkGV+jrmswbF875Fs= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776222666; c=relaxed/simple; bh=dNhjo3vRSn24CkmOmJmWwsX/s1L2gf0ZSAt1cjb3z7M=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=ajc16++xJbHrxBLPF/1OI4KfwT3blkhFeqIpX8C+rScweHRKQzAwfgt6pzmYGyVLeLfEuMJYiHBLKpISwGQJNotI3EStwhlApc9/P0Ww2l/usGj9ALGgER/VMDUl//RaakOfzKiG/CrShZ8ym+ZLMZYBXU4d14BFAB264X4a3rQ= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=HhYM6DIa; arc=fail smtp.client-ip=192.198.163.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="HhYM6DIa" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1776222665; x=1807758665; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=dNhjo3vRSn24CkmOmJmWwsX/s1L2gf0ZSAt1cjb3z7M=; b=HhYM6DIa4JokCeSIVrHGe5wQ5zPUjSLOiaHPiyOyFu6CdG+SpgA19cGd WmAv4HX+Rppk8zSPCJyC4Sianc1wySvFbgK//wp69UwM+fOtM7959fO8A zUbuiSC7Y0vGiQzo6NeN+2eZwJGKTalWBIs6TeLE5PsLFAvej1Q3nVlBc Psx94HjN9CJcLtOvcd8HHqXjFlxLTZTaZvk7m3wXS+GilImA9dlWO1PCx pz57+WyvG3iwQmoSmCpvnjsWDGh0xffgP/uH7XnNjt+UG4wQmAvaEP9Hd UJ8AfNNlJnmQ7PMWX/QX99CbMaxFLgCgy1u212aw9IQyyann/uVZZ7O0s Q==; X-CSE-ConnectionGUID: xySKWa/GTUCp6+xcv6703g== X-CSE-MsgGUID: K5SE8LthQ2i7Wdqn+ilucg== X-IronPort-AV: E=McAfee;i="6800,10657,11759"; a="77304987" X-IronPort-AV: E=Sophos;i="6.23,179,1770624000"; d="scan'208";a="77304987" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2026 20:11:04 -0700 X-CSE-ConnectionGUID: TKBkc/nIQiKxZAREbWFBBA== X-CSE-MsgGUID: uTW6SVVWTkGfZdf3BeGCHA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,179,1770624000"; d="scan'208";a="253680177" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by fmviesa001.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2026 20:11:04 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 14 Apr 2026 20:11:03 -0700 Received: from ORSEDG901.ED.cps.intel.com (10.7.248.11) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Tue, 14 Apr 2026 20:11:03 -0700 Received: from CH5PR02CU005.outbound.protection.outlook.com (40.107.200.47) by edgegateway.intel.com (134.134.137.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 14 Apr 2026 20:11:03 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TnT+9vjA+wq49srFvbHTm6wWs46nKJ+HinaSKuqhi9Ih4hvLTexThXdlRK9P6BhSvh4+q2CX+He71hjJ0O7NMPOJ1umD/l74PefG/hqn6t0+wkJkhw9WiSJXrS9wxZghN1kDTWom5OuHI9jC4YGQlIgmwLB6JRIObSPjZ9w1pGTiJ87eGhSvE7Kq1XE/K4Rovi0mt6hJLDa12HNo9cgCek8KBgN3h4kjtVe2rtZRticZtPfpFPtvUvSbGeWyPkLzDe6xYB/EMHbFaVVDm6UbNIdP08eYkIH7ZJCRT628Y0l0eXVCUGwVuqgONjarp+oxzhfsK4uRsjYEWPdc5yXvPA== 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=OWkcvJoe7c2ydsayuZkrz/06F95zwVrSnaucfWz2lvY=; b=gNRfW8p96kwNv3/M2qsaffSRCQQ3rR0pZ5ZZsTWvBaM8xZGQLH86XcNF0aKIAZRa7nK8XwheHQXaxTGJxIUHv8y+fccYxnTYsK0m28wJbfCtxkiCi9ljkuFvS+zvl6u9K/WUJrfS+hKWMRR9y1UySX4/LGYFW/CDHVY328A9m9BeRSU3VqU1bvmbZIkyHJIRWDNiC2ayriE8Zzq9smZnFC6f5dpcGKHf7bXjQwE6gx5ZoGDyk+jZCl5Zyy95HrZoccreFzJbgXo7E+syVVCDz09p4a95K9NdwDgD06BCjZbety+9cCMhA0aFNeqNMoxfNSe9T5ioo36RiOHd3wnWbw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB6020.namprd11.prod.outlook.com (2603:10b6:8:61::19) by CY5PR11MB6415.namprd11.prod.outlook.com (2603:10b6:930:35::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.42; Wed, 15 Apr 2026 03:10:59 +0000 Received: from DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::3058:1480:e4ac:5765]) by DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::3058:1480:e4ac:5765%6]) with mapi id 15.20.9818.017; Wed, 15 Apr 2026 03:10:59 +0000 Message-ID: <1ae149cd-7b36-4625-8e93-daf45aaac080@intel.com> Date: Wed, 15 Apr 2026 11:10:43 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] sched/cache: Reduce the overhead of task_cache_work by only scan the visisted cpus. To: Luo Gengkun CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , References: <4fb7a6da-447d-452a-a920-7cd39b939ccb@intel.com> <20260414150745.225416-1-luogengkun2@huawei.com> Content-Language: en-US From: "Chen, Yu C" In-Reply-To: <20260414150745.225416-1-luogengkun2@huawei.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SGAP274CA0021.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b6::33) To DM4PR11MB6020.namprd11.prod.outlook.com (2603:10b6:8:61::19) 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: DM4PR11MB6020:EE_|CY5PR11MB6415:EE_ X-MS-Office365-Filtering-Correlation-Id: de3c782f-89c6-46fd-b3fc-08de9a9c9df9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: CorwyXDnzu9inOBWNz0t+7p92KM46xsXKiJ19LPI1MBbfU7KckqR+btJJQLrY8UwHXpiw0RoBbeZTeCyADST9v3AhfvBFD0SDPYSGjCH35awl/r4b8lke+QTKtGOYsmj2PdyXRt/pUFijw1N7eIC3EQkhHoA6hD16UYyBKyWX3D7mvS38PUluiBAy2p6F7aqCkWkxGuIjpR8DwtFOZhqnkZ3+5DcrGqVUeH1g5XNmIj9lE83coKAuCcCQLbGJD6X04WGkIueEvMapoOaxnPztRVm3/NGAikwy+IK2PgdKNUOAWWFrTydYS76IhZo+daf4mj8Pmtl18vhNpnT7g0huXmm5pSn5/ZpEJwlgGRhBp4PIq8P8yypsQSGzzMFZ6Sz72QdtXmzz0QyeB/jeuaKWivVgVH0ZVogJ1+wE9uinhWci62VO6eqs0VWYWMYQcFR3lN+zrZEsn+7hXNVwXtx1I7MOEsSwrYW4pEFNGdFYVGk4QLStQJorgCU/iX0plngKzv3BaUolH5Nf8AeVwF9l1oa5RxZu7BNtnLN6bOXMxTi7WmFpIZrUFzPsRxHn3LhAc3KmDYU/F/6MWCX2naFR/JZQ7MpZuvrEuuy69UvMkWTuLxqPWhwflYlL4HCzHXomdlylbXNKVPVPufPOXlrOHlnzO42lRMG0+6e0qfrSdvBk/PE4q2ecs99vv9bgQruTW0ma1DbvghO7ZpC342BnN73rWTN1uOFGJqk0SxWI4k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB6020.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a0hGSWJpTmVKb2JtSGRMSFlidWtmWWdhc2wzRENneDJPZVU3SUkyMjlabm5F?= =?utf-8?B?Z3FtWWhiRHR4WkJiaUU3MzJCMmhzQzRQTi9lL1o4ZXdVM1k0b3FVRmJsa1dE?= =?utf-8?B?enFHSEVleHZFT0RpMDRmaHFQdGNMWElLc3NmbmgrYUhwSWEwc0RFa09UczFq?= =?utf-8?B?Q3IwWEhVMDBoSVdWaW5TTkQ4TnNkUWhYUHUzRi9PYUdXZE9pUSsyMUh6Mnpi?= =?utf-8?B?ck91YStRSWNWVjFHT2lmNnpSUlB1N2NuSGc3dURiVTBkRmpqQ2c4a093VTJl?= =?utf-8?B?c0p3Q29MRkEwU2ZPQVdEZkUwaFAxMTk2WGxDS2hldm5SOTJiM1FRdXN2RjN2?= =?utf-8?B?R3RsVmIzd051ZVNrRFhBQXN4R1NyUkhFYnc0RUZSMUhQNGZOcmx6d0FDYldN?= =?utf-8?B?QU9kOEpkcmgzUFgvSkRzVENsMUZnWHAyUG1Sb1V2Zmk5anEwUUIwdWVPdi95?= =?utf-8?B?VzFTT1VlZE00aGpocTJZeWJuZk5CV1JGOU1KeUkwaUwrSFJzbDFXbHB3VnVS?= =?utf-8?B?all3aGFDQkIzN2tpa2FFQkdzV2R1VDlTVTdpeFdtR09WcEQrWHBMNjh6Z3JG?= =?utf-8?B?cUMzR0NJdkk5YUttWXQvVm1kNHRUTEJWKzc1VjhqWDNOOSsyQ0Zoa3NLUFJa?= =?utf-8?B?NFc1YUFQaExSR3pjbU1rRkh3VEVrUzdOc1NSZnhJNmxkUi85YVJpVGJHZENw?= =?utf-8?B?QTdBNVY4djhCUVNtMXU4cjNWOHR1MXE1cVlobE9RQUxqa25kZUt2c0hDTlo1?= =?utf-8?B?ZSs2ZDM5VUtjU1o1UXQzRjBNU3NFTHNyVGhnUUxxVzNqSFhJWFVPNnJmWnUr?= =?utf-8?B?amE3VCsyM1h4STBmOW1mbjlZcFBHcDVvbGZSY0FXL3c2TkNLMnVOYlJYeGVG?= =?utf-8?B?R0tDVEJScmcxYU5MQkcydzZibk9DbFl5dFgwcEx2V2xGMmlLTjJDTGFLbFpI?= =?utf-8?B?UHF5cWFuemFLeEpRWjNjM29CbXJFTGdCNlVIenFxYjhaOGtmUERnUXR6emxx?= =?utf-8?B?eDE0UFNwalU1d2pmSXZRYU41RkRTV2VSS1RCYzdBZmJnZXBuTkYrMXp6Ri9l?= =?utf-8?B?RXF3NUt3Y2NnU21KbmtEczk3K0RqZGdiUkVjQXJIeWFmV2IrS0Rtb283L29M?= =?utf-8?B?ZnQrdXZtQWhFMDR3ZEdhOTZRQUFobTZab1ArOGJHOGtkVmYyejF3bDJPSmsy?= =?utf-8?B?SnVNek5PVFFvTmZ0LzJzbVRoZEROWkhTRHc3amJPNTFhZTdMeEhZMi9OMVFo?= =?utf-8?B?NS9DT0R3UUx6b1NPb3JjV2pVY2VJU0V4YU94Ums5UGNOVTcvSHFib0RtNW1y?= =?utf-8?B?UjNuYjIrRDJVUEFCMUxkcytmemkvL3hkbXI2Y2N0VkFIU3lxZWZTd1R6amxa?= =?utf-8?B?MlN2UlpGOUoxTEVvVjhQYzFrWUdOczB1M2U5YlBkbHJGcXNGdW9MMHBLK0Y1?= =?utf-8?B?aFAzT05YZ1I0L2tBay9mQjhyOVl6UGIzNklSWnJndG9UelNULzJsdGowSmg0?= =?utf-8?B?YW51UGd0VW9KaE5MVVZiL3JqdnlRL0lpR3cwUGFrWDFkSlhGQ3pHdjg3WEYx?= =?utf-8?B?d1EwNnNZWUJZZS9SRy9ZeHBJZkxKZURVZDdNUkRPUGUvUGNXZGJJc01MeGNE?= =?utf-8?B?UWw3M2JETmZnRWswcVcrK1JsMXIxRVVuRzNHcXJVMWZETVI5UHdqY0FrTHgy?= =?utf-8?B?SWF0Y25SN01IY3VqTnFQSU8rVXhOQ1V0RmV4bGhVWHNyekJTQlNuek5xTUt2?= =?utf-8?B?QmJmZ1QycUJiSTJ5QjRWTzE2aVZlZmtxSEFiTUo4cmtwL3poOFZlakd1WjdY?= =?utf-8?B?cDhNcGJJTmlBZTFKYm9xalBhZkF2bHN2K0FuY3Y4bEhaTDczLzEycVU5N0JL?= =?utf-8?B?dG4vNTBkUW1Dd0FBV2RRV05ER3FtMWJycjBpYmhoMHJ5Y3lZbkJxR3E3S3ZJ?= =?utf-8?B?V2JJRVdrdmNQbWZvZ1RtajFGOHp5ckx2a1NUTk5FaEdsQlRPeTdPbkM1Z3NX?= =?utf-8?B?OVZPYTBtdDd0TDJoVTVhdloxblMxamRZeXlMYnJyaXF0eTlBQW1QWjdkMDFI?= =?utf-8?B?NWNwTHMvQ2FVTStTODRMMTBOeDEwakY1T3htbHVhNlVmZjh3UkRtYU5nVDZK?= =?utf-8?B?U3pXMFhQQkc3SUZwU2JRSVpBSGJ5SW1IMG5zWXpCNUkxNm9DRkhrYVQvQWVW?= =?utf-8?B?cC9ZZHNNdGVORGQrWmFuSjZGL2ovaGQ4MWxPN0ZqRFBlOFZodFpadG9EUDdl?= =?utf-8?B?Yy9OTm9NRFdXdWkrYVZITHZ1TGVmUXZkWW10SExNUEVkbUlmNE9JNWJGRkw3?= =?utf-8?B?N251S1NGcDJJMWhEN0pBN0dmTTM0V1dVSlBGK2pwQjN2bWJFdkY2dz09?= X-Exchange-RoutingPolicyChecked: iFZyyMlMT1S4NcR0erPwf4cKXibhQzyeUtWjlZX2ArkcWJ+rjHU/epkm6V8FmeMZagOZLfVzf0Gy0D95M4EG6d4g0IQgnhbJaohN9k0Ye165/LeBOf6XvLw6BdZb4Tee5J2+ejLMUKIrzB+Og22mCSAUuyZBIbKbVIL9wdBwkkKGC5njlqaHyJOCcHYIBfiZ4uRK462+kjOUDK+34PdEeHioSBU4w+r9pZTcuAfua0elTOZzv1fJ7EW8eq0RrSYL6/YiECRfKqP5C6ji8xb7HWE+B+iB8AlOhJJyXEvFSsPQ/v1n6tSSt4Jep7a5kZLYlojjGKHYQxFaa0iycndjeg== X-MS-Exchange-CrossTenant-Network-Message-Id: de3c782f-89c6-46fd-b3fc-08de9a9c9df9 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6020.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2026 03:10:59.1923 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WdyDYgGg4o/34RNxFfLHjPTdkNBa7zdjI4vRvxxfw4N4kCm9+b/iF2saIj5VAjgVR8wjeP4ANhRtxFIDaElMOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6415 X-OriginatorOrg: intel.com Hi Gengkun, On 4/14/2026 11:07 PM, Luo Gengkun wrote: > The overhead of task_cache_work is high, espeically in multi-NUMA system. > Currently, task_cache_work try to find the pref_llc by scan all cpus in the > system. However, most of these scans are meaningless, such as those for > cpus that have never been visited or were accessed a long time ago. > > To address this problem, this patch introduces visited_cpus to track the > visited cpus and uses llc_epoch_visited_timeout to evict cpus that have > timed out. > > Signed-off-by: Luo Gengkun > --- > Thanks for the reviews. I've updated the patch based on your feedback. > > v2 Changes: > 1. Added a pre-check before set/clear visited_cpus to avoid C2C overhead. > 2. Optimized llc_epoch_visited_timeout by using a static key to minimize overhead. Since the visited CPUs optimization should help reduce the scan cost, I wonder if we should enable it by default, regardless of the timeout value set by the user. This mainly helps avoid introducing extra debugfs controls/static key. > #ifdef CONFIG_PREEMPT_DYNAMIC > @@ -669,6 +717,8 @@ static __init int sched_init_debug(void) > llc = debugfs_create_dir("llc_balancing", debugfs_sched); > debugfs_create_file("enabled", 0644, llc, NULL, > &sched_cache_enable_fops); > + debugfs_create_file("epoch_visited_timeout", 0644, llc, NULL, > + &sched_cache_timeout_enable_fops); Is it possible to reuse llc_epoch_affinity_timeout without introducing epoch_visited_timeout? The idea is that if a task has not run on that CPU for 10 ms (by default), its footprint will be cleared. [ ... ] > @@ -1736,8 +1746,17 @@ static void task_cache_work(struct callback_head *work) > continue; > > for_each_cpu(i, sched_domain_span(sd)) { > - occ = fraction_mm_sched(cpu_rq(i), > - per_cpu_ptr(mm->sc_stat.pcpu_sched, i)); > + struct rq *rq = cpu_rq(i); > + struct sched_cache_time *pcpu_sched = per_cpu_ptr(mm->sc_stat.pcpu_sched, i); > + /* Skip the rq that has not been hit for a long time */ > + if (sched_cache_timeout_enabled() && > + cpumask_test_cpu(cpu_of(rq), &mm->sc_stat.visited_cpus) && cpumask_test_cpu(i) should be fine. The rq access above doesn't hold cpu_epoch_lock. I wonder if we can safely calculate rq->cpu_epoch - pcpu_sched->epoch inside fraction_mm_sched while holding the lock? +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ I'll test your patch after fixing the bug reported by sashiko.dev. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ thanks, Chenyu