From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012054.outbound.protection.outlook.com [52.101.43.54]) (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 670723B582F for ; Wed, 24 Jun 2026 23:56:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.54 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782345379; cv=fail; b=FG8YvwyxvePMaRHo74EVzs31aeq6osrXLNoXIn/Cwh/L/Pb/klkoc385vGUt1d6uYQk1etl+f01hWAHc97v1HyANaxceCLGBJ2GTQrQIRg5dVwgFJkFvvHpxv2Ct5IYfpsbWj1rTBCMNLDlJLowHPlrnoKU48eAgWHOEZ46EWH8= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782345379; c=relaxed/simple; bh=JsJL8O2PUROh+ihVtVRb1RaLYVv6MT4H39sXLQDtgvg=; h=Message-ID:Date:MIME-Version:Subject:To:CC:References:From: In-Reply-To:Content-Type; b=mj3q9tCHnF2b7kB8BjkZv1y/Q+VowaQ/SX0KmHcO9uCJwKNZy8HSJ6LcB+8WZ0tteU3bLEF4nMizqXF80FoUxKpbI/aQ6FFft8VYlTOy1vvYbaus3Fw81am0ettBJYNlfNVjRMHGqLsF3HTRI36D6slsH9rGq39jYSaO3tITu7E= 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=2c768Gzp; arc=fail smtp.client-ip=52.101.43.54 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="2c768Gzp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=joNXoxhezSMmly4TsmAw4z46i8z8Nq2IwaHkNBN6ExthFUC93kOP7nCPn1tRCHlwVJPY3GCDZajh4em8JNYCYcfB5URt4td+tUQ8ZZ4xkG0srV1vSkNAOw9dhUtcpT7T5TymxIIXW/5VPiWKrd5HwWSDJlAVN0HUrco2vjQKl53pfcIUBUgC2Nsk1stb1y1iVExjQe4GeHC93EdkBtsqhnX/M3vBzx4LhILWHVFynkM7qucQ4ae/aYOdFy5VKLKzrIT4Y3hRqEjgnNwYWSUKdjWyRyFxVoH31+3R54L9wsH72Bb8wT08ClibrCWLHTPF/2ilS4tY8zR/pObqdvcMPg== 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=87hKZNfYN8QhHRz1YrW2SATgWad5NhhS2Dw54KmmVkM=; b=x0GPwuGf4dAcpZJ0yrfESHufMthP00BV64cWh8nLAYSbqslRCvqNxVlDepzRwuvTMB3t3UNXkeUTmo3UNNYqNUe751Oh8yJwJHZyU7l/Ig8QZsn3VAEJEeya95NN2sNfjlU9DZOsGhSY/798+ZnykWcGJr/7qJVJ8rtQhtD/JGy/mkAg3WS6lN+0wU1j1PISLoXvFpmmk0+6cEPKmB6sIUA4Idkx0QVlnaRog7GtR6zWjau+S1z2kUeJHB/Z3kKNG4olVxP8vDrNHJrt7ZUG5ukCnkG2P5alQkAL5Fh5NrpI5YXEqKN69sSBQ9FyyQUqZBNHDLSYW09DWgRCjBE92g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=infradead.org 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=87hKZNfYN8QhHRz1YrW2SATgWad5NhhS2Dw54KmmVkM=; b=2c768GzpNT2O1lc/T3xyi1ktde12t5JP2tgAvi293UuVGw4rkfBGUKLUuTfn//U3pz/czgBIMRvR/KvHHpkUXv34NiyH6kQ4hFaG1tdcKwrNQ6TeyGDgu+KsAuhZRzb5APV+K2IXpJtsOOyCGXCgMYp40bV+7f8M+pcT2ODMPHg= Received: from BY1P220CA0009.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:59d::7) by PH7PR12MB6811.namprd12.prod.outlook.com (2603:10b6:510:1b5::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.159.13; Wed, 24 Jun 2026 23:56:11 +0000 Received: from MW1PEPF0001615B.namprd21.prod.outlook.com (2603:10b6:a03:59d:cafe::8) by BY1P220CA0009.outlook.office365.com (2603:10b6:a03:59d::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.159.15 via Frontend Transport; Wed, 24 Jun 2026 23:56:11 +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 MW1PEPF0001615B.mail.protection.outlook.com (10.167.249.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.0 via Frontend Transport; Wed, 24 Jun 2026 23:56:10 +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; Wed, 24 Jun 2026 18:56:09 -0500 Received: from satlexmb07.amd.com (10.181.42.216) 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; Wed, 24 Jun 2026 18:56:09 -0500 Received: from [172.31.184.125] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Wed, 24 Jun 2026 18:56:04 -0500 Message-ID: Date: Thu, 25 Jun 2026 05:26:03 +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/core: Allow newidle for core-sched To: Peter Zijlstra , CC: , , , , , , , , , , , References: <20260624121327.190063948@infradead.org> <20260624122451.583174198@infradead.org> Content-Language: en-US From: K Prateek Nayak In-Reply-To: <20260624122451.583174198@infradead.org> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW1PEPF0001615B:EE_|PH7PR12MB6811:EE_ X-MS-Office365-Filtering-Correlation-Id: a6fa9886-52e1-4503-e6a1-08ded24c2a89 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|23010399003|1800799024|82310400026|7416014|376014|56012099006|11063799006|4143699003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: CwiXUiR9BZmowNjOOAoCsGMvqbxeSKyqxg9/2ic08wcu3vkpOk9m5u51sl3Z/HA7URX7smaPXYwJhEDBK2XiA2k2JKj32nhaTk2DalZKDGgLoVIgnud7TMjTZKj0z36YnwWlkj73jDYXmXkdZ3AgMtwF4/dkj6aBdjm64jaeYzOKyAncofR36fwwLOSEpbIz5VXlotouykXreHsLPLAA1EAAQdY6yNzNnu4NdX1GVdDUvdgq0d7IiLpZV/a7v6uGvPcQh1QwbC6/JheDTmvSun/z8l40QzMtVbt8lFVfRFvN6Sf6hWdRUBb2YZcL3JwtsCj9BgKmYpKzgthoU9MoMpn2JuIClvPz3jSpgUrP0e0ReJ6a2Mvvf/tASOW79fpdvajuDB/NAyUoSdimJKFxLdzvUeS9kC8Ra+rom6LLwt+1yGxS8+0gmXoy+qOafiAGZSe2efc4YbJPUgAzoBWywPTsw0qELg5Hx+qEPEVkGFTNr3uQwDjJl6PcC/nqzhjI3ot1snMT4f/72BqQoCUr1f10mulV6nCeDGdm7BIeSYRKQLK1oXui9GgBshhXL4kELlF5hW45ibHaR/i/xLtR9cXry6ZrVVWSNmM/pQ2uLtCFdZTQRj93woxMvPmNJm/E6a0MDDkR7H6kwYhrh57SgSvm0whyeO0dmrUSkMPrAs07zxsUBbv0a7YxsXtxdmJ6 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)(36860700016)(23010399003)(1800799024)(82310400026)(7416014)(376014)(56012099006)(11063799006)(4143699003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: e8M/+nXA9xbZUAnrxO1dABVQLrtrfIeoA4hbqkBieKAPwS0MSzrdS4FA79zVBEzexzwB/apUDIbpzAn61jmB7dw7yelWKvKMHnKlmzsIGtiGQ/AmqPTWhFrevdSSB22Qn24gFHx7Vo4vwRdxq+IU3wVL2z0sPj3i6EX7jHU9fTr2KZW6MJ3Hj66LANKKxqaC7mDmBAYnGVozx9MTf6KkxEWUdjakaUfvFVLw3qvtgtbyvUBJ4Wb7feA63QUOJwKo8Z+E+TBtXmDYvlULxaN4QATlOkayHz+TEVqk52Pj5eVb8S4L1jgmqCWxTaRkQ8m00kep7r/VpsEGkv9eeXtnef7vdeR1gWySDqSTnUjXjKniHUZAvt5arDwL/lly26BNCOr5Os0jxSWLr5xGWOZ0fOqdnw87JLlWnuz7YN6pKkHOcnjhbuLyAqL2V4OhEW2G X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2026 23:56:10.5399 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a6fa9886-52e1-4503-e6a1-08ded24c2a89 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: MW1PEPF0001615B.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6811 Hello Peter, On 6/24/2026 5:43 PM, Peter Zijlstra wrote: > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -9942,9 +9942,6 @@ struct task_struct *pick_task_fair(struc > return p; > > idle: > - if (sched_core_enabled(rq)) > - return NULL; > - > new_tasks = sched_balance_newidle(rq, rf); I have a sneaky feeling this might still race with a sched_setaffinity() like: CPU0 (CPU1 is its sibling) CPU2 (CPU1 is idle in the meanwhile) ========================== ==================================== rq0->core_pick = p; /* Core pick on SMT - CPU1 */ pick_next_task(rq1) __sched_setaffinity(p) pick_next_task_fair() __set_cpus_allowed_ptr() /* p cannot run on CPU0 anymore */ sched_balance_newidle() task_rq_lock(p, &rf) raw_spin_rq_unlock() ... ... /* continues newidle */ /* Gets lock */ __set_cpus_allowed_ptr_locked() dest_cpu = 1; /* SMT of CPU0 */ affine_move_task(rq0, p, 1 /* Move to CPU1 */) /* * p is not on_cpu * p is TASK_ON_RQ_QUEUED * p is not migration disabled */ move_queued_task(rq0, p, 1) /* Moves task to CPU1 */ task_rq_unlock(); ... /* Sees new task on CPU1 */ raw_spin_rq_lock(rq1); pulled_task = 1; /* Retry pick; Finds p on cPU1 */ return p; rq1->core_pick = p; !!! Two CPUs have the same core pick. !!! Do we have a guard against this that I might be missing? Should we treat core_pick similar to task_on_cpu() and go down the stopper route like: diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 2f4530eb543f..e7f64f34aa4f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3049,7 +3049,9 @@ static int affine_move_task(struct rq *rq, struct task_struct *p, struct rq_flag return -EINVAL; } - if (task_on_cpu(rq, p) || READ_ONCE(p->__state) == TASK_WAKING) { + if (task_on_cpu(rq, p) || + task_on_core(rq, p) || + READ_ONCE(p->__state) == TASK_WAKING) { /* * MIGRATE_ENABLE gets here because 'p == current', but for * anything else we cannot do is_migration_disabled(), punt --- ... or we can return a RETRY_TASK when newidle balance succeeds too to force a core-wide pick when core scheduling is enabled like: diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 0d212bf04885..e393aed58bfa 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -9946,8 +9946,16 @@ struct task_struct *pick_task_fair(struct rq *rq, struct rq_flags *rf) if (rq_modified_above(rq, &fair_sched_class)) return RETRY_TASK; - if (cfs_rq->nr_queued) + if (cfs_rq->nr_queued) { + /* + * Force a core-wide pick if newidle + * balance managed to pull a task since + * the lock was dropped. + */ + if (sched_core_enabled(rq)) + return RETRY_TASK; goto again; + } return NULL; } --- Thoughts? > if (new_tasks < 0) > return RETRY_TASK; -- Thanks and Regards, Prateek