From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2050.outbound.protection.outlook.com [40.107.237.50]) (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 3F3A12063C6 for ; Sat, 25 Jan 2025 05:02:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.50 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737781328; cv=fail; b=Lmg6IyKectbJU8pj4XuWzSoZpM8tKJHOLAKgYodcZJp15FGgWyD24NpPH/0mxbhJf+5kS/GmeD8HfnPGnL0BJmHHayr9Hwv7wHl+t/vYFOJxmm64XgjmoK8y4oc29ZJz+fI8tgxVQk/e4pHZrYTGlb6pPoNs+n8YHrWKNznHQuM= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737781328; c=relaxed/simple; bh=LIBftDeJvYvqY9waqsZgt059x5dQ5FkPT74GySyE7EU=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=Yu1d7xaxKcIkjnnJrLgEWr5iKerWqvufTzTmjA/M7V+8RHfHe6tHc3kfbpsIy2IaSIXRKIBCHZPVRIlmdhW3I2bQsoQejt7v9UyU9PmzdXNwU5fy/a6b1D/NRFSVMWA5fhIosbe5Pkx+ebSC7nUXSlfJliR6EB5AWgKAGPr3NKg= 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=XAkVFbvP; arc=fail smtp.client-ip=40.107.237.50 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="XAkVFbvP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WLJAWDEfck1rJ7hZliG4m+pC1/TCdCsmEAdQkBcY6QOzwUZHjA5pkeF0V+DI/hsShJFnnwN9g7HLDwR7qL/0oHWQwfPXydSGKAv9aSmsI+pwh2lrHHALMEmAip9nsnft07aOrmWgXQBSwpTxJhOaoVHy0P3hmdIIyGHHLdTM22TZSC5diOC6McTMA7MzOzazPhSRjiNohr/k1h42fzQnYAQnLLCsodJ2ikhaGFE8J3r4vskK6iPFH3xB8WRyOuuczBIc53aic3Y4kmg+8XH0qn9s5DcaxGhrW8CiMWWOSxj2sRw71RT9RH0dplcXfAgGNrebLdMiFGZ97Y2cGhE2PA== 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=JLqagaRImBXd+hbr3Jwsmvrn4R/bZ8mZMfuCZFVvphE=; b=ktLVSKFKpMVVPTeBgB4b8/Y07HBisoXdJMZoKOJ66AipsID9btEfL0lQ+mtmKU6nTJRG6JnyUYiULqPaf9ZB5Lo8i6JwRclUfow0gSxjUJVNUgLq9blc+VKbIb2785zCtwx14onBGm/WkOs0j5yFJ1Gqv2r1qlrtq5/Lc0UjwoMVB83D8hXC8UHn7MLVYJVFugg6UH7ejtyNVu3/BNL33oL0GF1b+6sqCj7cc6DtJihIYMPCYXHtSvkh11ecceEJjm4BpqhfjE1iSYi3ykDQz/kTHfEO5Cg4qGsgibr8H807jOrlgXEaJCfyN80FIUvne1mPpw9kHw2wUmGslaeqxQ== 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=JLqagaRImBXd+hbr3Jwsmvrn4R/bZ8mZMfuCZFVvphE=; b=XAkVFbvPjcTkNoC/89Zj/Yw4Vd9XFiY6fJrVLvrZtpbhLpJXv70tOSasEebKWEVYcgA1wMCebTqDc8g0wv0T4IIiGzd0NP+H50PzogKADkGoFgaL/bWOmBOOo87vvbcGOZQNW1pV5Iu0yZ8g7zqZnnrnp+FhQiVcjqJgg1XvUEG3jCgrK+a6cnx07Cy8jEYIpt/EvaErRV1p26FQ82sfckDKkkRHPS1yO/d6AJwU3epNd1Y8RlzkJFssbaRjFnSL5T7TLuBURtQEKg+6x5RpCJIhUz9LLv2JX9XUiZlP74XRO3IaFk7vud7AiVi7SxuCqQPCSOW7buWNmK4jsTlY6A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) by LV3PR12MB9215.namprd12.prod.outlook.com (2603:10b6:408:1a0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8377.19; Sat, 25 Jan 2025 05:02:04 +0000 Received: from DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793]) by DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793%3]) with mapi id 15.20.8377.009; Sat, 25 Jan 2025 05:02:04 +0000 Date: Sat, 25 Jan 2025 06:02:00 +0100 From: Andrea Righi To: Tejun Heo Cc: David Vernet , Changwoo Min , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] sched_ext: Fix lock imbalance in dispatch_to_local_dsq() Message-ID: References: <20250124072425.47795-1-arighi@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: FR3P281CA0045.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::16) To DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) 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: DM4PR12MB6424:EE_|LV3PR12MB9215:EE_ X-MS-Office365-Filtering-Correlation-Id: 062de7e0-af79-43c9-e6c8-08dd3cfd6911 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YhX+kxpccUdEK8xSNwSqSh6c7fOkDOTEpGUHX0pCjjFLy6lKmOUgNXb+bRuf?= =?us-ascii?Q?vi8CO+Mt1Fu0NdaAqXMknHLIsZMFympoe57CgpwMbtiQnuaz4KVHqiHZGEmy?= =?us-ascii?Q?7UPvTpPkt7xEhqDlj09Y4CSiXD6XfQuSkwcJruujNLOXKcfUOaYwpVPXj05r?= =?us-ascii?Q?RLl8QGxGZ3CvePc9L/K1HX9mIkov/l4VbJxXOea8mP/Y45U9SvQ9DULNj2uJ?= =?us-ascii?Q?rBWIxhqQwS//bVNrJV+xBA8lyb/5kYPpPFcM0gOOG8466HqHu5WrLER97RjO?= =?us-ascii?Q?w5qf2hgT8JY4uNrxjUQ2bwhzfftnX5omlezE0NmJfkWk0rIJdbQzjLgrAZUO?= =?us-ascii?Q?YabJL5LRQPbBC/Vq/SYSPRoz4o32GQ+0tKcAIQ/ksPZ585oFmB3tPRYSfcHz?= =?us-ascii?Q?6pcurpouu6FcCB9lxG/F4hQNeLWN8e6iIA5nZIb5tC3T969a4FWF/kX6WVPP?= =?us-ascii?Q?fjhE43rvVvtAor1N0WXESC94I0/mwR7cCCC8etJV6CpCGsEJmcPaDeDteK+Y?= =?us-ascii?Q?bWn7TujdHDoM+OAcCGP1MEAzYptkx/1kasoW4LHHwiaBnmS+1g+TBfO6iUZr?= =?us-ascii?Q?2orywLNGnHfCyVEzrgDydpdvUlE0bT59cfrp8pF2lSRaiwt3xxJTV+2rXWwL?= =?us-ascii?Q?YLbnqY4RTwKfl4zVhNWnPlQRNfbLNgPlSgXzh7kbb8Fao1kFSKgM8bxS49uq?= =?us-ascii?Q?/5GMhsSB8HlWBiXdWGnFytLReY+vBlcBxNxg19UzL8obefOmiuYzxA22BBr3?= =?us-ascii?Q?NFBilqROrCN3JuemXQTM49jyga+P4uTZBF29uJPua4NtADezFrbMZS4vZDU+?= =?us-ascii?Q?iyrJUyly5ShqAoLEZVvgnCUa8EMy6UIyHb3R8bKy73RYKQNFkWrFqM2JsH/9?= =?us-ascii?Q?zZcVBvMmMitO1Tzrk68sJ2FDapLKddrahy6MI7LD9KUkYGBgNoKUPrbM91yW?= =?us-ascii?Q?vUHiowcP5Bw+7kij2SPzAV2yaEffZhiGp2+QyMVh7C3QS18TbOnJAszQtQdJ?= =?us-ascii?Q?L3Udy7lfsrcDoRQy0pf8unbIyAC/cTQIgxiIGdQTqKqvmnkuL31V8TcPALPm?= =?us-ascii?Q?SD/3F9sjTp+zHvoQdB0Dhsy8q/xB8dURocqHDGs6D7WDTE8uQKTgi6EXTFA1?= =?us-ascii?Q?jbjjd6EN/v/YJN06syDq0e0h8WupYn6s+NGo2FUN3UuPCDcmvcHE78nbn/5/?= =?us-ascii?Q?gcXYLvqLDGKKgUEMAiv+0CMdhAkTfvlS9RgnBaOj/HtxpPMs2sYLV6/FP2Mn?= =?us-ascii?Q?oZm+U0s/9Pb0R3/wNvzM4VZPXIPTaYf5V420NByKkg9jpimdSBB1//fWM8T+?= =?us-ascii?Q?yyBBE6zWLKQ/GoP1eF1h4+nwx3/HW3+1yb+J4DTbDw6r2qt8ZIcErOAABaRF?= =?us-ascii?Q?9xbqBKNsCdwziMd2RfqloLHC7uWV?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6424.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FDJfA33dzgTV8Lsk1Le2VHQ+ceh6Vhwn3KIoxrbZBbtdPzZQuGgBNDspxFoB?= =?us-ascii?Q?fUkLKC5wQDVydCjImkwRw/wnFN1nSBg5XPmwfAv4oIyKtcBc3lTNcu3ncu9r?= =?us-ascii?Q?ct5n8SbTyrp8q523CKXXg8j82AAnxD9uxwJuuIZs90c5LEC+Ywy6isniNbau?= =?us-ascii?Q?ZFU863rggd1qLoRMyEcpg/PJvKxwCXeTp3YFg8GZicmMULpWg7a/k5woMqBa?= =?us-ascii?Q?cyecwSFlHYQdIxySvUlRBqfi9KvXpVl6gWHb12T/UXqHk1FzfhH5Da/DPD4L?= =?us-ascii?Q?DIOESM3zgtEsQ5UrJPCYdx84MJVs5dgsPGQkFunpjS0wcmdZ1CzxImeIx4mW?= =?us-ascii?Q?X7RZhjfqLw477UqmpX3wbLAeF4hl1j85TYC0T350wSnzZqZ2zyUP7SsfW1Zy?= =?us-ascii?Q?55qSOV2Zod9ZRpy5DI+ahI11IiCp+EQI5zJNloAbV+h/wVrdNep5ysp2FQc8?= =?us-ascii?Q?sAUmVMX7/1985gvmWnVzZloy/DuF1OVVRwH7JHyO81Q/IMvmAX8VlchYZs6I?= =?us-ascii?Q?Me1Ydc1cpFl9rT82wwygL8uz3qLGgnYPwZgJ5WVjhUZALn7L6WNbeMoYtakz?= =?us-ascii?Q?zV2l/9b20scT+n48qt3SYtzwBhG2OaPFmoeik1WLe7mf6yilzCz/uYNgys+u?= =?us-ascii?Q?uj8b9BUdAaLxwCTVkCtwZNoBzvnpmZ0PJ7c0vcvFhvc+ZvQT5HAPrQZmdz4y?= =?us-ascii?Q?VP5ielxwDyeoua9EAnDAv+p11bw4VAxPPbepyT7Y1GxEIqmOmsH9bYRIGPbc?= =?us-ascii?Q?IG2+Pq2RWIDlnKyc5l39vJ5SBMZME9OzeFj1QXfU7WiwR4sagov61IVDgb+Q?= =?us-ascii?Q?7U+9ddtB9CnbxVSIkgj6DB6tthOjZTBx/Y3EGmCsgIXfzLS4eJOL3E2fjdd8?= =?us-ascii?Q?ixiD9e3+D+4LOBO5yk2iCS+X6g8QXRu6opvbjWtNWFowIr0MsT27JJ5NeZ9a?= =?us-ascii?Q?4scJ1Uovt4jINe/MGHD40OaEDUs0bUIIzzZSL+x3eQoVZXg6FSAIgTApRzGa?= =?us-ascii?Q?dRj4rtHboKRGs1uKEjY62Sj0I4A8bPrldIPkcklxtb5diPL7+8qPcdXzMbN7?= =?us-ascii?Q?ihtENrUYAh2vG5QDsbb82Qc09fJ5ug9qaxvLtjyBcSJHU7ubXmsZeeeArr68?= =?us-ascii?Q?WjofRZffuiIz089OXR14P+jaV4av1YGxKtm6OUT+znk0mFxrV4DUdvVgttr6?= =?us-ascii?Q?uW7t9bBBC3wKLH1nKn49o5PmcyGtUnMJH/n3VL0lTTxyC7tDtwzLX3Pm+vvr?= =?us-ascii?Q?u/+kt1iwEsbNuB2AXT0lnCNFjZTPCNNe8t3muTQKwl8+WxKlyO+NVYZvSQBw?= =?us-ascii?Q?/VYqyZIi4m69gsjl5f7SNu7p4FgCL0vFCZQFNSLcyuatogD7SIh/8lh9ruRr?= =?us-ascii?Q?STjpG9R8s9AJfIhYFQwAKAGXQdYNcUvgJiZq8yife3yeQz7TtZ5eiNt7Yee7?= =?us-ascii?Q?wFUe2x5UyvIyhtSb/+QomoY9gXvp6NNWTeu8V+yymzHh8oRViv/anR/a8tsV?= =?us-ascii?Q?brl5JykkIPoeeVnIe4n5FvbL6XNN6MNSWH163Vp/0rX82f/OpCcT0QAaiNle?= =?us-ascii?Q?roPmcM/0qmGu4Aaj6JIxgweQv2mpavJdXc4/AIgL?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 062de7e0-af79-43c9-e6c8-08dd3cfd6911 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6424.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2025 05:02:04.4664 (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: dGbG3aBNtCav1MHSDYVyynayaUKGnBZ0vZ/Wv7jr5qCa7VfbdmOBExWPN8aMoJty3UmpU1j8AKB5QdZ7CFp3BA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9215 On Fri, Jan 24, 2025 at 09:08:39AM -1000, Tejun Heo wrote: > Hello, Andrea. > > Thanks for debugging this. > > On Fri, Jan 24, 2025 at 08:24:25AM +0100, Andrea Righi wrote: > ... > > Fix this by correctly assuming that task is still in src_rq in this > > specific scenario. > > But I find this a bit misleading. It's more that we didn't do anything and > thus didn't switch the held lock and the assumption that the unlock path > makes is wrong. > > ... > > + } else { > > + /* > > + * Otherwise, if dequeue wins the race, we no longer have > > + * exclusive ownership of the task and we must keep it in > > + * its original @src_dsq. > > + */ > > + dst_rq = src_rq; > > Both the code and explanation are confusing to me. This is working around > the incorrect assumption the following block is making - that we'd be > locking $dsq_rq when control reach that point. Can you instead add new > variable $locked_rq which tracks which rq is currently locked and then use > that in the unlock path? It starts with $rq and set to $src_rq when > switching to that and then set to $dst_rq in the migration block. Then, the > unlock path can test @rq against $locked_rq. scx_dsq_move() uses a similar > approach for reference. I see, that makes sense, I'll send a new patch following this approach. Thanks! -Andrea