Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp354155imm; Fri, 3 Aug 2018 04:42:57 -0700 (PDT) X-Google-Smtp-Source: AAOMgpd+Ul3qApnMZJKSBYLCNCbmKlvp1DwNJ1MkcBtccbzyLXftMAqrotktAFfmnSdXUEk9qmrC X-Received: by 2002:a62:930c:: with SMTP id b12-v6mr4060453pfe.193.1533296577300; Fri, 03 Aug 2018 04:42:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533296577; cv=none; d=google.com; s=arc-20160816; b=mxh8DuxdxqkmQkPalqjGQMIQ3jw/BhYeIpniOqRBK2GFd/tAdR/9XEOXPBv//C2zIV p7251lJn0lUCrBxdYli84XBFMhgslfAK9NSsJ1+PUqS6EeCtnNGs7ook7ntSW3LdZmom dt/Hy6TtZlqz0ODf5j0wxmAaCTs06SsRUQUOQgqAWVpC9OjycXwHxJwkJgHE1BF/gu5e zUPiNWTt6039mUQJ2wf+5u5TDaGrZVkA+LnFALUloATq2NLnIxoeriqwafNdhVX/EFsj ZHu5NwMHTJ1yzsqHUajCPIjPccYpyn/HAQ8M+G/D1kvNt9T9FudIhP1YCK6X8dEu+5aH NWeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date :arc-authentication-results; bh=MGX0UULRnoYs2RsVbnjXZAe4sdHm9D4src4cZ/+fRT4=; b=IYbYkAa05QtTeBblCGGRQdn8zQLx0jknQqIAotMhVJwznrrCJIWhemTe+aMxIANqNT UdbEUlfCGpKOwxG/pWY34/N0PgZB6nkiIYSIvbK232MzeeR//zvk/cqO4W9xLV3ov1Kq P+7xUiK/e+M+ex4IW3ZopnhvhODwJqXNQzmXTGHIaxWkNZmKWVBStEKf9L2Gh0+fPpNQ yLcRbkjQ8Bo5tVQb5YPOdajvj2yR89aHHjdQ/TCitD+o9maOZFdxOTOQz678+K4+jmNN V5awVNb6DD5W1zdWgTR9zPUKkbxWLYL/2m4U5DYmMnVbUXXNFcunv0Edr0vInu2BZVk1 79Xw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n1-v6si3876873pgv.641.2018.08.03.04.42.42; Fri, 03 Aug 2018 04:42:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727464AbeHCNhR (ORCPT + 99 others); Fri, 3 Aug 2018 09:37:17 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:39634 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727257AbeHCNhQ (ORCPT ); Fri, 3 Aug 2018 09:37:16 -0400 Received: from hsi-kbw-5-158-153-52.hsi19.kabel-badenwuerttemberg.de ([5.158.153.52] helo=nanos.tec.linutronix.de) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1flYSH-0007Gp-Ok; Fri, 03 Aug 2018 13:41:13 +0200 Date: Fri, 3 Aug 2018 13:41:13 +0200 (CEST) From: Thomas Gleixner To: Peter Zijlstra cc: Sodagudi Prasad , mingo@kernel.org, gregkh@linuxfoundation.org, bigeasy@linutronix.de, isaacm@codeaurora.org, linux-kernel@vger.kernel.org Subject: Re: cpu stopper threads and setaffinity leads to deadlock In-Reply-To: <20180802094908.GK2494@hirez.programming.kicks-ass.net> Message-ID: References: <24eebe1d874cb8e3b9a18087554544fa@codeaurora.org> <20180802094908.GK2494@hirez.programming.kicks-ass.net> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Prasad. On Thu, 2 Aug 2018, Peter Zijlstra wrote: > > So why didn't you do the 'obvious' parallel to what you did for > cpu_stop_queue_two_works(), namely: Is that patch fixing the issue for you? > --- a/kernel/stop_machine.c > +++ b/kernel/stop_machine.c > @@ -81,6 +81,7 @@ static bool cpu_stop_queue_work(unsigned > unsigned long flags; > bool enabled; > > + preempt_disable(); > raw_spin_lock_irqsave(&stopper->lock, flags); > enabled = stopper->enabled; > if (enabled) > @@ -90,6 +91,7 @@ static bool cpu_stop_queue_work(unsigned > raw_spin_unlock_irqrestore(&stopper->lock, flags); > > wake_up_q(&wakeq); > + preempt_enable(); > > return enabled; > } >