From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010003.outbound.protection.outlook.com [52.101.201.3]) (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 CB1253BB69E for ; Thu, 30 Jul 2026 07:29:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.3 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785396594; cv=fail; b=M5nEl1QkkCR7Uz1uOgunlierHfoEqARbGa5t+JOQCYeUf5vplbOaXrDManYZfyNkNDI4NPP1bFgU2tUqt1xttnXgl+xeuBzNvUo92fpdQp1yEyzlBAAnJLcOF0/0cCGEoEssUdQe2EWZRSLGJFtE4rviDySjHcO0THVjoSHjs5Y= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785396594; c=relaxed/simple; bh=m5yps83RLSOG7i7Si5QdY93zTfBYbEz9ptmaVSMlRTs=; h=Message-ID:Date:MIME-Version:Subject:To:CC:References:From: In-Reply-To:Content-Type; b=t/AfDIayebG2C9JJsS2QMPceX4m8TKi7enu6+KAvyAHUXBA6yO8Mt1S8mS2DEXnwRuDFaUzybCztMp8qepnG9zn7O9AIDLf8Zj24pkHmkKmfMR6nisjzIrbFRNEsnzP3jem40o4uCcTkqqF0fPRwsnPDXjZv9eW3PePK5HWKeQo= 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=0CeqJ5Y4; arc=fail smtp.client-ip=52.101.201.3 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="0CeqJ5Y4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZyfO22ZAwbFEso/GtP5HO9eRmWaBBGJgejmB/DUwZIm3T6W6wG69Y2TldtQHgpkTGRRTVdCd4IGMXmRnQSFjm6QqY+vww7g9jb+YCUIEbWobzfo6OC1L6IEYuBw/mmhxfFE9NfyHk/9baPsZ3PVPp8eskzDazmx2Vpbq6eu7tRKJ0AEbh9uxsL98MSDVIfHX8cGRV5YdNhY3Ugl7M+iLieGUBgEObM0U8OkloinWaZx7AJj9gQtnvpNNHHp/0thQ0dIvUHfhYAXQWpZqO/E/r0B0ViU1C5NXcezKDMomHAYWvBcaY4Vt/Sug7AvDUjhcU1z4yAS5R6vnSMXJHPCV5g== 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=sA1fjhcyvXtHScgQP+1H3PxI/sSJX4nZiM/2CBGXSss=; b=IhjTEb7WkaZMVNSSL+6CJYUz5ZmsZ2WwfJjZZVed0HxdxB4znERxTnATtpDnJBEBdJr9QZO4xIjVmOebsJeVg+A822ktMieJCDSMy50qlZeT8cNU/Y9x3j7B8y7jdzXrBcaczsb8KuEu7zrdHORaIzdt3ynyUDrgEEwFyqMiAp4pMwtmYRtOjVs1c8r+xFvQP1BRxjks/tt/k+Od7YgiLW40xGlB64iy+OZ+3WBwNzLL+y60otAvDWCtcwejnV/gijHNNr7/zJ+0YjBVTZECK+y7/up8mxJsMCDTUYoL1MXdGO3X0XZX/7AG5B8dPetoT3c5I0HJBhYkCIAlP6sNKA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=nvidia.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=sA1fjhcyvXtHScgQP+1H3PxI/sSJX4nZiM/2CBGXSss=; b=0CeqJ5Y4OEgsRHfpOzR2kmhtrfvN4vyL3I/eXwKtJZ15V8Alh/xBrS+AfYFpNB+KDZPO6uT6EFbJpr+D5jMKRWaxLZ6J56p3ZF2VLwMpI2r0JiN2UgTvniZE9L5Iqp9FYpoRojuiSwgZ0NOMYlizXJ37iMH9tqnpdfCnkXZW+rE= Received: from BY1P220CA0040.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:59e::16) by SN7PR12MB6689.namprd12.prod.outlook.com (2603:10b6:806:273::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.13; Thu, 30 Jul 2026 07:29:42 +0000 Received: from BY1PEPF0001AE18.namprd04.prod.outlook.com (2603:10b6:a03:59e:cafe::65) by BY1P220CA0040.outlook.office365.com (2603:10b6:a03:59e::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.270.14 via Frontend Transport; Thu, 30 Jul 2026 07:29:42 +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 BY1PEPF0001AE18.mail.protection.outlook.com (10.167.242.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.8 via Frontend Transport; Thu, 30 Jul 2026 07:29:42 +0000 Received: from satlexmb10.amd.com (10.181.42.219) 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.41; Thu, 30 Jul 2026 02:29:41 -0500 Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 30 Jul 2026 02:29:41 -0500 Received: from [10.136.32.30] (10.180.168.240) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Thu, 30 Jul 2026 02:29:38 -0500 Message-ID: <93830a3d-c85e-4aee-b293-b9fbbdbf61dc@amd.com> Date: Thu, 30 Jul 2026 12:59:37 +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 1/2] sched: Skip class callbacks with SCHED_FLAG_KEEP_PARAMS To: Andrea Righi , Ingo Molnar , "Peter Zijlstra" , Juri Lelli , "Vincent Guittot" CC: Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , Tejun Heo , Patrick Bellasi , References: <20260730055011.2267333-1-arighi@nvidia.com> <20260730055011.2267333-2-arighi@nvidia.com> Content-Language: en-US From: K Prateek Nayak In-Reply-To: <20260730055011.2267333-2-arighi@nvidia.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE18:EE_|SN7PR12MB6689:EE_ X-MS-Office365-Filtering-Correlation-Id: 8b4414ae-c8e2-43d6-1e24-08deee0c526a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|82310400026|1800799024|7416014|376014|36860700016|11063799006|56012099006|4143699003|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 0b/8YIjoCr2eLMPQlOfkc+/gZoidn8tAFallsZFrH5WI089EXKefyZI0Cxrr4lv9rnjEMMCXooW4mdVe+IIOdvl5wY9BdvdD+nYLkaN2u2k92wbGEdsMMo0QwxkOTgMX5Ym2LHeAh/1+3FcJGphz6YHgd3GduBWsUb2URTGHG1iBAkcnfxtUTpvjzfOjUJMseSlpWzbF8s2EWw5+2FGPkmztMzRbprn+X1iqpfbdZgsNaxn8a+lKluJwTk0+dg1+9+gJSmQLlDLwIqEYjSJGe1yuagqJbeFGAdj1dVQKPDDoHZWayKrgUx6AEHlD5r3sGyVF1/FJPpROKwF5OEtF7IOu0Td30MoKUwVADjE6wAg/UqocBwtr9ncUOL0At+oDLTp4SPqUdVyEhAxtYvVO8y7HKrJCJOmBGnllD7fwtu1gBe8Mxx/6rGzEQZj5kMsVZ55ahdmKCQGeLP+ci0O5ix+eXsYdrhGbKnP6DRXwlD1+rTQ4bubECwk39NBM/ogT/aK7eMLEeIsv/wX8L7pO3jOZDwFPJ2siv5pcJqpKbUANE3FDDww5YiVVSIhjb6gVO2RfNDPL4EFecsr86ot3RZ8VY5Cmoe8Cs/WUP/+iZOJTXD3hZErMOzVocVBXy7CTeHWchqehs3LzEs1+t+oCFUGut286UZLBmUpIJjooUX10J5wfcZm7pDrmJkYR3qIy5MWvtCBTTEqMDlEqYIrKtQ== 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)(23010399003)(82310400026)(1800799024)(7416014)(376014)(36860700016)(11063799006)(56012099006)(4143699003)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8cOr23kVd7cq39+zfBlaa8GBNjS5+iqEkPfkf+/QcolPf/g7E9wX9MNkRY6Scbxuj0CMmGZcfhmJaxokdx1wn0dFiBz+zhtjbIYZMIzvxS9TpyS5QjeZFEt1E3UwAdj2vhKYPwgeoEqgXjtswCjOrLM1BOgOTLsgTAJFfJP2F/Xl4BBhIflcbidfCBcPrFzkMQvoHEhKef1eRZ60lTq2mNpPcWSGhzu8rR59yWybIfe1NVcGhcMAiYGxHDr/DKvCrhjeuh1KtbFkMJM0/FOop3b0C6w4ZolLYRl6+QwDzSXf7JP8ko7tHkgEMan7xwKevt1O9EtyRSoFrMAJtwNuYyPHOXLg8gbwgDR185h2pdWNWyLFUgYf2zHbrUQWuJ6Exf6c9Id+ApxuNQCsNri7HShVE9cqOs3ibzdMNYv0S8+Xn/3ooFFt9y8UTgRn4xHT X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jul 2026 07:29:42.1625 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8b4414ae-c8e2-43d6-1e24-08deee0c526a 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: BY1PEPF0001AE18.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6689 Hello Andrea, On 7/30/2026 11:20 AM, Andrea Righi wrote: > SCHED_FLAG_KEEP_PARAMS suppresses scheduler parameter and class changes, > but __sched_setscheduler() can still set DEQUEUE_CLASS when the class > computed from the requested policy differs from the task's current > class. > > This causes the switching_from(), switched_from(), switching_to() and > switched_to() callbacks to run even though p->sched_class remains > unchanged. > > Set DEQUEUE_CLASS only when the sched class is allowed to change. > > Fixes: 637b0682821b ("sched: Fold sched_class::switch{ing,ed}_{to,from}() into the change pattern") > Signed-off-by: Andrea Righi > --- > kernel/sched/syscalls.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c > index b215b0ead9a60..903b47f5d0b74 100644 > --- a/kernel/sched/syscalls.c > +++ b/kernel/sched/syscalls.c > @@ -675,7 +675,8 @@ int __sched_setscheduler(struct task_struct *p, > prev_class = p->sched_class; > next_class = __setscheduler_class(policy, newprio); > > - if (prev_class != next_class) > + if (!(attr->sched_flags & SCHED_FLAG_KEEP_PARAMS) && > + prev_class != next_class) > queue_flags |= DEQUEUE_CLASS; It seems there also exists a SCHED_FLAG_KEEP_POLICY which should be used to retain the policy. By a quick look at the syscall path, SCHED_FLAG_KEEP_PARAMS should just do an equivalent of: get_params(p, &attr, 0) and match the some properties of sched_attr with that of the task. The task is still free to switch classes if the attr->sched_policy differs given SCHED_FLAG_KEEP_PARAMS and SCHED_FLAG_KEEP_POLICY are two distinct flags and there is a separate SCHED_FLAG_KEEP_ALL to combines them both. I'm having a sneaky suspicion that the bit in sched_change guard below should actually check for SCHED_FLAG_KEEP_ALL like: diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c index b215b0ead9a6..baf1fc59069e 100644 --- a/kernel/sched/syscalls.c +++ b/kernel/sched/syscalls.c @@ -680,7 +680,7 @@ int __sched_setscheduler(struct task_struct *p, scoped_guard (sched_change, p, queue_flags) { - if (!(attr->sched_flags & SCHED_FLAG_KEEP_PARAMS)) { + if ((attr->sched_flags & SCHED_FLAG_KEEP_ALL) != SCHED_FLAG_KEEP_ALL) { __setscheduler_params(p, attr); p->sched_class = next_class; p->prio = newprio; --- > > scoped_guard (sched_change, p, queue_flags) { -- Thanks and Regards, Prateek