From nobody Tue Sep 29 13:19:44 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012017.outbound.protection.outlook.com [52.101.53.17]) (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 55A69463B79 for ; Fri, 7 Aug 2026 08:22:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786090981; cv=fail; b=Wpvoiaihpd7VFBRRRcFDiJ5qXYeBIrBeEKq2WpQWdKOOZ9/WjoFNMgJPxshrS+NECzFlYD8uDfC9lDLCBMNbfdPCMpHxQXlfxNlJwh8sqOFd19ztxNa+7YwrJv936yS9H/SCXdI9pSvZiMD7Xlk1md3mY6CGLYJc3Xks+oNvTr4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786090981; c=relaxed/simple; bh=FdS8VXNGERczbjOZYBBYbgSEnikzc9HDvNX/YbT1VOg=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=mmcSi8UCkZTNnzCiojM1jiL8HId7lu5u7elHo1XGO1enwfpmanCPkJWUDPJND0X0SDxh8QQXT7eKOx7sUjqqenIWbkXI0yy5e0SBxDnhlWuU70aqL5qzfaD8kRFcSSmAXFatTdMAoFO9r3Nf8NH1uj/BdLUyyE7gbA98a7ml4aU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=j3mUP3kj; arc=fail smtp.client-ip=52.101.53.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="j3mUP3kj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RtnFSpbp/2LbFqyjnCjo63oawVjKYcnm7IFZIaPFF/5Zbdom6KU8e5Vgu+zi9Bv48G/3xETvLog/sO96R85jCJ+xqr0czFZ4SWK7HLHYsha3/KkB9uFrrGVKIQ7zM7KvXZJNlD9jccrHRnZOl0KToluO41LbsLC8bkTCJBmqxr3vZw+I8/g+GnfhXCtmAkvSKnFPS3Ou/xIZneH5eVeZw1Hk4pmmw8pBhfCcgGf+oYaDlpX9tEYDlz5U36mzriUTS7MGCRUgbGt2LMWH37NXc7V0UJdvsDeBLmX2x+3UW+REvwkpp9kDn6aVx7QP6N2haSgFOcAu0ntP6j0RwRJkMQ== 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=cL6YWNckfLPEUnr2mCcY1Kv7HcJOhzuL0YNNgaofH8w=; b=ji3aI+n1Ou0PpUaS0wRnUUxwvVvu+gSxiFF12eAemPBdxIlHBz1OVRObpuZZ469g35NE8YFWkcIDcqDqBLw08u4S3/NGVnwewohaWEoNC3xXT7iKsrdxvml54Di6xDE4AqA/shycJtNcb9AjrY0k8GxoBdMMQ6589CocRzfVfL7+cg0tGR7rL12DVGdepLtbGfBY9JNtTK/Xpqn91640yCcogcXR+SNYtPvFDmq8vNgdkuE06jbzX/6ZBJBr1bFbo++WyFZVdNpCM4rOq0XnL1zZdXQj3tmDTDx0KlGiBvLoqOaJLWwS9uJxxQUGANxrNBlHvkCEmHH0sNIoKLaaFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cL6YWNckfLPEUnr2mCcY1Kv7HcJOhzuL0YNNgaofH8w=; b=j3mUP3kjTMW48qWj4rWWQlYfNmm1hwunaC8hP/Cuj0BjmKFuqdKRprzGSPONn85nWLUfzLT4Fm/unJ090gMD0kRH1cqL8s+nbXJDvltjrBn9k/YWy5NLwHb0rP94+i7v+Q84gy7lz4o90k8E9UDyzDQB094EJ2GoZF873fN3pUuJTp4SwjHQJ9mzwRXojYFAibpWCzxcLZw6FYe79hHXctwAU0nd5S2moZ3jAfNdE936TpHmg9bEokPeBtIbfQS+ciGtXn9SoxAsyDQnnY6jZGEg4e7k+beTHnW3pNFGW0ReEgkWGzuPfY4ofUafNt2D5Pam3FqKNsrVa6IYG81nfA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM6PR12MB4827.namprd12.prod.outlook.com (2603:10b6:5:1d6::14) by BL3PR12MB6402.namprd12.prod.outlook.com (2603:10b6:208:3b2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.23; Fri, 7 Aug 2026 08:22:53 +0000 Received: from DM6PR12MB4827.namprd12.prod.outlook.com ([fe80::6261:3040:864b:159c]) by DM6PR12MB4827.namprd12.prod.outlook.com ([fe80::6261:3040:864b:159c%5]) with mapi id 15.21.0292.019; Fri, 7 Aug 2026 08:22:53 +0000 From: Andrea Righi To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot Cc: Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , linux-kernel@vger.kernel.org Subject: [PATCH] sched: Preserve reset-on-fork across concurrent sched_setparam() Date: Fri, 7 Aug 2026 10:22:36 +0200 Message-ID: <20260807082236.1076967-1-arighi@nvidia.com> X-Mailer: git-send-email 2.55.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MI3PEPF0000753F.ITAP293.PROD.OUTLOOK.COM (2603:10a6:298:1::4db) To DM6PR12MB4827.namprd12.prod.outlook.com (2603:10b6:5:1d6::14) 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: DM6PR12MB4827:EE_|BL3PR12MB6402:EE_ X-MS-Office365-Filtering-Correlation-Id: b81c1ca6-a9ce-4595-7a60-08def45d137d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|23010399003|18002099003|11063799006|56012099006|3023799007|10067099003; X-Microsoft-Antispam-Message-Info: qYuxmenJECj75JSIuAy1JAs0H1MhYqvNKCLgoFjXIXJ7bk/UGG8kmDLnw0ILQ9hUgr5TJ9CrqMp8OZqF7S/sHa3wtJK5jCjzNfxDwmYsAjwydlfoZuX1uABZChyyGyzyTgHrSt+DFad5500eBECvb9ttkYW9wFtnFHwbvLOQmrihMFtxgwPCnt6gL2ttIFOjfqDr1GB40G7WNFVCyOWUrIXBwVuhEWApGPZ2sxUmxMSlJUfge5FEqDUAQA6yhArlTBzOFp2zj/1iap7pT1peRbUlAvjxX1Y+Fd9CVORsTQ7Jvjnx2PY86WvBoyx4pX1qDAkqCnAbrio2+HgbLkFeDeh4sLPTcCY4lc2yEbXquSsp4L87IsLOPTh0NZSX0Z2V/ivD5z4HLIN6XXBCtpKS+IQb+fPPezrtdAdZOftNwxKblh2mtE5m7JEMAkMxgrRpOXIZxRABvj5dR/7eoNj8iYWXZToLO2NcAKHjY/SjjDze4L0L1eGqbjr9/CQkxMsao+Ch3dQj5cAhZ6yjxRo51CDLZiGqz8jnq/tTukPZF1Sd8jEEK47sEJuLC9ksRBzsvZuJtpe5fRelxVG1F1OOrjrDttmibcScJjN9ucd198tf9oIomGRN2rAxLZ/JGk548lfsxG3hqz0v7ocP3rOHyaC/y8yAOlCkxzcrKT5cGis= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB4827.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(23010399003)(18002099003)(11063799006)(56012099006)(3023799007)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1p0ayHWWA3JWN3OHxkmqnCvVZkgpZC1/uZGaMRBboqqRlOSPzDjhtNPT842y?= =?us-ascii?Q?V02bDsGx0g1xfNQJk/1V+3yfrS76MlyKzOWrPwZM2LA4Lj8ztqY9VJtfmHpX?= =?us-ascii?Q?/D36+TWv8gt9w3kUTQzEAmNLB4fSDcEdpVkRKSL5wXugdyMGNTKYBmagZgVe?= =?us-ascii?Q?cksgiIvYJ1l1fZU6B9ns+/gB9VJ9b/JYkSA1AF32ndtJUaHSIJK0AMVfGBPz?= =?us-ascii?Q?Nv55XarxQ3QN1q0sXPDPkNTL2mi6BYstW8xm/2GYBVr6UxvpsbmX3VfjSCIK?= =?us-ascii?Q?HGHRdJo4ndTRp6Fr7PB57ZvVeebnUdbVKwb/QqtAMeX/ImKb8fAPvTu0XGUZ?= =?us-ascii?Q?jQpYZht2iqTj7LqYRQY0UVzXvRBgY/2zeXyG+jmUzqSodKj3YW7kd6qE4Hh3?= =?us-ascii?Q?lFinlfsUJDdfiUSIBG3qynxMeLOV/AWsBKv+AidCVMqVnbi8Ue2bEhkwP/0/?= =?us-ascii?Q?OsvzcJ9PT/AC0CFC1HEn/uaWYFiDqY/ZeE1/HtNl7DawLsNDlG8JkgRrCQEE?= =?us-ascii?Q?O41Wqau4aF9oRty13gzfVxGvSkowy/Rqk6moRx6g8pzpv8kLRNUZ7Os0AkoR?= =?us-ascii?Q?adeTaGCOv0Xo2uQCSCYTsCOtSn4AHDJ16BYi1wRZgv/c1NXM9S0Iy67ObQiO?= =?us-ascii?Q?ITmHzJIeOTRTIrcGNbWv2swQXC26ZN7dUukqbmgVHjB7t2MjvA34QnOORhMe?= =?us-ascii?Q?oBz61ps1hGQ92IgeQfdMgDCdLLYion3t7+mfvQwe/iZTb+3BOZYbSh6O0gwZ?= =?us-ascii?Q?vZnon3tI6KRJ3NGF6ugQ6ADnW1l5DIrVZphmBisKkEaXGQLInrqsDd4UQO1y?= =?us-ascii?Q?MfnMIxQfc8FanGPeSpeqVnvtD3C2phDzRvye4sV8WysWQpBTuq52yARw6mx7?= =?us-ascii?Q?5atu+O5z+/vhizf7oQjgHUUmftTF0FW2K4a8M9mE+2TmK1H4GFWhUVYE0Bzy?= =?us-ascii?Q?aFDL9MgKy3ovdSXErRPOqDEcEzf1tev899IKyeLmDNhrgq96ZHIC/eMumxda?= =?us-ascii?Q?IZxebYQYIY3mEjsQLLkxD5C7O/BJDNTS06BHF/gsKmyIsCwfhQzXvHUj73/a?= =?us-ascii?Q?ejCiuKVZ4SSi/iR4S4Zy/rqJMPQesLW6Re/GMJHZbvjwGW3zykELw5wAJbiq?= =?us-ascii?Q?7Jf8+S6F9C2AdI52SMd5QtlDLJct3bDh1SeEKrcYDNZynS6yNanPSJicqbQ8?= =?us-ascii?Q?58gDF1DAbP0X19YiSoB+vL+KLSavyv+eP5MP/Lp2e7qHoWTZesT4m7EyAgVp?= =?us-ascii?Q?PkU0r10asCtIxW6Ui3lIqFuZ+JrHUmRnAR/j+00NILfu/nSN96LxcgKj+jeQ?= =?us-ascii?Q?RW8GBkpq8UDom9BPCk1ezG8qFUu1YDiCQ0JO4m2tEENTiTwpcW9kspmbrjAt?= =?us-ascii?Q?CO9Aj6xxvu9a8WBhjvvLS3SdC4D/q3m6rn55+nYcc451wjkLxAgeqBKmJpo7?= =?us-ascii?Q?Ku1/v/PiKb3RfEqUOk+ecyAvNuZ4T8Q1NaYSydEBWg4Ti9eo3Jd9K5s+c7UK?= =?us-ascii?Q?AatXgDBK3EajPdMppV0bXmKvmreNln3UfkbdGv6htE279snKWs7vuaoW5jeE?= =?us-ascii?Q?IbS5QOhwd2PmvC+ndudrk2Iy0WhC1gkbQ7ouc/d8NM0XiyQp8/C6j6Mwuy1z?= =?us-ascii?Q?ayAly3I8h+vZN5smPFQxV606ngwARGTeADgt0Yk6vvOlmAr86qDOiDuGr4Up?= =?us-ascii?Q?YybQfHy+NZdJ1decl1YQq1XPjaXYiWbn0OYu4ykI6pqtQtEMPnHX+R0S8mgv?= =?us-ascii?Q?AAQOkm/M4g=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b81c1ca6-a9ce-4595-7a60-08def45d137d X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4827.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2026 08:22:53.1686 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oQ9CCREez8RLrE0KdSsBnVo+xJZLhjK6WaEZwi8appXkG45cia7Bt3YToEHtJ7JLpnL6ejgsqelW7vSmImRtYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6402 Content-Type: text/plain; charset="utf-8" SCHED_RESET_ON_FORK prevents scheduling attributes from propagating to a new child. The request is stored in p->sched_reset_on_fork; at fork time, the scheduler uses it to reset inherited DL/RT policy, negative nice values, custom slices and utilization clamps, then clears the flag in the child. sched_setparam() uses SETPARAM_POLICY to update scheduler parameters while preserving both the current policy and the reset-on-fork setting. However, __sched_setscheduler() samples p->sched_reset_on_fork before acquiring the task's rq lock. A concurrent sched_setscheduler() can change the flag after that snapshot and the lagging sched_setparam() call can overwrite it with the stale value. Remember when the caller requested to keep the policy and refresh reset_on_fork after acquiring the rq lock. Both the early-exit and full update paths then preserve the most recent serialized setting. Fixes: ca94c442535a ("sched: Introduce SCHED_RESET_ON_FORK scheduling polic= y flag") Reported-by: K Prateek Nayak Link: https://lore.kernel.org/eb62f13e-f9d4-4153-93ff-c144526f9a93@amd.com Signed-off-by: Andrea Righi --- kernel/sched/syscalls.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c index 8fb8474d0a0ec..b149aeb2fd490 100644 --- a/kernel/sched/syscalls.c +++ b/kernel/sched/syscalls.c @@ -503,6 +503,7 @@ int __sched_setscheduler(struct task_struct *p, int queue_flags =3D DEQUEUE_SAVE | DEQUEUE_MOVE | DEQUEUE_NOCLOCK; struct rq *rq; bool cpuset_locked =3D false; + bool keep_policy =3D policy < 0; =20 /* The pi code expects interrupts enabled */ BUG_ON(pi && in_interrupt()); @@ -571,6 +572,10 @@ int __sched_setscheduler(struct task_struct *p, rq =3D task_rq_lock(p, &rf); update_rq_clock(rq); =20 + /* Preserve reset_on_fork changes made while the rq lock was not held. */ + if (keep_policy) + reset_on_fork =3D p->sched_reset_on_fork; + /* * Changing the policy of the stop threads its a very bad idea: */ --=20 2.55.0