From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2053.outbound.protection.outlook.com [40.107.247.53]) (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 A905F2459CF for ; Wed, 15 Jan 2025 13:18:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.247.53 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736947129; cv=fail; b=L59B6a3F6ZgSaBPHawJKiwitVR/oDPOBGaX+UFgD/PNXf75MHwlaHR1btnDa7UTnFrB2InXhbNOn2wrNoLOkDffHdT7sqhUIQVLnVmLglQSLA3Cr8qoVTFN8CJVxVQf6vipnVIcZwTYgM4RTruQAknxKZpXKWVlnjmqpWhgIa6M= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736947129; c=relaxed/simple; bh=Ut80vVRsg7xSDn2F+AH78amy/ZzGKJCLB/wW06ZoQIU=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=JIHzuMoKVb+HfLULree2m5mbPgCxhDriH6QrNSAfI9vUBe2kHD0Q2WIR358yioggdw24g49Y0ITGV5tkl5FYiar0pR2Q6f78yPKTE/oEnQmddiJhhWQ6bUdNOlLqnTkwmxXiQjDYaYBqZ2A5d7ii+new03Lop0NrYphmU9zpWh8= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=oIt4p5g6; arc=fail smtp.client-ip=40.107.247.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="oIt4p5g6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=l5iyPS16LGMVrLckJRU6zzu2iMMB8DmSSTDHKh9INrmlAOEhZjK+yAOXk0iSs4jgel+IKhYQH1DACV/kUfMFzk49b2rxLnFP/NB1AUkoZ9JKh+m5PG6koNWrvvwjXhRQ9zhC52OW7d86UacBJ3r77raJ/GeCpxtZDqYV/svZJXYQy+Uf/lx71j+VYBaW3vb8sHn/RhWyLLaby6t8XguMR8cOo+N7befql1r6Nzl+qO/e+0/lV0J+9pW7ijqQ0w9yvncUL4tYiux5omSUuPfhNvGuXKB76WyTfGVXdBy970UQqnn/Gv8cVaLTss7adNJUG9D1tEWECNCB6E3hxnag6g== 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=hbsbSKxktsFHsgxLEMmmGVL1oyKZywpMHCjA/P9Qa0M=; b=TqvMIvVnO39HOzu+pEp5R+J7cudJ2AHol+/g8zKWy/oklCjDIsAHN1bx3HjLuGhhgv/nexokVqGzlfWIT0YeR2Kw8Bt7u/1qwbcOK1pmE/Wnlc2zJJYau0FTbzosNV1r+OnZmQ0aDZtxEFaNAoFDk+N51ntdb6hPu54qIyp+q3cNNAk9R5lmPB6pJWAoXsEKyfSSETJ65z7inHIL0CtO+Q+AfddftVq6JxpX4orSFPI6C1hU7g5cQj8xxyExsIuh3yUtOnDfNKOC4Sd4NN7ZWEadm7lVVhi7BLzClDwzHO5ryzlv29dGZ/obYM6aox2TR0bUso6mnw+flqMcwMJIZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hbsbSKxktsFHsgxLEMmmGVL1oyKZywpMHCjA/P9Qa0M=; b=oIt4p5g6O5Z6kUDtuPAphLMV0FmtL2XnnhD70s3E0wF/I1xvR/9u34ejYoXY/ey/zqqYEsCM8r9HBVTz/a5rB6YSVmIZmkH/Hod2RlxO75uECfRfLvTWGMBylwJqZa1vInEzgyjZUjFp7SOSbjS3VEqUMGLeutVQ1oxN3AJIqVU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from PR3PR08MB5852.eurprd08.prod.outlook.com (2603:10a6:102:8e::21) by VI1PR08MB9957.eurprd08.prod.outlook.com (2603:10a6:800:1c2::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.13; Wed, 15 Jan 2025 13:18:35 +0000 Received: from PR3PR08MB5852.eurprd08.prod.outlook.com ([fe80::f44:d113:1c29:825d]) by PR3PR08MB5852.eurprd08.prod.outlook.com ([fe80::f44:d113:1c29:825d%4]) with mapi id 15.20.8356.010; Wed, 15 Jan 2025 13:18:35 +0000 Message-ID: <7c3275ac-d045-4bab-b9f4-2283acef1111@arm.com> Date: Wed, 15 Jan 2025 13:18:33 +0000 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] sched/core: Prioritize migrating eligible tasks in sched_balance_rq() Content-Language: en-US To: Hao Jia , mingo@redhat.com, peterz@infradead.org, mingo@kernel.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com Cc: linux-kernel@vger.kernel.org, Hao Jia References: <20241223091446.90208-1-jiahao.kernel@gmail.com> From: Luis Machado In-Reply-To: <20241223091446.90208-1-jiahao.kernel@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO2P265CA0344.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:d::20) To PR3PR08MB5852.eurprd08.prod.outlook.com (2603:10a6:102:8e::21) 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: PR3PR08MB5852:EE_|VI1PR08MB9957:EE_ X-MS-Office365-Filtering-Correlation-Id: 450e0ade-f8ab-45f0-ecc7-08dd35671df8 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RkM5Y3lDNk4vZ0REcWxNQzVTN2UxQ1J3cWVWWUJ6NGExalUrK0tSd0F6Vlg1?= =?utf-8?B?c2oyZVdWcTlWNFdoZVc2Wm5maUtOL1RVNUxMVWNVUTJtSDBQOVg1bHlXNElZ?= =?utf-8?B?OU91VVBVUmZVc0EyLzNFS3lWNTZYYlUycHRjU2RRY3NrTzUyalBoQysxWGlM?= =?utf-8?B?OTFaMUE1MHBTcmRsenB4YktVNXRBTzBvczNydHZoSjdzSVRGQTZ0L0pzSjYr?= =?utf-8?B?b1RSbEpEQWxvZW54Yjg0cEk2VytQSXltandKb0IwVEwvOGRVa1hteDRtTzNp?= =?utf-8?B?U1dBSlg1MHhDMENkbzZCSTcrR29QWldvS0Jvd1JIcW84YmVnWUhYQ3RnVkVU?= =?utf-8?B?d3FUbGRsbFhvRDA3UXZqTnJBZ2JkL2tCdENDV2NXb3BSWjdQQWRua0Y0ZU96?= =?utf-8?B?aEc2eVM2eGZValRkVXJMSHZ0TCtRRm5tMjMwZ2djZG9LTXhDWWEzODUrTHFL?= =?utf-8?B?WGdVemJsdi8yODVIakh5UmFnRmd1Zm03N2VLT1hoUzhCVHFya0QzUktOT3c1?= =?utf-8?B?WEt6QzhhNmo2YVJVUjZ0d3c0dEo5M1F0U0NZMk5Nc2pxR1M4alFmSW1rb0RQ?= =?utf-8?B?VHd3amEvM3lNVTlQVkFiZ0hmSTdwcGZhekRweFJDR21mRDduTVNGSVpBUUgw?= =?utf-8?B?K3NpM3d3L3VuRk04QXpsSTBBbmhTQWVaQUh6a080VU8xMThUTUJWY3dBbXlO?= =?utf-8?B?TGZGUmRZZmRHZnpVTzQwdGRMZWhwQ0NmMHN5MTlUMGtjTy8wZUJJYzlIVWhZ?= =?utf-8?B?VnM0c0E5WUFQMS9ZS0s1dkdSbkJPbm1jbnc2dkZPWmRBVmFoV0ovaWZiNEwx?= =?utf-8?B?ZnFPTFNQN0w1eTZNMzNzMVcrRi81ZUlJU1VlZGh2L3h3S1ZpYUMwbWNONW5l?= =?utf-8?B?dFh5SGczTk5Ldlg4ekdjRXpnL0lBUXJtd0pUNm5TU2hFeXBVTEFGaHRzUkFr?= =?utf-8?B?MFlKcDhCU0tnRUpRL2VDemFJRGthL0hEaU51eHNkbElTeVRGSmtycWIvZUZw?= =?utf-8?B?SzJSS2JWZEZoOVdhcDRUeWd2QzZwQU03VEtFdDlSaTE5OVZSSDNTaDFIZytr?= =?utf-8?B?THAzTUJVNnpOMUZNdVdtK203OXk5TVlsT2tvNlJWRWdpYXduNTV6ZE5EYkxx?= =?utf-8?B?UVF2RGROK3ZJeVF0Z0pRUU5ITGtnb3U2QkxwQXRWTnJnMDlLTHUrSzg4QjdE?= =?utf-8?B?aitYOG5RQlBwcDJwK3lwZzJoQ1plSVA3aWszQXVLYVhjRDVVa2EzWitNOTBo?= =?utf-8?B?RWZiRHY4VWpRVU5kM0NUL1VFRWdXVTE4TWxKNVliOVdvdjdkNEp2SlVWQWNL?= =?utf-8?B?K3FFNlVMMk84UzJoRWJvOFV6bzBMSFh0bTBUa0EveDlQT0pUODRpYVFGVHhs?= =?utf-8?B?YjhGVW52Q2VQZ1FodUQ4K1owQmJlcFplbEpTM0RKbDNBcUQ5UmJwdG9oeFND?= =?utf-8?B?SWFaN04wQzVmK1prbEhDdXRBTmdBQUt2Q0x5M1V3UmhGY0gwOVF3NkNRaDN5?= =?utf-8?B?Rm0vZWt2aVc2YlZmYnZyKzZaUThMSXdnSGJQUzdHdWtWQXRsM1Z2T3JHOTJo?= =?utf-8?B?UTNqWCtlTURHdUZBNVVKU3VDZGpnZ2F3Wk9MMFdNQjhtMGo2SkdsK2pRUHps?= =?utf-8?B?cFFUOXVvcVRaaW1ueUFMdkVVTm5CSkNPODdWcHRTeTBOR296Zmx5Vk9tVURz?= =?utf-8?B?UmpVQ1laa1A0Vk5qOU9GalN3M1N3N2hNR3ZrcjdQNVh0NTJUbmc1QXdnTDNr?= =?utf-8?B?Ri9EQ2U5U3I2TmlwdGxWTTM2TThyeWg4MGtwU2JCTzlMcjkyaVl4NlJGTUJO?= =?utf-8?B?MzUwMm5JcERxVVlORE8yTHhPNkpSWVhRK3lyODBGR0dpSGVNWnphTDRQZU5Z?= =?utf-8?B?ZFJVYnRkTWJZRnBCNEZtZ0VwSmcxc1FieTEvd2UwS1RZVXk0WnBRZnJacHF2?= =?utf-8?Q?yEpn6KP4xFqc771Cc3wF3ErV+KYZxUsl?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5852.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?S1Y2bm1jZUNBeHVvV3BLTHFpMDRhVHcwd0lUL0dEcWNiYmY5MkZJeTI4RUtQ?= =?utf-8?B?WUNMSnVCT2RkSXpJRDkweFZrUEdGRDFkUlpSOUF3anE0Y2VpaDR5WHRqT3NY?= =?utf-8?B?d2x0VEY3TTVjREl1VjFLVjdFU0lWd3hhYVYydmRuK3Awck1ETWloMVZKZ05Y?= =?utf-8?B?aDN1d1V3ZUx3bWJra1QwYXI5UWJMY0pZbVdnMVNoalQ5MjJYQ2RxZW5uM2Rz?= =?utf-8?B?VWJTN1lEK0d2SDRrRDhtbUNxTHNtMFRXaDZzV29HaWFnRkdFOTJkeWFIYWov?= =?utf-8?B?bXY2VjRyTUUySm9TV0U3Zk5vK3VodHVGMHQ1SHVFY01SL3p0SW5NZEpIWnVJ?= =?utf-8?B?ejRITWpBL2FzMWIrd2dkbGVPamM4U3owWnVmTmFicjkrRGRyUFJPZUFJOFFj?= =?utf-8?B?cFBCNzdTb1NHVWlKSnYzUGZBdGhNTmtTMXlVaW0wbnRnWGE1bXkyTklCTXBP?= =?utf-8?B?bHRZb2xlR05mQll3NHpvWnY1Ni85d1VuSEIwUUlrSGh0VmU0Nms5Qi9GQ3BH?= =?utf-8?B?OTBtTTZRWFIwL29rd2tyVnlPcTU2WHI3b2dQRXpGTE5VRklDTmNmTTAwaDlH?= =?utf-8?B?V2gxd1lkcFVzQVp3RTNOaEc1ekVoMXdwQTZ5VEZ0MkZzcFVqTjY3dDNldDln?= =?utf-8?B?TnhCSXY4Wm9Cdm5LSWROSDNXU1U0L1JVdkxadTdTS2RhNWxhTmZaY05hWnY2?= =?utf-8?B?aUllUXZaellaeHA3cElGWDlDVktlaXU5Zy9uYlAvZ1R5UGh4K1V4cWg4Uy82?= =?utf-8?B?ZWFUM0JMczR2T1FBelluZW1nUXhJYXNYWEhHemsyd3ZXcTY5TC8xZUVLVU1a?= =?utf-8?B?RVB4eUY2aDJseWlGWEdBRGVpaGUrbU1hMElxT1k5LzBHcWd2SnVtZzFOcmFW?= =?utf-8?B?NmZMR1ZYZnMxOXJIMjhaT25LN2IvSXk1U3ZTVzFLMnI3b0I3MGF4UVppUFY1?= =?utf-8?B?aEluZXZ6R25hWHMrOXZmelAzRzlqUjFEN0t3RmFsbC9LVDNyckQzRVkwcUV5?= =?utf-8?B?L2xtaDhhanRuVFJBSUNIaHJGR3AwN1RZWjc5a0VxMEQwNnlyb1NUN3lxYW5Y?= =?utf-8?B?NjRWR3NxWHY3U3NlRXZodzhCckJsTkdTU3k3V1Vqd3U1WHRuelFnaVFUOUx1?= =?utf-8?B?a2lNS1E0cmxWNDhTM24vOC9hWUtOMitMR0F3VlAvZlRBMWZwMkFibFFkdlcv?= =?utf-8?B?SG16eGtCNXpSNkd2bTBCdTlPRE9zeEorRVF2SlpPUkNDWmlvNVNVN3Y1ZXFq?= =?utf-8?B?N1QzdExKaEZHeHhBZC9ianJhem1VZDdWays1TjNXRll4Q01JM25WNU1sTkE4?= =?utf-8?B?QzhYTkpvbU1JMUlWaEU3MUFBcjJaaFdOd3Q3WXZ6Q0hjWHBYUWVvb3haRHRN?= =?utf-8?B?Zzh6QU8zUmhaNEpoS25jc2ZySWtlUkRraWxGSzlVc0JyS2c5cGRSNkNOd3hi?= =?utf-8?B?T1Zqa0Y3WjdkckhVQlFGcWlVaGNqeENPODU1OUpxOEpLMHdKQzBGS1RVUk83?= =?utf-8?B?NkpvYWpVZmFaY2dRT0JmU3VWUHQ1a3BUTFpmaTVPcFNJUjl5UkhLWE5XeTl3?= =?utf-8?B?dWMvamtDbGJVSzZzMFQxc3RRdWZJR0N3dVk0TEYzVlYxUzlmd3o2TnVYWTNw?= =?utf-8?B?bFJXN21xdzFaa1V3R29TUWFzOHdRN0NoN1NsS2F5RG5aZUxjdzZWaTI2bS9R?= =?utf-8?B?NGloT3I3NEx1cFZaNURSaUxpcm5oeVd5cXlRck03Z3V0d25UNG5iYzg5VUhF?= =?utf-8?B?dkE0TjNnc0dUV0FadmJRU2pyKzB5aDF4ekRISGQ0Z2dmZUQzMkhiVjh3ckZj?= =?utf-8?B?b0kraXE4WVQxdlROOWlaU3liVTJKSklQdlk1cXl2ZWJxMEw5NkZrb1d0Vktw?= =?utf-8?B?NjV0TGl1UnFQa3dDRklTWFdsc2RvU1JwQ1RobSs1cXE0eGg2MlVzRzJndktR?= =?utf-8?B?bzBDdFgxQ1lqQVovVnVTb011QTg0NFJoTlhRcDkxL3NaZlV4L0ZtaktWREUw?= =?utf-8?B?a292d05CdTZPN1J2amhYNUpYTlMzREptRTFZcmJmQ2JHWUVIQTViNmw0VFZW?= =?utf-8?B?UHo1QWxwSnkrbjdjY3NEQmhKNGx4TW93WWErWkpGcVRzdURBeGFOeGxGWGJK?= =?utf-8?Q?o6Fn72eBoI+KHaLnmOlVtEitb?= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 450e0ade-f8ab-45f0-ecc7-08dd35671df8 X-MS-Exchange-CrossTenant-AuthSource: PR3PR08MB5852.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2025 13:18:35.8261 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JZ7kYvn8P1ou9LIv/oJ20hU2EEODO2BmkP6L8Pceq3ptWqm1B/AuGTKywNeDCK3TpDNZbsZca9su6cF52IPSCA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB9957 On 12/23/24 09:14, Hao Jia wrote: > From: Hao Jia > > When the PLACE_LAG scheduling feature is enabled and > dst_cfs_rq->nr_queued is greater than 1, if a task is > ineligible (lag < 0) on the source cpu runqueue, it will > also be ineligible when it is migrated to the destination > cpu runqueue. Because we will keep the original equivalent > lag of the task in place_entity(). So if the task was > ineligible before, it will still be ineligible after > migration. > > So in sched_balance_rq(), we prioritize migrating eligible > tasks, and we soft-limit ineligible tasks, allowing them > to migrate only when nr_balance_failed is non-zero to > avoid load-balancing trying very hard to balance the load. > > Below are some benchmark test results. From my test results, > this patch shows a slight improvement on hackbench. > > Benchmark > ========= > > All of the benchmarks are done inside a normal cpu cgroup in a > clean environment with cpu turbo disabled, and test machine is: > > Single NUMA machine model is 13th Gen Intel(R) Core(TM) > i7-13700, 12 Core/24 HT. > > Based on master b86545e02e8c. > > Results > ======= > > hackbench-process-pipes > vanilla patched > Amean 1 0.5837 ( 0.00%) 0.5733 ( 1.77%) > Amean 4 1.4423 ( 0.00%) 1.4503 ( -0.55%) > Amean 7 2.5147 ( 0.00%) 2.4773 ( 1.48%) > Amean 12 3.9347 ( 0.00%) 3.8880 ( 1.19%) > Amean 21 5.3943 ( 0.00%) 5.3873 ( 0.13%) > Amean 30 6.7840 ( 0.00%) 6.6660 ( 1.74%) > Amean 48 9.8313 ( 0.00%) 9.6100 ( 2.25%) > Amean 79 15.4403 ( 0.00%) 14.9580 ( 3.12%) > Amean 96 18.4970 ( 0.00%) 17.9533 ( 2.94%) > > hackbench-process-sockets > vanilla patched > Amean 1 0.6297 ( 0.00%) 0.6223 ( 1.16%) > Amean 4 2.1517 ( 0.00%) 2.0887 ( 2.93%) > Amean 7 3.6377 ( 0.00%) 3.5670 ( 1.94%) > Amean 12 6.1277 ( 0.00%) 5.9290 ( 3.24%) > Amean 21 10.0380 ( 0.00%) 9.7623 ( 2.75%) > Amean 30 14.1517 ( 0.00%) 13.7513 ( 2.83%) > Amean 48 24.7253 ( 0.00%) 24.2287 ( 2.01%) > Amean 79 43.9523 ( 0.00%) 43.2330 ( 1.64%) > Amean 96 54.5310 ( 0.00%) 53.7650 ( 1.40%) > > tbench4 Throughput > vanilla patched > Hmean 1 255.97 ( 0.00%) 275.01 ( 7.44%) > Hmean 2 511.60 ( 0.00%) 544.27 ( 6.39%) > Hmean 4 996.70 ( 0.00%) 1006.57 ( 0.99%) > Hmean 8 1646.46 ( 0.00%) 1649.15 ( 0.16%) > Hmean 16 2259.42 ( 0.00%) 2274.35 ( 0.66%) > Hmean 32 4725.48 ( 0.00%) 4735.57 ( 0.21%) > Hmean 64 4411.47 ( 0.00%) 4400.05 ( -0.26%) > Hmean 96 4284.31 ( 0.00%) 4267.39 ( -0.39%) > > Signed-off-by: Hao Jia > Suggested-by: Peter Zijlstra (Intel) > --- > Previous discussion link: https://lore.kernel.org/all/20241128084858.25220-1-jiahao.kernel@gmail.com > Link to v1: https://lore.kernel.org/all/20241218080203.80556-1-jiahao.kernel@gmail.com > > v1 to v2: > - Modify dst_cfs_rq->nr_running to dst_cfs_rq->nr_queued to > resolve conflicts with commit 736c55a02c47 ("sched/fair: > Rename cfs_rq.nr_running into nr_queued"). > > kernel/sched/fair.c | 34 ++++++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 5599b0c1ba9b..c884bf631e66 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -9396,6 +9396,30 @@ static inline int migrate_degrades_locality(struct task_struct *p, > } > #endif > > +/* > + * Check whether the task is ineligible on the destination cpu > + * > + * When the PLACE_LAG scheduling feature is enabled and > + * dst_cfs_rq->nr_queued is greater than 1, if the task > + * is ineligible, it will also be ineligible when > + * it is migrated to the destination cpu. > + */ > +static inline int task_is_ineligible_on_dst_cpu(struct task_struct *p, int dest_cpu) > +{ > + struct cfs_rq *dst_cfs_rq; > + > +#ifdef CONFIG_FAIR_GROUP_SCHED > + dst_cfs_rq = task_group(p)->cfs_rq[dest_cpu]; > +#else > + dst_cfs_rq = &cpu_rq(dest_cpu)->cfs; > +#endif > + if (sched_feat(PLACE_LAG) && dst_cfs_rq->nr_queued && > + !entity_eligible(task_cfs_rq(p), &p->se)) > + return 1; > + > + return 0; > +} > + > /* > * can_migrate_task - may task p from runqueue rq be migrated to this_cpu? > */ > @@ -9420,6 +9444,16 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) > if (throttled_lb_pair(task_group(p), env->src_cpu, env->dst_cpu)) > return 0; > > + /* > + * We want to prioritize the migration of eligible tasks. > + * For ineligible tasks we soft-limit them and only allow > + * them to migrate when nr_balance_failed is non-zero to > + * avoid load-balancing trying very hard to balance the load. > + */ > + if (!env->sd->nr_balance_failed && > + task_is_ineligible_on_dst_cpu(p, env->dst_cpu)) > + return 0; > + > /* Disregard percpu kthreads; they are where they need to be. */ > if (kthread_is_per_cpu(p)) > return 0; Just a general comment. If we throw tasks with custom slices into the mix, I wonder what kinds of impacts we would see from migrating eligible tasks with very short slice lengths (they may run earlier) or very long ones. We could've picked an inelegible task before, which wouldn't have an impact other than the overhead of the migration. But the patch might make it so we now pick an eligible one with a custom slice.