From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012034.outbound.protection.outlook.com [52.101.53.34]) (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 251AD3B8948 for ; Wed, 26 Aug 2026 06:33:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.34 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787725989; cv=fail; b=NBoOmgNrahS+PPDi3ABY2qNcaRjqUQvug2uyjKoVzUtcp/OApwkgQ4vNdr/NoEEFSkDqBDW4UsR3ZIgWAInK3baaTXGhsAKSJ8cOHULiHOfvclf1CTWr4pBi+fTl5mq48BJjHR+r2BVfpGakn8giTaEKTvsYSKP5q/xBlfxBYLo= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787725989; c=relaxed/simple; bh=dfMtUCZgy9Ut3Q6GpU8ipnZzzN7Y9aSW0ErC4VDHMM8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nVyjfaurMes63MUng1MbRTtW7P599kaZqdUxBoH9COEUnwKR11H+91kQ1tTbrzx0yTJk+jOO4tyI6YpcXTbvA6cE0A0oV3KGBS6BbDh/5Y4WhRwlB2+ZPhIzzWa6AuZOEvVks+3Mt54zDR4V2vSvSM+WFNFW320PW3JWq17NYBk= 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=kMnMmKz2; arc=fail smtp.client-ip=52.101.53.34 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="kMnMmKz2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DawxolCXet1hpm5nsdWDvb8CZDz3dFikbYrC4RUZEg3EPO86YbeGJ9NNYBlYm/ME1xmi1BQF1NBuVabmX7ovypEP3qEKa2i0BwHyJ33AlH53vZJKhkI9YUX5HwyDOxKhG/bbstri1TSaBsTDVADJKLi7p00m3SpQwiGaopq0FH4Ta32c3J6yaEgIKMf+kUOBrX/hrkuCthCxymCIMly/3nSDXYj2/OuOeua47wMdxJuT/1+KZolBtn1pmC8/QLVEV/85wKnP1UGiW+tcowTjVP3Teq8mx2Ydl4n3ucT7EEDk5wCoQ66rnkf0heI4tzoc40f72mp/Bc2j5XfxTdsiQw== 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=6lPoVGGWxORbBW2i87mlfX3qeAtBiFKybHeIKxpiiYE=; b=fkbuQjJ0VdJroahNo1za4/7befK7p32nqu42d+dQO84iqo+SEfgi0c/HcOoGO/nTc1IAUyKMhzT1L+il6rCuYZa+M3ivK62JQpbRTdJYrQAyWsJ/HTge/cxRMc//LOrij2JaioGCCf59G3oymfEtFINHZbVBRc58hqwr/fRi07Sc3zowabw9W4sBHTbr0JalpH2JdCRzjKWn5a9DhI8TYNb7Zt+j8X+Kj6T+wd7Sw37jggaqa+aRFXn8hTKsWT3c4BVC8JCVfq7SVVgZNkNXCs2KzpaiXBBnSzZB/emoswQNzwpph11lWKALGe1/YhjYxzwMhLUnkA2HjguZW7+S+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip is 149.199.90.133) smtp.rcpttodomain=google.com smtp.mailfrom=amd.com; dmarc=fail (p=quarantine sp=quarantine pct=100) action=quarantine 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=6lPoVGGWxORbBW2i87mlfX3qeAtBiFKybHeIKxpiiYE=; b=kMnMmKz2X8GRPBjglsHwU73pe6OT4pRjJvAUxAFa+J8N8U0pTZlgOKeTLisB6hCeutAnbmANumDwWZF3zZcNafkpZYR+hZe/Y4nAoNV8fzyuACsDiIjqSGzP9QjqoMT0i2nF23gWuQWRZYk3+y65xlV7X3yfqdfA90cNbh3Tfj0= Received: from DS1PR05CA0026.namprd05.prod.outlook.com (2603:10b6:8:23f::8) by SAVPR12MB999121.namprd12.prod.outlook.com (2603:10b6:806:4e7::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.6; Wed, 26 Aug 2026 06:33:02 +0000 Received: from CY4PEPF0000E9D9.namprd05.prod.outlook.com (2603:10b6:8:23f:cafe::a4) by DS1PR05CA0026.outlook.office365.com (2603:10b6:8:23f::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.5 via Frontend Transport; Wed, 26 Aug 2026 06:33:02 +0000 X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is 149.199.90.133) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=fail action=quarantine header.from=amd.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning amd.com discourages use of 149.199.90.133 as permitted sender) Received: from satlexmb07.amd.com (149.199.90.133) by CY4PEPF0000E9D9.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.21.360.3 via Frontend Transport; Wed, 26 Aug 2026 06:33:02 +0000 Received: from BLRKPRNAYAK.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45; Wed, 26 Aug 2026 01:32:56 -0500 From: K Prateek Nayak To: John Stultz , Suleiman Souhlal , Ingo Molnar , Peter Zijlstra , "Juri Lelli" , Vincent Guittot , Will Deacon , Boqun Feng , Andrea Righi , CC: Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , Waiman Long , K Prateek Nayak Subject: [RFC PATCH 10/16] sched/core: Introduce p->is_linked to track if task is queued on sleeping owner Date: Wed, 26 Aug 2026 06:28:54 +0000 Message-ID: <20260826062901.2137-11-kprateek.nayak@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260826062901.2137-1-kprateek.nayak@amd.com> References: <20260826062901.2137-1-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D9:EE_|SAVPR12MB999121:EE_ X-MS-Office365-Filtering-Correlation-Id: b09b6e3d-78d6-471b-6a6b-08df033be0eb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026|7416014|23010399003|10067099003|56012099006|11063799006|3023799007|18002099003|22082099003|921020; X-Microsoft-Antispam-Message-Info: 7uhZeUk7G2omVtWepr1HQpy7K7NcKOrEpv0MufWnG2zsvjZIO9gNykTx42Sj7HjDQxykqAbqEdqilSb/FBMk56uP4qS5kqW4W2hyn10wi/bfBLPXy4Nxefoc/Ozc8TD6t4NciJ3nltUWXiSeRFDk16uRkpXwJVEj/VbWwG0EmmfIwJLs/cpnGo1LkCdOQ63BdnJHqNUOtpdmyFnyEdzFt+Enc9UqRjhca4hR6ucaZRiWr8G52VFh2ZxSKzKkD8BdJn2kWxgN9f69oAUq+Q12GzFQin05tuDwBlFfMHC4+BDphcwTwwmPDB0DsqiXbW+he/i0GY2bzTBMsaQgB+cpOekMmv5Hnh/1dNdzR6WN5pRyhpUkb0s27u5CjQXlD2S6Tbh94feHWsIQSbW4QV1vGIJb/rN6KxgjRzQSRWF+C8HDXUq5qFY4OAMI7L4bDWppwLkiBuUyLVTSdNwD6PnMaVjiN5vsvQeBERoepYnEOHhgm/vr19oxOHp/SbAFF3+14xS+Rloa0pSDCjbG58tE0lSe7fNTZyKu0iSVzcZpAqEZv6e2lzo2hplZPcQ545M6IJ5OoKBB0ysjsjTDUedwEkL/uXDWaJ5+nrMGx4XC6wrggUiOXuZ/tYtg5nqMhIVSdyAyGc7eZZS57zZTgBGUvdlgek1nY6exqVdMeLdxorFuIUbqBJe95Q5Z3z6lCqPLL4Ov3ZseSAmi21R1zo+5/E3v5o9E/HrRPRoczeePZ68Uv+Uo1SYn2tpgvTS2//+O X-Forefront-Antispam-Report: CIP:149.199.90.133;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:unknown-90-133.xilinx.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(7416014)(23010399003)(10067099003)(56012099006)(11063799006)(3023799007)(18002099003)(22082099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: i2wXGfRKnj/2gpGZ6vUq3A/UiO0/wenb+nl0TWHu7ZNEicO52V5qYI18xTlfjjuyDJ07cBRbFF+L8JKEWpPr7Bu0rEUK9Voier7SA/8nKgtLzUHKfUSFwYxby5/ovybvPmhqgwBS2TSg5/t4MZC5ROZNUKMdBlE49Tq7Pal7xYWjdpOSlhpoC6ehegtvZAcsryd8HuNPiQUItlwmPyAiE6Yfr1QxK0o1660f9HQ2rI0H8C63DBoB8dAjz3YQSyNHOwVzGYMgWFwQJl0Fd6zWson/X3ek78pbvcc7LWS3iooxVDUmMz4B3EwbzMP9e2zvfNrYYO//mShdXROhWBdKrCVsplZkl9PSUrYV/uPkBck94mKAFF2cC/fD1M+b4Aa6pdyU7WxNsXnMMaiX1KSXx9ARav5YIXYH2dZ4v9hCoM/SWcM1vXevbp9hMCsUhhTO X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2026 06:33:02.0475 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b09b6e3d-78d6-471b-6a6b-08df033be0eb X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[149.199.90.133];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D9.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SAVPR12MB999121 Add a new p->is_linked state that indicates if the task, currently acting as a blocked donor, is queued on a sleeping owner. This will be used in the subsequent patches to influence ttwu path in addition to ->on_rq state for linked proxy donors to consolidate their removal from owner's blocked_head in a single location. Clearing of p->is_linked will be added in subsequent patches when ttwu and activate_blocked_task() paths are plugged to work with the new scheme. Signed-off-by: K Prateek Nayak --- include/linux/sched.h | 2 +- kernel/sched/core.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index 2360fdb1ce3f..ec65abf090a4 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -854,8 +854,8 @@ struct task_struct { u8 on_cpu; u8 on_rq; + u8 is_linked; u8 is_blocked; - u8 __pad; struct __call_single_node wake_entry; unsigned int wakee_flips; diff --git a/kernel/sched/core.c b/kernel/sched/core.c index b5cc5612a12c..d3cdfcb400d1 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -630,6 +630,18 @@ int task_llc(const struct task_struct *p) * if the task is blocked. Traditionally this would mirror p->on_rq, however * due things like DELAY_DEQUEUE and PROXY_EXEC, this can diverge. * + * p->is_linked <- { 0, 1 }: + * + * is set by proxy_enqueue_on_onwer() and cleared by either + * proxy_needs_return() or proxy_dequeue_from_owner() and tracks if task is + * queued on a sleeping owner's blocked_head. Although this could have been + * a p->on_rq state, it really represents the state of task when it is off + * the rq and is tracked separately for convenience. + * + * is_linked is always modified under __task_rq_lock() or when + * task_on_rq_migrating() during chain-wakeup where concurrent + * __task_rq_lock() is stalled for the task. + * * task_cpu(p): is changed by set_task_cpu(), the rules are: * * - Don't call set_task_cpu() on a blocked task: @@ -2235,6 +2247,7 @@ static void __proxy_dequeue_from_owner(struct task_struct *p) { list_del_init(&p->blocked_node); WRITE_ONCE(p->sleeping_owner, NULL); + WRITE_ONCE(p->is_linked, 0); } #endif /* CONFIG_SCHED_PROXY_EXEC */ @@ -4307,6 +4320,7 @@ int try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) */ WARN_ON_ONCE(p->se.sched_delayed); WARN_ON_ONCE(p->is_blocked); + WARN_ON_ONCE(p->is_linked); /* If p is current, we know we can run here, so clear blocked_on */ clear_task_blocked_on(p, NULL); if (!ttwu_state_match(p, state, &success)) @@ -4611,6 +4625,7 @@ static void __sched_fork(u64 clone_flags, struct task_struct *p) /* A delayed task cannot be in clone(). */ WARN_ON_ONCE(p->se.sched_delayed); WARN_ON_ONCE(p->is_blocked); + WARN_ON_ONCE(p->is_linked); #ifdef CONFIG_FAIR_GROUP_SCHED p->se.cfs_rq = NULL; @@ -6909,6 +6924,7 @@ static void proxy_enqueue_on_owner(struct rq *rq, struct task_struct *owner, WRITE_ONCE(p->sleeping_owner, owner); list_add(&p->blocked_node, &owner->blocked_head); + WRITE_ONCE(p->is_linked, 1); proxy_resched_idle(rq); /* -- 2.34.1