From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2080.outbound.protection.outlook.com [40.107.93.80]) (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 23E7A2EB10 for ; Sat, 25 Jan 2025 08:35:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.80 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737794156; cv=fail; b=GiVH497WB8wHm0xHYQG3/IDIre6v2y9YVpNrzNcFt7s0Z/YHB1A63/2nrf+5Atrxkeee3f/4nHbF7EIWxW3TKgxw89Eu/nJ1tJJPuCX3+0a4gzYvfy7FMzAGiutuiah5T7INcOmiu3Z/TuAham1F5k1JXHZpgfiPb6Q6xfNM00M= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737794156; c=relaxed/simple; bh=+jCz9DuMO7gPv+Zp8jyuy+HbkuQH6EeTgR8f87m64xc=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=H1wVZwtp2JgFd2uZe4ElSDSWFSqm5d3URSYcjTioXfKZrckAlb+4FIrbtPzEUqmjYSfTRo7/qneaXqRIwBFWj+NcofRP85yxQ3Ki8ie0jVI0pHEqaNC4HH6va86UnwaHK8R3toLAEMQf+1LSl6rK2dEgJEHt9upxgluDpNPZhqE= 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=N2T4jtmc; arc=fail smtp.client-ip=40.107.93.80 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="N2T4jtmc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D3jtt0IRdUqD0ne5b9xYMtzbye6Gs2IAuUf6xEXQq9evycaFtTFuf3ufYuiVFsXtXLrN2/osdFzYCciFGp19fAsp96cTVGQpgSHdN9I2btWinhaDGjfXwDtid5oAARQFotBldTFJ7MfvAntqWox8wo92hwKQgC8er0CVaUL+WuzNNxTtEIGCz30QtIvVvRzZNxYfY/PTMoOAVLJ3cQvc8wcWxRjynMU+fthZ+bSlq79S2IiCYVhUx5WZMAhZViI3B+ay4WfIetyIKgWIT62mbXWU33o7ZOIclcGs4d0SHYpKMJZvvu7uXgSc4V3NqGX2XuufZm8NXUUW1v3WgWJf9g== 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=8P/ZW4wqSAMEm7dHWsvAG7Jy0u0zkRdX+QFA4BWwz0U=; b=Y1gDgfuhi7brNygettSjksk5Oh8RwL9K6eU2rL55OdYJQ2WJQqPKuDZUvSE2o7MrrTE0noedilL10MLYN9ICyXVvRdfg9xMHcprWNyARwey4pmtkFiXhiy4YrHUqssOjbbZ+YD6I6cJLBBi75TrlD8t5j19FHv6nTwYf0Ln3lT+8axHEfkHuGaqx27W8koZkpDSSsPyLjmTR9MRlwg0qnNoX5ssedVonCmSfgUptmX7cmCKUN8diCRTa9pzyoMUblGsvf+OoScrda3nUGwuBHR6g2fkYL4EPiFsOodFNQRIH+lTuj4YpZxRGTzfWEt7AcV7yixQd4ObD201mr43zWg== 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=8P/ZW4wqSAMEm7dHWsvAG7Jy0u0zkRdX+QFA4BWwz0U=; b=N2T4jtmcifUvB3i8QzQiuNBL57w4Dk1kpiKtT6KXzSuNloSfEsXD5/P3S6zJNIUTzdnOF9VXUHgNdoYQPXnV/KIjPvVw2eDOm++Ih6E6+3sTLCGequ7H90GnCL3MbN7/OPj6cdHJd4L8n8UXhQAriBxdA7tBYHI0w1Tx+L4yIjJmgxlcouIBt+qaggKcB8D1QB7c3N42s1kxpbjwk5AzWmFoadLjqB+khD2vZxhR64zt9L/nKyuoex0jKoBugZ7FxDZwkpjx8kAutbWN6SEDGSJhaL7MV+biMPsoce8t/U7PZA3peBYw/Yqv8D+/2WGxj0JmZnFqNbpYyq4beQiDBA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) by PH7PR12MB8828.namprd12.prod.outlook.com (2603:10b6:510:26b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.21; Sat, 25 Jan 2025 08:35:52 +0000 Received: from CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5]) by CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5%4]) with mapi id 15.20.8377.009; Sat, 25 Jan 2025 08:35:52 +0000 Date: Sat, 25 Jan 2025 09:35:47 +0100 From: Andrea Righi To: Tejun Heo , David Vernet , Changwoo Min Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH v3] sched_ext: Fix lock imbalance in dispatch_to_local_dsq() Message-ID: References: <20250125065608.181754-1-arighi@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250125065608.181754-1-arighi@nvidia.com> X-ClientProxiedBy: FR3P281CA0087.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::9) 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: CY5PR12MB6405:EE_|PH7PR12MB8828:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a5f2324-a3b3-4adb-65a2-08dd3d1b46c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+c8G+dUG8RrlBWziFiyxVwgCi+7EjymUmQSImsKzO6ak6eCak4CZxXKYtFEa?= =?us-ascii?Q?t/s68DwGkdyvsS25njehjrVXslGF0E/Jk+636R5pZX3yE925nCo+KEuD9bYt?= =?us-ascii?Q?pjm8QhdEUvSrLswn3P2DH2Og9Mkjq4YXpPeGjurU7wRELf8fzgaKjIFQ/h4c?= =?us-ascii?Q?DHzyrJ6t1sPl4OJ0vxTdH2744u/KjrePpaHNH9qFW8cxHoIEum7gPer34Kbn?= =?us-ascii?Q?l9hgJ0CyJdBoQxYa26vuTLGAL8mDWYIZyUp2zfA787N8vF2L1TZg3zNWxevN?= =?us-ascii?Q?vJNVN6YJrRaZMcZnJvpI6mPyTQoN5oHMG/+P9WKHWRzuZ6sbW/YI7zKwdmmb?= =?us-ascii?Q?ScUIYO/vCEoc8M9GfrfKQfOYCz5JBHMQQeEV2q4+nUPSv7PJd45t07ey1Tnc?= =?us-ascii?Q?0M6pEJp7yQgoq17HiMeAzyaehfSeINixnqiAEblo4zUwcS9T6AnVuLPouBUY?= =?us-ascii?Q?xPaZbQtEwiU1DLzg5DD1G+qaHKDG8h5lHuoUiOPA3YR7DsEy/MbuLjQ3rfzA?= =?us-ascii?Q?Z3QNZ0RTsMbDvfa9FJ03FWfNRLnLM1fyWiDtWHJ9tkjRP1rz9SCSDqk0VXwI?= =?us-ascii?Q?arvNwnXVwR/ZS2gq1v7I3swr9mmuYoKySqt+lNGxiNhphLe/uF3oY8HMBGkL?= =?us-ascii?Q?6AwNPtQ2JUbVFDsoQkyrx9nOBkmdjvYvwntotC1DddHiaFnw66uLTwymayFE?= =?us-ascii?Q?EBw7fjih9rbIiHL79O1htNAA3+oWEoKNL+bi5CjFxwbx2TBx1l9fUU7Ubfb3?= =?us-ascii?Q?gEbQmyt8u/T62dwO9FKzp/zWCH5rDoaoQIeoUHuf270EOWVNogsJlTs1LDjn?= =?us-ascii?Q?qKjeRYm2fllsd4jB0KBfYVMtilTg9bkm26YdwxD68CD1VhvJo8EtPtudnuuU?= =?us-ascii?Q?DN97eaKCLk47z5Pmb0LoG8VbT78eVJ+SLaKX8R0MBJISgVp42+0yWFJ7tBOi?= =?us-ascii?Q?MtzL2m8FuQ4vgbwJ69a0gxmBsWFJ0Idal0w21/wiUzSSw/geS2qfxKQVWhu8?= =?us-ascii?Q?DyU4B9TVuZIdAdrLBU1C5hm9fxN7LTITAsYIhqNKKh8VPEi/68NRBHN/WmkD?= =?us-ascii?Q?U9GayAB+MPbtARrj6eg5++7lgWEEZ6GNUP2DjOZHFNvunBBhRtj1isKNdV5N?= =?us-ascii?Q?P4UA+hrN2rRApo+cEOKThWWvOAboXvdAYWy160szf72SqSAh+xHzsMBj/aFu?= =?us-ascii?Q?IJ0loikwM4IEW/hUpYg7ciDxi1WQujhzy35wL5sEhH2blz4pu60nKClQ3jVK?= =?us-ascii?Q?Pecisl2ag55YA7MesVAbfsuREMaECC7m2x1fjpez3bqTycBg5HUZqyAYjm6v?= =?us-ascii?Q?29wi4eo/C1+ZwNpbs89+ca4LjxWOpEeMooDgl5ZVmu9DRyPuyKVGq7DsiMyI?= =?us-ascii?Q?H00PDWGN1WkqKvMJn5nihaZsaOEo?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY5PR12MB6405.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+aEl4hnppVD+YCKEa/pNFyIl6BbLexc0ZTZS5qXxnO09juJL/uEPIB7JJuk/?= =?us-ascii?Q?+R0mRU0XeFL5PmciX8QjAdm2tYOTLKLWKsnbJveyPtyqGDmErJej/VkekPUD?= =?us-ascii?Q?RPzqSxDpYGRKaMKZTfEBVW02RpHm6Q/+CeX/lQ1ibsjOXri5ZNRVvEORQs4l?= =?us-ascii?Q?keDYUodgVphyCGfuek0fXes8kibD8mb6NqTjTdB4hENsFUEZ66KDasUFI8/Y?= =?us-ascii?Q?kN0X45xNmTGB3EG80PZQ/pumCW52c1sk2WvuDzSajC7wYvQ2tOSdIggNAucs?= =?us-ascii?Q?8vSRfSlcFsKwdz6DPD7T7dgOuJ/KFYCBnMw5yNKw/a5y2dONapbi0WVr7ltq?= =?us-ascii?Q?qY2KO+eGxjelUqNri2naL7o4uoTQ44Sf/tf7rht/BOrefDWY5hfsow5QYHoD?= =?us-ascii?Q?CF9p0GgkT+AGr/rOpuFYRmHu9OYHi+TfyN7GVIuCjKPHJimtXhRg5wCbVPMB?= =?us-ascii?Q?LLRqAcX9/uRtkoIUO3Eaq+SezICaOslmxFUViIQuLv+VoZAhV4elpdAZw1KC?= =?us-ascii?Q?1Cd3fsqOAfGu3Tzb4Zv9Xs34iK/dGmAtKepClgkY2oHy1FapCS3hGcsonsmR?= =?us-ascii?Q?5KjmBUHnoAJNo+/xKC1kvQd/x8mWqICEb3Ku6XQaQJgdXZIV3EmwBb43G9C6?= =?us-ascii?Q?rCocrBq2cQuwkE2x6ubJDo7JF9fmHLWQ0jKiDK9TbRd1QXsFf9dT7hC7HD9b?= =?us-ascii?Q?RmKaVRPAlPmY6KAe7rIUj0nQMT8fSobSM522o0AwKt4znm24YuC791CZTOi5?= =?us-ascii?Q?TiZM6OavJQOIWc9yfPBsHQWLoXlRkwrF5mPpkz4Nu1pfWdztJqKEQ2oo/gKt?= =?us-ascii?Q?xJifSQ9vQAOLtnJGiQ7QOyb77K6ttuLddZGkUCHQZAkou2ezpVX3TgqSo+2F?= =?us-ascii?Q?s8fx8Z9uc3SSJNO6JQeenhJgSU35rRPXg2Q06wXgDxtgbXiQhwVsBn6vomQt?= =?us-ascii?Q?4qbmErvp5warW2Sf2l3wV50g5GXivUurO0RsK6nnd4rPxAlVlc4A9ILP+OBb?= =?us-ascii?Q?uZWe5Q9Zyn+g9nfB+2BckmM3gmGjqQtZF0vYrikdtMoSsSM+2uG+DixlR7UG?= =?us-ascii?Q?eBaV892nXOLhCvTr46slOmLLG5Xpd650/UhxcZdWEPDPbfT4jYRyAnh6v/F/?= =?us-ascii?Q?n7ml6pdPFma3Urb1WS3TSgsYujjNWJBq6nZX8lSdiMw38H7tiLD34wF39Kax?= =?us-ascii?Q?ejdHTG6w46Alj0aQg5KV9SFOOgbHwsPPx7WHfWHSkH/63qCU17LYChICd2bM?= =?us-ascii?Q?LDACM/gih5gJBJzUIefyfdBA92UXJOQeVeKLE4HEC+0dxtg0JOxCxEVMtPxn?= =?us-ascii?Q?2Xb3EIuC7xPDKBgHdXB+poFHrK6T63tT9hQ3TiGwU4lT5DSr4LZWgmzb2mLa?= =?us-ascii?Q?1/Fk+p4Ki+lJh8v9x8Tp1FtntZwX3XQSX6elXW//bU2QyqcxACZKg+kBZFco?= =?us-ascii?Q?ce0ZFL5uarDYVx4WTz8odTYEqlq2a1Eb4siRAQJ1OxiI8IK6CzznTrUZWLtw?= =?us-ascii?Q?nUjDmhsmFeIrW/RJm8XQ9dnNTgNdDNqf3DIrcLyrORnjoLcr8jZN/Rwqxwjf?= =?us-ascii?Q?Dflvwue85SmzxoRkMd/kye89gsLvpNPIP+oRoeIS?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a5f2324-a3b3-4adb-65a2-08dd3d1b46c3 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6424.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2025 08:35:52.2483 (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: CRiZPPqSVAQQCv/TFqabwGl6oKVZYSSd/0Er+sDynGoyflCmOFpEUV7yL7QIoQCzRNTIQa2VEe7NRbbvcWxUAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8828 On Sat, Jan 25, 2025 at 07:56:08AM +0100, Andrea Righi wrote: ... > @@ -2557,6 +2567,7 @@ static void dispatch_to_local_dsq(struct rq *rq, struct scx_dispatch_q *dst_dsq, > { > struct rq *src_rq = task_rq(p); > struct rq *dst_rq = container_of(dst_dsq, struct rq, scx.local_dsq); > + struct rq *locked_rq = rq; I just noticed that we have an unused variable here with !CONFIG_SMP, so ignore this. I'll send a new version soon. Sorry for the noise. -Andrea > > /* > * We're synchronized against dequeue through DISPATCHING. As @p can't > @@ -2593,12 +2604,16 @@ static void dispatch_to_local_dsq(struct rq *rq, struct scx_dispatch_q *dst_dsq, > atomic_long_set_release(&p->scx.ops_state, SCX_OPSS_NONE); > > /* switch to @src_rq lock */ > - if (rq != src_rq) { > - raw_spin_rq_unlock(rq); > + if (locked_rq != src_rq) { > + raw_spin_rq_unlock(locked_rq); > + locked_rq = src_rq; > raw_spin_rq_lock(src_rq); > } > > - /* task_rq couldn't have changed if we're still the holding cpu */ > + /* > + * If p->scx.holding_cpu still matches the current CPU, task_rq(p) > + * has not changed and we can safely move the task to @dst_rq. > + */ > if (likely(p->scx.holding_cpu == raw_smp_processor_id()) && > !WARN_ON_ONCE(src_rq != task_rq(p))) { > /*