From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) (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 B2A3B2264AA for ; Sat, 6 Dec 2025 02:11:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=198.175.65.10 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764987091; cv=fail; b=XjnBZJX7UJFxvPh+tmRTrG8vfaOd1UNrInUFfXh7Dpn41Xp+zFMUr+RvbN9+n4wMZdbl6iBHof5dpuTkcJuJ/7AFgHVr4xJe7iSzcNyeDS2UdnNfxWjWqpNJ/W+IoYr14a77HJYyifAPJPcpuHSNzEMDuvh66qySA1C1SwiFZsA= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764987091; c=relaxed/simple; bh=I7lBoEKBLns12npZKS3LKpX4crsHbVCLsLMXYOzSamA=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=EigJMNtrR5neQWmHd0+N1e+9+3OcjD0EHHo/1awHbKT1mVeEqogC57HcC8DMhjPTBFDRyAI+iTdOFQBnq2nCFA+Lk70EAp2CwLWSR0FFxrSAMO2AVARoqNyGDq2CkjunBdlJfV09sMxtygztmDpbMsyk9d1ert0VVRKsiPkpNuY= 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=NYNUHrPD; arc=fail smtp.client-ip=198.175.65.10 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="NYNUHrPD" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1764987089; x=1796523089; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=I7lBoEKBLns12npZKS3LKpX4crsHbVCLsLMXYOzSamA=; b=NYNUHrPDjb1SooYYjUE0kzfUynGH3j/Xq+HqnWDKDTKs08YKeN6tNvYf PzkCoZCUfLhE7yM+x3D7grDEsHHdtExT1mcJ4PF3Y67lpEqNAOdqEGhjM xqMfjgwsW3Cpn4hc5LD7lSql6y2lKUdtsFwCSdpDRsdaYys4itvSX3HHv TuxDLE/SqiasPMDrZBu4ygjkARg6OFtattJQp7fHlS6X8LOWc6O2XHFA3 zXvhyGNMM08Io2QLqPcjnMavJYHIFUGCcchogB4FtRoQ5mdkUp33E2DO3 0rmRVj0KrWtg0CJzxsXRfbUXY8+X8RxX1o3QOSvPLxlKUpDBvGwVMkrxR g==; X-CSE-ConnectionGUID: JLpMatAhShuXuat9elY7DA== X-CSE-MsgGUID: qkk+fvAiRLCPcYIUFTZyoA== X-IronPort-AV: E=McAfee;i="6800,10657,11633"; a="84429819" X-IronPort-AV: E=Sophos;i="6.20,253,1758610800"; d="scan'208";a="84429819" Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Dec 2025 18:11:28 -0800 X-CSE-ConnectionGUID: oGI6OFofSfabKfbbVPesKw== X-CSE-MsgGUID: bQ0eTtxARr+fvhx8FC+CMA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.20,253,1758610800"; d="scan'208";a="195071149" Received: from fmsmsx903.amr.corp.intel.com ([10.18.126.92]) by fmviesa007.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Dec 2025 18:11:21 -0800 Received: from FMSMSX901.amr.corp.intel.com (10.18.126.90) by fmsmsx903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Fri, 5 Dec 2025 18:11:20 -0800 Received: from fmsedg902.ED.cps.intel.com (10.1.192.144) by FMSMSX901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29 via Frontend Transport; Fri, 5 Dec 2025 18:11:20 -0800 Received: from CH5PR02CU005.outbound.protection.outlook.com (40.107.200.45) by edgegateway.intel.com (192.55.55.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Fri, 5 Dec 2025 18:11:20 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pG6OHl10W+aXLsZXECmLw7bLG77RN9JeGuU3QxheZuf3w1nfKe2/9vI6BjF7+Y0RzkdMsW39YvGNceC5BA2ixfQgu9K2yuGVFdrgdqLhTP0opK6Fo0QuWKiOaQk9tiFr9PFaaoppBVtyCuXkBBb/J24nNOrEUOyrvzQbNW/BndD597ERR+uaOB8DN8ZYg29CATK7kQGfDiBjgTdwA68NwEwz2NdJGJ7Yib0waev4pF5jEdqe6bKqc5/0jynwLBGcvwlgO5dQNMAXjtS6ya7BsHbl/0De/AmZ55kl5hmXQp/se0YAknWV2uFVjEMk/PTrH3vhd3IYXRUVLC+eRjeICQ== 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=inUJlgqTM7F9L993jxWYNiQnwnrr+CkgmjtiKzP3EOg=; b=HaouZ7fNnzguAwX9SUwsZM+k/B8hYnbVeEqWzOGEHRp3OS1QkYpdYL8WcxPFyzpIhL4zH7EE4MX5qiIgWfJcdz3Fu8orZ4gIkggx2Z5XUVFvp9xRwaqyIxkTZMsScfMQBPcWFsC7mCzer7GvfuphnTlg3WIM62bwTGz1FXexex6W+0LOvWbW4MGsqUrRSIBFFLAqlwDPEe4xVHVx6/yNpwclbtTb8SuSN4t8XEuQ/3P2FM5Ikkv3nQwmaLtYEPD/iv+U4YNtrd9jYLiL/Ny5+Brl0U+0A4CF/VWMxS06Yi49RCkMDK2tozbBeJDC9PL2+gn9ixumStQX5Ry4GLMeFg== 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 PH3PPFEC5C0F28D.namprd11.prod.outlook.com (2603:10b6:518:1::d5c) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.12; Sat, 6 Dec 2025 02:11:17 +0000 Received: from DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::4af6:d44e:b6b0:fdce]) by DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::4af6:d44e:b6b0:fdce%5]) with mapi id 15.20.9388.011; Sat, 6 Dec 2025 02:11:17 +0000 Message-ID: Date: Sat, 6 Dec 2025 10:11:07 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 5/6 v8] sched/fair: Enable idle core tracking for !SMT To: Christian Loehle CC: , , , Vincent Guittot , , , , , , , , , , , References: <20251202181242.1536213-1-vincent.guittot@linaro.org> <20251202181242.1536213-6-vincent.guittot@linaro.org> <1b3c6f73-c6aa-43e6-a992-6a91c13c59cd@arm.com> Content-Language: en-US From: "Chen, Yu C" In-Reply-To: <1b3c6f73-c6aa-43e6-a992-6a91c13c59cd@arm.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: TPYP295CA0045.TWNP295.PROD.OUTLOOK.COM (2603:1096:7d0:7::6) 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_|PH3PPFEC5C0F28D:EE_ X-MS-Office365-Filtering-Correlation-Id: bde346ea-f599-4706-a1a6-08de346cbd45 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SlZNMVp3Vk5KOGtzUTJlRHY1bXIrQXNFcUs5clREV1l0eTdDTkhuYk1keTFT?= =?utf-8?B?Q0U2cDBtUUdMTW1wTnlFa3dTa05HNHdOYnBWcmZMQnd3RVlHVlRHd2U3NUp5?= =?utf-8?B?QTkrdzJGeTd3ZHYxNDFKeGVma09venEvRTNYYW1MaDE0eDd4dnpLTnI1WmdM?= =?utf-8?B?Vm90MmVVczBBWUlxMDZrY0FJZDdXYk94QWhUcnFtZ3FqRzNudDFFY2EzQVVD?= =?utf-8?B?Vy9MSWNJckQwMDVLL000VFdSTWFPMmRKQkFySmVqYzlVR2lya1UzbEFIVnF2?= =?utf-8?B?bmk2OXE5YkJra3JCUTFnTlZZVjkreThKcS9UM2lyNC90dzc4SEdmVzk3ZEV0?= =?utf-8?B?SHJTcTA3Tk0zQWFWQXpqaDBsY2pxTDFKc1BzdmdDSUVSREZqd200TVFMRzNK?= =?utf-8?B?cXBjODhFZThEaFpyeDRhZnhrY1VoV0dKZ3Zrbno3Q0ZQdmNwNk01dGFSZmxF?= =?utf-8?B?RW9RTzdYRVpuRk1lN2NPeXptMWVOaXBTa2FiTWlUcVo2MW1peE9mNy91bG40?= =?utf-8?B?QndYdzV4cytOL0J5WVBPWTUvTGRsa3FqcGxpVnZlbEhuM0lGb0Y4TlFUNzRN?= =?utf-8?B?MUxPY3hmNHlrenptb0hZbTdxOTdFSVJpcnBqOGg0aHhEYUNCK2w4anpKWHNV?= =?utf-8?B?WjNMQ21jeTZsK01XZk1xYXFmd1F2REIxOWJQUGcrYTBXcTUyb0NRSThpMGcw?= =?utf-8?B?clVkc3VmTFVYMnRndVdHQjJIS21KQXFvT1BaNUhKSm5wcEVRcUpkQW1mbnk1?= =?utf-8?B?dUorV3J3aSs4alNSUXh1ckF0VUc1alRsV2RVeVBIM1BTYUluZzVraVY3UnZT?= =?utf-8?B?amI4Sy9Da0daOW1rVTQ2bVRBUjlaZERUTzkraUY2cncycFVlTVNyYUxnanN6?= =?utf-8?B?dEMzY25Wc0NxK05QZWhFcEREUGd4WXNJV3IrU0hXWWZEeDBobFlyYXREenBQ?= =?utf-8?B?OWp3R25LQ3ZZNzRJaEQreHcyL1lsejdpWUgwY1MwbnUrL2lHdTFDTEh1bXI2?= =?utf-8?B?YVhzeGZ0UmJQUDJKSlFNVW1jb3JvSnd0V2JPc01qZDl2M0dpN3VSMnJ0Wnpy?= =?utf-8?B?L0x4QkRVbk1QSGZXQjBpQkw3TW5FS2JBaWEyaVpOTFNiVE5TQS9WcE9Ud2JY?= =?utf-8?B?U0xSMlBDb0dSMnZZdHk5Q0RVQnBEWTZ1T1gwSm5TUk12ZytzcWN6alFobVhL?= =?utf-8?B?SElGclZxdy8vRTdOdStpa21qK1Rrc2kzcjFGVVNWV0xIR2JmTlJLNVpOQndp?= =?utf-8?B?MUNFK1Y5b3o1cEVETnduT21YeWNZb1pkQmlPM01nVS9ab0pudERycGtGMGEw?= =?utf-8?B?elU2aFdDZ0xicWQ2WnJZY0dQRGIwQVZEai9hczZodTEvOG51MDd0VlNvVkEv?= =?utf-8?B?TmNSdmlpRjlOQTVFaFRSd1J6SG0wamZsTnhRb2lyUEtNOUJ2U3E2U21ESFVq?= =?utf-8?B?VlA2TzNDMzBIb2ZJQlJpZG1LMkp6aUQxdEtFSEx0b1lxeFlYeHh1djNneTkw?= =?utf-8?B?Tk44SkpNWmFTc0FGdk5Fd0hzTHJJZExYTkt0TXlwY1ZpT3VqUWExVjM2RENh?= =?utf-8?B?V0NsL01ZM3VHeDk5U3A3Z0F2SDdtZWR0Qm9nWXl4M2RwZkg2Y0JGa05rUW5Y?= =?utf-8?B?STN1dHpUVnJ1RUpQUHVxSGRDd0x1RFNXQjlMTjk0THVVaUJVdTVXMkJaUk9C?= =?utf-8?B?emIvcHlyQnc5Z1ZaMDBtdWV4aG5US3JEYVBVcCsxWGNXQ0dDOGt6bHNLWTdW?= =?utf-8?B?Z2pJTHFjU1A3RE1md2VteW5yYkpjdGRJemdOZUNvMjJtcGJINTZHa1Y2RDVQ?= =?utf-8?B?SU1GdiszdVp5d3MwU1ZmaFhkTHdjUjlyNDNUTmtTV1JsOGlGL1h5bWNQbW0y?= =?utf-8?B?Mmd6MW1vTWxsbDMyVitHS0JtdnpxZXhYT3kyS0oxZ0FzbTI5eCtrZk1acHNx?= =?utf-8?Q?GpMiWH0X7LceFUXUPINOZ3BC3ZgxSqG7?= 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)(376014)(366016)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K2NtcDdmcDcvUFQ1RjVXdVJpc0lxeEJ4Z2Z4L1ZnQWduS1prNTRQaGFiR0V6?= =?utf-8?B?NVZPODliV25JSFBIeUdIYnc1aVN5SDcraTJYU0lRd1I3YXJjY1JEOFNxZjEx?= =?utf-8?B?SmU0NGVocjd6VmJmTUQvY3Y4a3Y3MHBWUVFVeDJianNpWUZldmZlS3p3alNx?= =?utf-8?B?d3ZhTi9KRGM1SFltNC9QSEgvWVM5SmZNSjlnaU9ZcDRONVVhemFzaVVtemlz?= =?utf-8?B?K0t4K2ZDdFk1UnZjd1BVcTEvTGRuU25iSk1LdytYbldFOTFPNW1ZOXh3bDF6?= =?utf-8?B?clhrTEY1WG5JdlNleDF4bFJOOUd1RzhaOTFBNVZTOUhsV1ViTzNaYXRNQy81?= =?utf-8?B?WEhsUXM0b3J5cWd5Uld2WllOQ2JIbjFNK2tmYlRUbGNXMDJCUFdranJXNTBx?= =?utf-8?B?ZEsrMHp0eWE5cjFEWmxQMUJwWjhsVFZaNi9QSnBwUjN3NHJ2dTNaQUNjVFEr?= =?utf-8?B?cTNUc1FTYWJkNjA2aHlqdjdoSkEweS8vRms5MjhNNGE4aGh3M3E3Z3kwMXJs?= =?utf-8?B?MWZtRzZxL1RpdlZXSkR5Q2Zic0dEMHRMdEI0YUZlcElHdVBVRFh0VDBhY3pV?= =?utf-8?B?MFpVcWd5UXl6V1pyc004akZoREJEWmd0azlXd0hKZFJ3dC9zSjg5cTVQQUxw?= =?utf-8?B?L21kNEYzZWZvMUtBWmZCODh4RnM4RkpYMFRCa1BFVE9hMzQ4eDBQZVFaNndq?= =?utf-8?B?ODI3WXR1OHVVc1ZrWU8raG0wdDJYUXhqWEVWQ0ptT0lIMnYyRXdWeXIrOGpo?= =?utf-8?B?UEJWNm9Zdm91OXRpZ3NVU1l2RDZQN09ZUWEzQ0xWV1BVSTZ3N3RJMlBCempT?= =?utf-8?B?S25NbWNEcjJmR0NoM2dtRHZaQzhQeHZyamt2WG1uMlBydmhaR2FjUnlibWx5?= =?utf-8?B?ZWRFY0RCR0VQL09vaVEyWXdDQUt4L0RSRWNlSW1lY0Y2Z3NzYU9MRHBoTFFj?= =?utf-8?B?QlBHWE5Ub1lpRTljVVE0NC9uVVF1VzdKVW1oeXIxYVlJUXAzdGQ2b3JCR1p5?= =?utf-8?B?YkJYUktIL2NYbjB5dU5nQnhFN0FNNE0wZ0xsS1IzdTk0d2JrUTMySWwraE5F?= =?utf-8?B?ejBuY0ZXV3loSkpBeVdPNlhDUnBROFlZVEVxUUxzVys5QnMyRGg1YTlySVF3?= =?utf-8?B?WjVLeG9OTHZ2bGcybCthakxKRE4ydkl1V3JPeEhrazYybjFURGVhRVYyK3pH?= =?utf-8?B?Z1V1K1lFbGw3ZENNWkZMTzBQTW9jaDFGMm9URWtCbEFMK3RJbnZOZ1hoSzgx?= =?utf-8?B?c3BjczQ4UlNpVUhYaGZlOXpLSWF2WXpWMXVpbjFnbHFUTmtnWWlRMjY5cFNU?= =?utf-8?B?WlBPMlk5Y3U5Qk5zd0RQSGE2cytMVWFuc0ticHhmNnJGWkFxYzZrRjFHVUIv?= =?utf-8?B?cFp6NUdnZGdvL3R1WG1JdDlka2FUdjRDeXphQzRQQTJnK29NVlpFV3JGZmxV?= =?utf-8?B?Rkh5amNjRFNoWDdoOENMbkhpT2g3YlVlMldranR6NmhrVnRJNVRUOExxRkJt?= =?utf-8?B?RFdMTGVaYisxdlR1Y3Q4N2QxTEpmUzVaSVhMVzVKK1VsczhuT2VSV1VTWEwx?= =?utf-8?B?MDdkbEVQWXVST2FHWERJR3Q4c0hGblVhUENTWGdYQmM2UnRMaXlmRnpuV0xa?= =?utf-8?B?bkhGdi9mcm9nTlIwcWUwbnJIYmNZSWhIYVhqWjRwVWJrRlFGelJleWZjYjR5?= =?utf-8?B?b3JvZkxxNTZDRlFvNDQ5Y2h0UFRKdUU2TkRCdjYxbnIySHh2K0RMRkpuOGN1?= =?utf-8?B?eXR1aDBlcVZPRnlLY1hMeUFvMHFpWjBTUGdWYndZYlBPcnFld1BuakpMRDdT?= =?utf-8?B?QVErVFVjUWFzU0hFcnI5L2lUZFRYQW1BVFBla1FUSHhJRjgrbzA1TVlaOHc2?= =?utf-8?B?ZFRwdFdHNkJMRU5qMWlrN0I3a0J3N2FWZVZMNy9rT29ZNDNFekZDdUVRY1lQ?= =?utf-8?B?cDE3RWtCSDdNeVI4Wmc3bVUvNmRJTUY1MXNkSVlMbUUzVUVJcm1oa2FSUDB1?= =?utf-8?B?eXZQR285OUliVVdKRUl4VVphN3hEMHJHa1loUGlzWjY5RnNrdGZLVUw5VkNB?= =?utf-8?B?bW9CUVpnaXU2UjlvdnZPcWNPak1sUkdJbXZsS3FXMHNUME1LYlBmVjE3aWcr?= =?utf-8?Q?ZGgvHPgChWDTFLCRbvqM5bfXL?= X-MS-Exchange-CrossTenant-Network-Message-Id: bde346ea-f599-4706-a1a6-08de346cbd45 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6020.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2025 02:11:17.3580 (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: 9iHZ+5mElwstTHz4p0pz6897Pe5zGN78xSuf13rWjxW5+0wrbVxjlg1A2+ftumuS+E6FGr+2B/HhnIfVCSabAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH3PPFEC5C0F28D X-OriginatorOrg: intel.com On 12/5/2025 11:52 PM, Christian Loehle wrote: > On 12/2/25 18:12, Vincent Guittot wrote: >> Enable has_idle_cores at llc level feature for !SMT system for which >> CPU equals core. >> >> We don't enable has_idle_core feature of select_idle_cpu to be >> conservative and don't parse all CPUs of LLC. >> >> At now, has_idle_cores can be cleared even if a CPU is idle because of >> SIS_UTIL but it looks reasonnable as the probablity to get an idle CPU is >> low anyway. >> >> Signed-off-by: Vincent Guittot >> --- >> kernel/sched/fair.c | 29 +++++++---------------------- >> kernel/sched/sched.h | 42 +++++++++++++++++++++++++++++------------- >> 2 files changed, 36 insertions(+), 35 deletions(-) >> >> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c >> index 252254168c92..0c0c675f39cf 100644 >> --- a/kernel/sched/fair.c >> +++ b/kernel/sched/fair.c >> @@ -7501,19 +7501,6 @@ static inline int __select_idle_cpu(int cpu, struct task_struct *p) >> return -1; >> } >> >> -#ifdef CONFIG_SCHED_SMT >> -DEFINE_STATIC_KEY_FALSE(sched_smt_present); >> -EXPORT_SYMBOL_GPL(sched_smt_present); >> - >> -static inline void set_idle_cores(int cpu, int val) >> -{ >> - struct sched_domain_shared *sds; >> - >> - sds = rcu_dereference(per_cpu(sd_llc_shared, cpu)); >> - if (sds) >> - WRITE_ONCE(sds->has_idle_cores, val); >> -} >> - >> static inline bool test_idle_cores(int cpu) >> { >> struct sched_domain_shared *sds; >> @@ -7525,6 +7512,10 @@ static inline bool test_idle_cores(int cpu) >> return false; >> } >> >> +#ifdef CONFIG_SCHED_SMT >> +DEFINE_STATIC_KEY_FALSE(sched_smt_present); >> +EXPORT_SYMBOL_GPL(sched_smt_present); >> + >> /* >> * Scans the local SMT mask to see if the entire core is idle, and records this >> * information in sd_llc_shared->has_idle_cores. >> @@ -7612,15 +7603,6 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t >> >> #else /* !CONFIG_SCHED_SMT: */ >> >> -static inline void set_idle_cores(int cpu, int val) >> -{ >> -} >> - >> -static inline bool test_idle_cores(int cpu) >> -{ >> - return false; >> -} >> - >> static inline int select_idle_core(struct task_struct *p, int core, struct cpumask *cpus, int *idle_cpu) >> { >> return __select_idle_cpu(core, p); >> @@ -7886,6 +7868,9 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target) >> if ((unsigned)i < nr_cpumask_bits) >> return i; >> > a >> + >> /* >> * For cluster machines which have lower sharing cache like L2 or >> * LLC Tag, we tend to find an idle CPU in the target's cluster >> diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h >> index 697bd654298a..b9e228333d5e 100644 >> --- a/kernel/sched/sched.h >> +++ b/kernel/sched/sched.h >> @@ -1591,19 +1591,6 @@ do { \ >> flags = _raw_spin_rq_lock_irqsave(rq); \ >> } while (0) >> >> -#ifdef CONFIG_SCHED_SMT >> -extern void __update_idle_core(struct rq *rq); >> - >> -static inline void update_idle_core(struct rq *rq) >> -{ >> - if (static_branch_unlikely(&sched_smt_present)) >> - __update_idle_core(rq); >> -} >> - >> -#else /* !CONFIG_SCHED_SMT: */ >> -static inline void update_idle_core(struct rq *rq) { } >> -#endif /* !CONFIG_SCHED_SMT */ >> - >> #ifdef CONFIG_FAIR_GROUP_SCHED >> >> static inline struct task_struct *task_of(struct sched_entity *se) >> @@ -2091,6 +2078,35 @@ static __always_inline bool sched_asym_cpucap_active(void) >> return static_branch_unlikely(&sched_asym_cpucapacity); >> } >> >> +static inline void set_idle_cores(int cpu, int val) >> +{ >> + struct sched_domain_shared *sds; >> + >> + sds = rcu_dereference(per_cpu(sd_llc_shared, cpu)); >> + if (sds) >> + WRITE_ONCE(sds->has_idle_cores, val); >> +} > > FWIW this triggers > [ 0.172174] ============================= > [ 0.172177] WARNING: suspicious RCU usage > [ 0.172179] 6.18.0-rc7-cix-build+ #215 Not tainted > [ 0.172184] Detected PIPT I-cache on CPU1 > [ 0.178161] ----------------------------- > [ 0.178163] kernel/sched/sched.h:2085 suspicious rcu_dereference_check() usage! > [ 0.178165] > other info that might help us debug this: > > [ 0.178177] CPU features: SANITY CHECK: Unexpected variation in SYS_ID_AA64MMFR1_EL1. Boot CPU: 0x1001111010312122, CPU1: 0x1001111011312122 > [ 0.182211] > rcu_scheduler_active = 1, debug_locks = 1 > [ 0.182213] 4 locks held by swapper/0/1: > [ 0.182224] CPU features: Unsupported CPU feature variation detected. > [ 0.186260] #0: ffff800082b2bf00 > [ 0.186277] GICv3: CPU1: found redistributor 0 region 0:0x000000000e090000 > [ 0.191101] (cpu_add_remove_lock){+.+.}-{4:4}, at: cpu_up+0x90/0x158 > [ 0.191115] GICv3: CPU1: using allocated LPI pending table @0x0000000100330000 > [ 0.195158] #1: ffff800082b2c0a0 (cpu_hotplug_lock > [ 0.195277] CPU1: Booted secondary processor 0x0000000000 [0x410fd801] > [ 0.199208] ){++++}-{0:0}, at: _cpu_up+0x58/0x268 > [ 0.199213] #2: ffff800082ebddd0 (sparse_irq_lock){+.+.}-{4:4}, at: irq_lock_sparse+0x20/0x2c > [ 0.293548] #3: ffff0001feec1c18 (&rq->__lock){-...}-{2:2}, at: __schedule+0x144/0x1058 > [ 0.301737] > stack backtrace: > [ 0.306136] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Tainted: G S 6.18.0-rc7-cix-build+ #215 PREEMPT > [ 0.306141] Tainted: [S]=CPU_OUT_OF_SPEC > [ 0.306144] Call trace: > [ 0.306145] show_stack+0x18/0x24 (C) > [ 0.306150] dump_stack_lvl+0x90/0xd0 > [ 0.306155] dump_stack+0x18/0x24 > [ 0.306159] lockdep_rcu_suspicious+0x168/0x238 > [ 0.306164] set_next_task_idle+0x144/0x148 > [ 0.306167] __schedule+0xc50/0x1058 > [ 0.306171] schedule+0x48/0x15c > [ 0.306173] schedule_timeout+0x90/0x128 > [ 0.306177] wait_for_completion_timeout+0x88/0x13c > [ 0.306180] __cpu_up+0x80/0x1e4 > [ 0.306186] bringup_cpu+0x48/0x2ac > [ 0.306189] cpuhp_invoke_callback+0x18c/0x358 > [ 0.306191] __cpuhp_invoke_callback_range+0xf4/0x130 > [ 0.306194] _cpu_up+0x150/0x268 > [ 0.306196] cpu_up+0xcc/0x158 > [ 0.306199] bringup_nonboot_cpus+0x84/0xcc > [ 0.306203] smp_init+0x30/0x8c > [ 0.306208] kernel_init_freeable+0x18c/0x504 > [ 0.306215] kernel_init+0x20/0x1d8 > [ 0.306218] ret_from_fork+0x10/0x20 > > > on my machine... > update_idle_core() might need to deal with rcu protection in the original code, maybe something like this would help: diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 9dfabaa314b1..4c9348075abf 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -2094,17 +2094,22 @@ extern void __update_idle_core(struct rq *rq); static inline void update_idle_core(struct rq *rq) { - if (static_branch_unlikely(&sched_smt_present)) + if (static_branch_unlikely(&sched_smt_present)) { __update_idle_core(rq); - else + } else { + rcu_read_lock(); set_idle_cores(cpu_of(rq), 1); + rcu_read_unlock(); + } } #else /* !CONFIG_SCHED_SMT: */ static inline void update_idle_core(struct rq *rq) { + rcu_read_lock(); set_idle_cores(cpu_of(rq), 1); + rcu_read_unlock(); } #endif /* !CONFIG_SCHED_SMT */