Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp9434111rwr; Thu, 11 May 2023 15:07:19 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4rnV2VEBSt7+tD3nhq/AO82EHDWZMTjGlKy7YkpEG8mLoPxTGMKK5XqB4uV0WImHdeIODS X-Received: by 2002:a05:6a20:3d28:b0:103:9c25:99a3 with SMTP id y40-20020a056a203d2800b001039c2599a3mr7452426pzi.59.1683842839410; Thu, 11 May 2023 15:07:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683842839; cv=none; d=google.com; s=arc-20160816; b=bUL3h+3x1oIvL2EPPyxBnzoQQydhaIZRX6t2BNxdDpFFzdf9JKGnY2ma8ymS6yXHdM /d/ah0UEIucmZtOLXEvxxzIbHnOFzPpnwWe9k3v2HyHZD8wnjD9VwtxnYSCaemurgP/w hltOLcKFBaxp8CIbjNlDJdaRb2jQ38mE5hSXX1t4N+fWA8TWZ0bjgQJUDWbKeHx+VA+l TYFjtlGXqBYMOj9gzFjM9L24wy+KngTZkQcNZ4ehf+kMtvE9KpwG10i6NQeV0DZgdekL LCP66JObJDpp4xWz1uoOp5QUkF5K/f4+Q37kRDzqCLLlLUEhjaQbZM87RmH/K4ZCGFLz HZ2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:from:subject :message-id:references:mime-version:in-reply-to:date:dkim-signature; bh=43muZZqhwTl5Zf6bR8xbpoiNJBmmJ6GoS2BIrk8XQg0=; b=W0IWr/Pr+zjr8ap5nu0fNZRNaOFkBLfKQJ97DzAFMj59It5rSWN8SnLObyBWGj46dI e0aOd3CKs9gFHz4Gk7WO3eNArH0YE2/Mv5/VBuHCTRA8VuBO8XfZuGppf0k2f0qQbgEh X+Pyh9SAT/mwBJPOjrwX7zYXLCkwcz3e/qOWfDAd/Nx7HUQKTycDc8GxaFC+WWyJNZRX qKyz2sMZFoyvPjCa7s5O+slFVMD4KrvPvmJgpq3ls2WHAn64LOv4v8y6Ymr1/9M6LCU7 T7feKoT+zjIwwWn7LiZEHqRIW21zWUWfBipegqP71K2wrXkCouGuozjgLMefQB+l8ieZ HNCw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=4MsedK4J; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r16-20020aa79ed0000000b0063c56e46f9esi8972178pfq.294.2023.05.11.15.07.04; Thu, 11 May 2023 15:07:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=4MsedK4J; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239312AbjEKVmM (ORCPT + 99 others); Thu, 11 May 2023 17:42:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238958AbjEKVmL (ORCPT ); Thu, 11 May 2023 17:42:11 -0400 Received: from mail-pj1-x1049.google.com (mail-pj1-x1049.google.com [IPv6:2607:f8b0:4864:20::1049]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E25315BA6 for ; Thu, 11 May 2023 14:41:49 -0700 (PDT) Received: by mail-pj1-x1049.google.com with SMTP id 98e67ed59e1d1-24df8644eaeso4907388a91.1 for ; Thu, 11 May 2023 14:41:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1683841308; x=1686433308; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=43muZZqhwTl5Zf6bR8xbpoiNJBmmJ6GoS2BIrk8XQg0=; b=4MsedK4JufBOK2Pya7wQCIDxG0sCQ1VFTXWDgZhatiOWtPY8opQlb3hL15OT5+unZG c92gYZtsjWyA0xBBYuP1vjtV9F4vB2xfCoB1TbwZDS6rC9lEcLm8vQnbtah9R9tQVvk8 3XqKLnL9WIFnp4raTswUlTUXryUFeRB5X3s/tRMH4GmJMbvmyj/r3b8iejmBq+6Dz+Bu BpteMnQmPKMuyMxqdEMLiL+po2QzBiS1Jne4oUn4GHrbhRN5fi04GbTI4PMxSqwaTflW htw1CwW32Ld/0Udqzx2i3OH+tBT7Cvm3ak2yGnWGLZ4oRNFpkr2Mv5GY3T2/7v1h5+uU 4Pwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683841308; x=1686433308; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=43muZZqhwTl5Zf6bR8xbpoiNJBmmJ6GoS2BIrk8XQg0=; b=c1OYRs8RKrmS/GFh12BfcbgHoB76lNpsfFKDKBIIoBFCubCOLvzcLClqFYO1E3ihzt g6xUcg7ZArghCFavVUMPbEjk0iY1vEV6YpKRYqY+HRYB1+vBqy41U2RtwW+VVTM3lekG fqpQNNPetcMmpVteCuuSVLBDIfSwggn4NnfE2W6T72/GVvnIC9ENdYMIg+EXjoMhx466 KR5QRsocooFxYxewBa20/3VxwLgS6MyKro9NOXQ6kETf/nogrgkXQ0aB3ptTzlIDmJiD 8Xmn76aBxxYxhhadAqJKnncTAcK0zwwxJWNJha3aRz4UU7Bp5j5md9UHOeuJ3pgf94dU k8DA== X-Gm-Message-State: AC+VfDzHTCXmwiYxf7ssDExztS717hZbclkINtdyKE7qNX7JGSvXS+ZT xtY2ZIjdPIS19XQ95rpVtFydSVQoQFM+q5tx1qcWUFERhLrTEHprYP2RNbJ0/f39nWoCLq77rDX 0VqixBtElE4gFKYtk9v16tgYEgDss57iItH+7dg6TARXk8zuqiFZuin15sKfCUHt+qYhcRtM= X-Received: from jstultz-noogler2.c.googlers.com ([fda3:e722:ac3:cc00:24:72f4:c0a8:600]) (user=jstultz job=sendgmr) by 2002:a17:90a:f517:b0:250:43bb:dced with SMTP id cs23-20020a17090af51700b0025043bbdcedmr6155590pjb.5.1683841308026; Thu, 11 May 2023 14:41:48 -0700 (PDT) Date: Thu, 11 May 2023 21:41:30 +0000 In-Reply-To: <20230406194053.876844-1-arve@android.com> Mime-Version: 1.0 References: <20230406194053.876844-1-arve@android.com> X-Mailer: git-send-email 2.40.1.606.ga4b1b128d6-goog Message-ID: <20230511214144.1924757-1-jstultz@google.com> Subject: [PATCH] sched/wait: Fix a kthread_park race with wait_woken() From: John Stultz To: LKML Cc: "=?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?=" , Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Daniel Bristot de Oliveira , Valentin Schneider , John Stultz Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arve Hj=C3=B8nnev=C3=A5g kthread_park and wait_woken have a similar race that kthread_stop and wait_woken used to have before it was fixed in cb6538e740d7543cd989128625cf8cac4b471e0a. Extend that fix to also cover kthread_park. Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Juri Lelli Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Steven Rostedt Cc: Ben Segall Cc: Mel Gorman Cc: Daniel Bristot de Oliveira Cc: Valentin Schneider Signed-off-by: Arve Hj=C3=B8nnev=C3=A5g Signed-off-by: John Stultz --- This seemingly slipped by, so I wanted to resend it for review. --- kernel/sched/wait.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c index 133b74730738..a9cf49da884b 100644 --- a/kernel/sched/wait.c +++ b/kernel/sched/wait.c @@ -425,9 +425,9 @@ int autoremove_wake_function(struct wait_queue_entry *w= q_entry, unsigned mode, i } EXPORT_SYMBOL(autoremove_wake_function); =20 -static inline bool is_kthread_should_stop(void) +static inline bool is_kthread_should_stop_or_park(void) { - return (current->flags & PF_KTHREAD) && kthread_should_stop(); + return (current->flags & PF_KTHREAD) && (kthread_should_stop() || kthread= _should_park()); } =20 /* @@ -459,7 +459,7 @@ long wait_woken(struct wait_queue_entry *wq_entry, unsi= gned mode, long timeout) * or woken_wake_function() sees our store to current->state. */ set_current_state(mode); /* A */ - if (!(wq_entry->flags & WQ_FLAG_WOKEN) && !is_kthread_should_stop()) + if (!(wq_entry->flags & WQ_FLAG_WOKEN) && !is_kthread_should_stop_or_park= ()) timeout =3D schedule_timeout(timeout); __set_current_state(TASK_RUNNING); =20 --=20 2.40.1.606.ga4b1b128d6-goog