From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010031.outbound.protection.outlook.com [52.101.201.31]) (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 C353A19D8BC for ; Tue, 30 Dec 2025 06:46:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.31 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767077199; cv=fail; b=Mkd+6vaIZkE7YLd3U4/2KaClxT1cR2Mz+0nw80DVwVXZOk+AWAE3gZmcwCxG0+ltwj+gc5vdg78bkuMFXTc3OoKKYiCHcuoOtgrN+8HzVNViAGi3o04wiPPH3w0qc6s/R1VhOR4KmVMSuUMqgKRZFY5tSNhJOgox5gsep59v7ZQ= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767077199; c=relaxed/simple; bh=LqTcjRGXzsS6lajgTp4Dr5bJoimYo9dTbpZG8Y0zJGI=; h=Message-ID:Date:MIME-Version:Subject:To:CC:References:From: In-Reply-To:Content-Type; b=KdsJqiEl1QMwrYhg3R0ItR9OOQnmBhQuds4UkfmnUzT+uwniATHzVk04Irbaay8QNR+7YTkQ3pSwpPGUpOsm6Q2JjyP1kPfe93kzOljgy/4s8r0keiCs3mSbSZD9vW6ybfhPhG82H/+MmjSMLfJ0Fv+cS8TYsIbHeY+j13Fbr40= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=00yPAOUY; arc=fail smtp.client-ip=52.101.201.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="00yPAOUY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qSfwsBx5eYRyvO+mclVP+HWZSGM4Z2mLc07tpsZc6X0A3NBd6buNZwaBrbZAJBdKRyrBJYv94RDLkjuie5myZsGT54kbBrc0J986ELi5ry1lnpxfxzanx1cNnAPBegwWpoive+tflYLM1TjMsAlXgBRev0owoWmMKwV66NvxIESV19maXcWjBdzUSUCb37x2bnyyvLGpqUsaeLG/gFx9Dvd0c2cjAuPRWe1+7ET2YIl9lG2B3nzmxusIMJzZWiCOidvmsiUT9k21XQ/oFGwtnVdyBJxVpNwAxVNZIbxhmYSZIjfdNUam/qUe79k1R9tDfn2p9EyTb+P0GwkU4i9+sw== 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=w4mK4hKyEcOKTvKpxXjhed2aEalCMec4UwQ8m8k7kSE=; b=JaG2SEXQSwiCmOz+npq8uQGYAuDWJ2W5ItItxiF4m6MLnP3BHaaxgcjj1dtNtFN37/6BG5d1Tp71NS5wMlf2zHLa8UINm2WY+dkH1fqJkZLcxVWpIptxNaIKLVXWuTJ/ONP+Zz6edy/aIDsJ5PID7dntPyJWGeQIYjOzbH7fGudNFpMri2QZCeBhnJzXjUJUwYUwKxq/NhwANzhdFZmpkfEFjdMwJtAwHvxPC5aZLNxpRidq6HJCCDRvLc0o1chT0BcyT1Uxe/X0QbK/0GhZLD3DWBBPugyD/bO/0FGzRJNggxUtD1ECpFUA2MTrm1LPwZAZ7AtA2RzMwZkZgI5w+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w4mK4hKyEcOKTvKpxXjhed2aEalCMec4UwQ8m8k7kSE=; b=00yPAOUYy4w+6ZZ9QV8foUThiDHbkqX5epig4dEWlRKXiWy/yvpqw4paLGZBVwv74zeudMF85OXVa2g46unn+URA+x18mpDt+wBZdX521UYmQRvWAwcpvNF+C1/hFTlf3XvRlssecBldxPvtGxDArzjIEZ2Awatrv5SJ1yGg9dE= Received: from SJ0PR13CA0155.namprd13.prod.outlook.com (2603:10b6:a03:2c7::10) by IA1PR12MB6627.namprd12.prod.outlook.com (2603:10b6:208:3a1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.11; Tue, 30 Dec 2025 06:46:32 +0000 Received: from CO1PEPF000044F2.namprd05.prod.outlook.com (2603:10b6:a03:2c7:cafe::1a) by SJ0PR13CA0155.outlook.office365.com (2603:10b6:a03:2c7::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Tue, 30 Dec 2025 06:46:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by CO1PEPF000044F2.mail.protection.outlook.com (10.167.241.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Tue, 30 Dec 2025 06:46:31 +0000 Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 30 Dec 2025 00:46:30 -0600 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 29 Dec 2025 22:46:30 -0800 Received: from [10.136.45.77] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Mon, 29 Dec 2025 22:46:24 -0800 Message-ID: <5b57c6e4-eeeb-4438-8b06-82afe4b4ad65@amd.com> Date: Tue, 30 Dec 2025 12:16:23 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v24 11/11] sched: Migrate whole chain in proxy_migrate_task() To: John Stultz , LKML CC: Joel Fernandes , Qais Yousef , Ingo Molnar , Peter Zijlstra , "Juri Lelli" , Vincent Guittot , Dietmar Eggemann , Valentin Schneider , Steven Rostedt , Ben Segall , Zimuzo Ezeozue , Mel Gorman , Will Deacon , Waiman Long , Boqun Feng , "Paul E. McKenney" , Metin Kaya , Xuewen Yan , Thomas Gleixner , "Daniel Lezcano" , Suleiman Souhlal , kuyo chang , hupu , References: <20251124223111.3616950-1-jstultz@google.com> <20251124223111.3616950-12-jstultz@google.com> Content-Language: en-US From: K Prateek Nayak In-Reply-To: <20251124223111.3616950-12-jstultz@google.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044F2:EE_|IA1PR12MB6627:EE_ X-MS-Office365-Filtering-Correlation-Id: 5caea572-e89c-4447-f2aa-08de476f2a9c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RzZ6WlVWczlzWStJN0VTdXh2c1prWUtuRTNaOWdzamYvL0xDWDBzOCtxZnZk?= =?utf-8?B?RHYrY0orT1p0eWxtRmxldDhzRG9zc240VExtRWFhUHdYQWIxYjdPWCtNbXh5?= =?utf-8?B?bjNPUy9GZUpORG5ZaUthZ3R2MnVZQVJwY3lOYnNMSE5zTmlweVluT1NHUWU0?= =?utf-8?B?Y2lsOVRoZjRNbFlCYzRJTXdpMzBoSkxqSVh6ZkZiaDBUMGwxS3lTVFhCejJo?= =?utf-8?B?a3dkOXFqd2ZoYjRqaEFWS3ZxUGZ3UDVDalRJWnVqU0pDSnZMcTlsZnpzZmtz?= =?utf-8?B?UFQrTExETWFJdFFHdGdnT3pVTjlOb2NyOHQwOHI2bzg0bEVRWDI3WnJ2RVhU?= =?utf-8?B?YTdaMVgxL1FwbDhhTTlyTFl6cThCYjFGdzdlZUxMUE85REtEUmlLUmNyRVI4?= =?utf-8?B?c1BpbUVwV1E5RGFacDBoSXF4Sk85WFZRVmlqS0R6OGpaSE8yRm5qd2FMVXEy?= =?utf-8?B?YWJTWXpBRndqRG5FU0lNcnBPTm40NDhxekJuL3RrbDV3blUvM3FJSVJPalZ6?= =?utf-8?B?TGZkeW13YUJ0ck9DRWlnRjlOOFpNS0t2b0NMa09SRkhocGRBdlB2VzBoKzhw?= =?utf-8?B?WVp6TjdYSElnUjAyRmhLSW9idnpXdUNISFhUL2JEKzNNR1N3eEg3RFpDRUhn?= =?utf-8?B?dVBjN3RIb2VKQXJVU1hBWXRRdmEycUM3d2ZaclV6SjhxdkJXdDY1ZzVFNXZn?= =?utf-8?B?REhIV3pNMmNhcU5DZnA0R2x6SWUvL2lOeVFIVG1MQWYwYlZFckc1dHdSeFVp?= =?utf-8?B?WEFaRHFZc1pNS0RsbVZYdTkwc3cxSHhvNEZDVHp0c3l1UURIN1JIRHZWMWQ2?= =?utf-8?B?VGhnVnFpYnlqNzdnSUVGTmlsZHNkazFUdDBvbG1ta0p5OXU1Y3VCUCtqS1F2?= =?utf-8?B?bms1MkZEaVFVYjVRS0RSUCt6NXZkNXpCVW0wMzE5alRta3AzOFpsczY4VVlz?= =?utf-8?B?Ujlic3oxNEs1eUo5cUVKblBycFE3Y1VkVVNsNnlna095MjJ1VHVDekZtVC9K?= =?utf-8?B?TDNrSFdULzlZdDVlVmFraVZINUlnK1JvMTIvRXVxZU5ldHdtamtBYlVFY2pO?= =?utf-8?B?YlR0TFNiZHJzZmtLWlMvTjJkWFNRckFkSlFuekNLa0ZaY1daNmdVWHBSbHlW?= =?utf-8?B?S0ZYWVhUWDV6cTlzTS8wV0xJWUw2Z05OR3pZMHhmUFJ1c1RkM0QvREYybnQv?= =?utf-8?B?aDI5Z3dCZUtWNXlQeXlUVXkzbjdjVStaK0tnaEZqVldBcHZwcUViUGtNWEhT?= =?utf-8?B?bU5UejM4UjBLdWFNWjRjdDBqR1BsODNEbVpzRFhaQzVUVGo3L3JLeDFmRTJO?= =?utf-8?B?c0E2RW90cG94MnhoT29yenpOZENPcHpiNDJFU0QrWTljYkFBTmQ0SzNRMW1P?= =?utf-8?B?b2d3dk9XUWJzcktFekFCa0M2VkM3NjkyTVA2dHNjaENXek1sVmZ6b3ZHNnE0?= =?utf-8?B?V0hTZjlLTVU3RDd6TzBVSnRwcEl3RmY4ZzNHaGJKcmtSak0rS3JpMFVBUXNT?= =?utf-8?B?eW5MNTNtOWJremF0LytoTThsY1dFMnBQK0tPekpOalVoRUc4NEFnSy95ZUFj?= =?utf-8?B?TU1pRDlrWTRNWlhOU3BBMmNBM3dqMUxCMnpwTHFsOW9Rb0l5RWNMOFBtMWpk?= =?utf-8?B?ZlM5cys1MmUxNGMwekNJbWFtR2wzaEdQYWY3QkhmazBCT1FSVmJOSmZqNTd5?= =?utf-8?B?ZUlxYUR0Y3FXMHlUWU9JanpITytZTGdhRGZ4YVkyd28rVHlMQzUwVWYrRms2?= =?utf-8?B?ZGFzU2ZpWGc1SW0wdVk3T2pEamdxM0NUQ0g0aW11THlkb3NOSFMvbkhUZ1h6?= =?utf-8?B?dGRuN0xINWplbUxuMnlOaHhzSkNvU2tjaE04TDdxOHA5a09RcWdsQnN2aWlK?= =?utf-8?B?YWJ3SVV4NWlPa3Q2TVE5VDdpbFY4TlNRMjRKS2VMSVhBWmhzWkpkT29KNnVx?= =?utf-8?B?elROaG4rL0VlcGZjRWRJOFFGdEpxWVkvNUcrdllyOGlrb3M1ZmsvamY4L2pR?= =?utf-8?B?dEQweXZ1d3A2OHk1R2dIUG5XVDFKYmh1MldDcStsLzhQN3dQQko1MUN5V3Vk?= =?utf-8?B?QjNzSkRBYVlYWFRFNndoTmt4V2FXbGcvZTRROEE3akVkWkJPd1VoTmtYWWEr?= =?utf-8?Q?iKwM=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Dec 2025 06:46:31.4324 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5caea572-e89c-4447-f2aa-08de476f2a9c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044F2.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6627 Hello John, On 11/25/2025 4:01 AM, John Stultz wrote: > diff --git a/include/linux/sched.h b/include/linux/sched.h > index 178ed37850470..775cc06f756d0 100644 > --- a/include/linux/sched.h > +++ b/include/linux/sched.h > @@ -1243,6 +1243,9 @@ struct task_struct { > struct mutex *blocked_on; /* lock we're blocked on */ > struct task_struct *blocked_donor; /* task that is boosting this task */ > raw_spinlock_t blocked_lock; > +#ifdef CONFIG_SCHED_PROXY_EXEC > + struct list_head migration_node; We can just reuse the "p->se.group_node" here instead of adding the "migration_node" - it is only used to move tasks during load balancing, and once we deactivate a task, it can no longer be picked for load balancing so we should be safe (serialized by the rq_lock). > +#endif > > #ifdef CONFIG_DETECT_HUNG_TASK_BLOCKER > /* > diff --git a/init/init_task.c b/init/init_task.c > index 34853a511b4d8..78fb7cb83fa5d 100644 > --- a/init/init_task.c > +++ b/init/init_task.c > @@ -178,6 +178,9 @@ struct task_struct init_task __aligned(L1_CACHE_BYTES) = { > &init_task.alloc_lock), > #endif > .blocked_donor = NULL, > +#ifdef CONFIG_SCHED_PROXY_EXEC > + .migration_node = LIST_HEAD_INIT(init_task.migration_node), > +#endif > #ifdef CONFIG_RT_MUTEXES > .pi_waiters = RB_ROOT_CACHED, > .pi_top_task = NULL, > diff --git a/kernel/fork.c b/kernel/fork.c > index 0a9a17e25b85d..a7561480e879e 100644 > --- a/kernel/fork.c > +++ b/kernel/fork.c > @@ -2137,6 +2137,9 @@ __latent_entropy struct task_struct *copy_process( > > p->blocked_on = NULL; /* not blocked yet */ > p->blocked_donor = NULL; /* nobody is boosting p yet */ > +#ifdef CONFIG_SCHED_PROXY_EXEC > + INIT_LIST_HEAD(&p->migration_node); > +#endif > > #ifdef CONFIG_BCACHE > p->sequential_io = 0; > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 7f42ec01192dc..0c50d154050a3 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -6723,6 +6723,7 @@ static void proxy_migrate_task(struct rq *rq, struct rq_flags *rf, > struct task_struct *p, int target_cpu) > { > struct rq *target_rq = cpu_rq(target_cpu); > + LIST_HEAD(migrate_list); > > lockdep_assert_rq_held(rq); > > @@ -6739,11 +6740,16 @@ static void proxy_migrate_task(struct rq *rq, struct rq_flags *rf, > */ > proxy_resched_idle(rq); > > - WARN_ON(p == rq->curr); > - > - deactivate_task(rq, p, DEQUEUE_NOCLOCK); > - proxy_set_task_cpu(p, target_cpu); > - > + for (; p; p = p->blocked_donor) { > + WARN_ON(p == rq->curr); > + deactivate_task(rq, p, DEQUEUE_NOCLOCK); > + proxy_set_task_cpu(p, target_cpu); > + /* > + * We can abuse blocked_node to migrate the thing, > + * because @p was still on the rq. > + */ > + list_add(&p->migration_node, &migrate_list); > + } > /* > * We have to zap callbacks before unlocking the rq > * as another CPU may jump in and call sched_balance_rq > @@ -6755,8 +6761,12 @@ static void proxy_migrate_task(struct rq *rq, struct rq_flags *rf, > raw_spin_rq_unlock(rq); > > raw_spin_rq_lock(target_rq); > - activate_task(target_rq, p, 0); > - wakeup_preempt(target_rq, p, 0); > + while (!list_empty(&migrate_list)) { > + p = list_first_entry(&migrate_list, struct task_struct, migration_node); > + list_del_init(&p->migration_node); > + activate_task(target_rq, p, 0); > + wakeup_preempt(target_rq, p, 0); > + } > raw_spin_rq_unlock(target_rq); Here, we can extract the core logic of attach_tasks() into a helper and reuse is as: (Included stuff from the suggestion on Patch 6 + the above suggestion; build + boot tested with test-ww_mutex and sched-messaging) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 5a6ac4d13112..700fd08b2392 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6786,7 +6786,7 @@ static void proxy_migrate_task(struct rq *rq, struct rq_flags *rf, * We can abuse blocked_node to migrate the thing, * because @p was still on the rq. */ - list_add(&p->migration_node, &migrate_list); + list_add(&p->se.group_node, &migrate_list); } /* * Zap balance callbacks and drop the rq_lock @@ -6794,14 +6794,8 @@ static void proxy_migrate_task(struct rq *rq, struct rq_flags *rf, */ guard(proxy_drop_reacquire_rq_lock)(rq, rf); - raw_spin_rq_lock(target_rq); - while (!list_empty(&migrate_list)) { - p = list_first_entry(&migrate_list, struct task_struct, migration_node); - list_del_init(&p->migration_node); - activate_task(target_rq, p, 0); - wakeup_preempt(target_rq, p, 0); - } - raw_spin_rq_unlock(target_rq); + /* Move migrate_list to target_rq. */ + __attach_tasks(target_rq, &migrate_list); } static void proxy_force_return(struct rq *rq, struct rq_flags *rf, diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 7d2e92a55b16..f24ca09ded8a 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -9700,27 +9700,28 @@ static void attach_one_task(struct rq *rq, struct task_struct *p) rq_unlock(rq, &rf); } -/* - * attach_tasks() -- attaches all tasks detached by detach_tasks() to their - * new rq. - */ -static void attach_tasks(struct lb_env *env) +void __attach_tasks(struct rq *rq, struct list_head *tasks) { - struct list_head *tasks = &env->tasks; - struct task_struct *p; - struct rq_flags rf; - - rq_lock(env->dst_rq, &rf); - update_rq_clock(env->dst_rq); + guard(rq_lock)(rq); + update_rq_clock(rq); while (!list_empty(tasks)) { + struct task_struct *p; + p = list_first_entry(tasks, struct task_struct, se.group_node); list_del_init(&p->se.group_node); - attach_task(env->dst_rq, p); + attach_task(rq, p); } +} - rq_unlock(env->dst_rq, &rf); +/* + * attach_tasks() -- attaches all tasks detached by detach_tasks() to their + * new rq. + */ +static void attach_tasks(struct lb_env *env) +{ + __attach_tasks(env->dst_rq, &env->tasks); } #ifdef CONFIG_NO_HZ_COMMON diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 424c40bd46e2..43b9ee90c67f 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1368,6 +1368,8 @@ static inline void rq_set_donor(struct rq *rq, struct task_struct *t) } #endif +void __attach_tasks(struct rq *rq, struct list_head *tasks); + #ifdef CONFIG_SCHED_CORE static inline struct cpumask *sched_group_span(struct sched_group *sg); --- Thoughts? > > raw_spin_rq_lock(rq); -- Thanks and Regards, Prateek