Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp4872245imd; Tue, 30 Oct 2018 08:36:20 -0700 (PDT) X-Google-Smtp-Source: AJdET5ey+IZeNBKt7onpNFtc0D704Om4pLpLAq3Ypq9hoaO+1lLi0qVOMwj5vf4aSvHTwgaBxR1v X-Received: by 2002:a62:b90f:: with SMTP id z15-v6mr3481512pfe.171.1540913780052; Tue, 30 Oct 2018 08:36:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540913780; cv=none; d=google.com; s=arc-20160816; b=s1prMr6b3d7zRrFuoM8DJTj+4h+FNcFPlVvYioAxSH2dSuJ7SNbJAw9GIQDvNwaO90 13Ztfnz6wLtQLjXgF9ajq+3iROMnzRZMVGxOxzuxQYRoXBy7glAXkGW2QYoXQg8ioRyN EYgM3jcCtslGPclsMpBsZ1rKTHkjcyIh5jWDYD8+0fj3kPAXQ66fSXXufl62V53Z+4oO NgifMzKsqgaRn2KfSyOWsHBUkSlCNAP1d5Vlu1DSf0N+Qinf5CXxaKvA0/KMAmKUv1Vd q59XOVDc+ohUHROrlKAKiYzOcpNBp0dejumKnzSbmA5fPgR2KOO3txBDgY6xawam0WXh cWqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=JrT+GY2FMwB2T1XAI7yMtLPtyidWS9RM37PHU0M8ADE=; b=wHrgA8rk8elmc2bw0M8Ou7QNiw+23jce9vnbvPLKVl/uZM7+emu32lKWvBZBUJ1mmb lftVTej3We6A2tYUX0BYjgrQKlPqYVcRRA89CoeOtgUuokUc0BHJNyvgKXIwI06Pit67 Rz93lVvs456Fs/F6UsXNjw73uZ4/+k6ROmRjwtmDEVROZlES0mmo/1OUn4xswQNW8ens pnkuT0CoNpbYBcmJlnU49v4lujmO3hBs1NFewvQG6oECXFJ7u5ciIcYxff4N1aZvL75P 9+b7sTU1dlCDCx6E0swCRT7Lrezq3YE+PLie2snfZf/nHP7VmUYFn/JYjdyCgHl06yPJ 6j9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=hrjdgZYK; 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 68-v6si2513682pla.173.2018.10.30.08.36.02; Tue, 30 Oct 2018 08:36:20 -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; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=hrjdgZYK; 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 S1727590AbeJaA1u (ORCPT + 99 others); Tue, 30 Oct 2018 20:27:50 -0400 Received: from bombadil.infradead.org ([198.137.202.133]:33354 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725988AbeJaA1u (ORCPT ); Tue, 30 Oct 2018 20:27:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=JrT+GY2FMwB2T1XAI7yMtLPtyidWS9RM37PHU0M8ADE=; b=hrjdgZYKhW66jsqwqYy7iBEqT aNllxbN4/e8ECyE0JYYVlRz4hYMQq+5XyXBhJug9T7NXVMGsZYNnB48zQ5AONXgGCCz5pSF7PKDGv pUVDc3Gfy6dNIDOhDp3hygtwI+6Ayy/kWZdsh+gXrZwiOSnojSmqIpKvUnWw65wIWG/RWwAdU+PXE ybavT2cUzBF09n3j7ot0t/xu+zRu2FHWKXET0xypzw3UeDhmVbOVREEUYAxmV9gYCr96vhkDYDukA /HU86umn8HQtqmSEHxnQN9yJjjim6IzloRma9Rh3rDily9mqzwc2/lKjda/4VtIWu1flnKNK/ibTj tmapDlxkw==; Received: from [24.132.217.100] (helo=hirez.programming.kicks-ass.net) by bombadil.infradead.org with esmtpsa (Exim 4.90_1 #2 (Red Hat Linux)) id 1gHPLh-000790-S1; Tue, 30 Oct 2018 08:26:51 +0000 Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000) id 47C7E202A40A3; Tue, 30 Oct 2018 09:25:25 +0100 (CET) Date: Tue, 30 Oct 2018 09:25:25 +0100 From: Peter Zijlstra To: Douglas Anderson Cc: Jason Wessel , Daniel Thompson , tglx@linutronix.de, mingo@kernel.org, gregkh@linuxfoundation.org, linux-arm-msm@vger.kernel.org, kgdb-bugreport@lists.sourceforge.net, linux-mips@linux-mips.org, linux-sh@vger.kernel.org, linux-hexagon@vger.kernel.org, frederic@kernel.org, riel@surriel.com, linux-kernel@vger.kernel.org, luto@kernel.org, sparclinux@vger.kernel.org, linux-snps-arc@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 6/7] smp: Don't yell about IRQs disabled in kgdb_roundup_cpus() Message-ID: <20181030082525.GA13436@hirez.programming.kicks-ass.net> References: <20181029180707.207546-1-dianders@chromium.org> <20181029180707.207546-7-dianders@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181029180707.207546-7-dianders@chromium.org> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Oct 29, 2018 at 11:07:06AM -0700, Douglas Anderson wrote: > In kgdb_roundup_cpus() we've got code that looks like: > local_irq_enable(); > smp_call_function(kgdb_call_nmi_hook, NULL, 0); > local_irq_disable(); > Let's add kgdb to the list of reasons not to warn in > smp_call_function_many(). That will allow us (in a future patch) to > stop calling local_irq_enable() which will get rid of the original > splat. > > NOTE: with this change comes the obvious question: will we start > deadlocking more often now when we drop into the debugger. I can't > say that for sure one way or the other, but the fact that we do the > same logic for "oops_in_progress" makes me feel like it shouldn't > happen too often. Also note that the old logic of turning on > interrupts temporarily wasn't exactly safe since (I presume) that > could have violated spin_lock_irqsave() semantics and ended up with a > deadlock of its own. How is any of that not utterly and terminally broken? > @@ -413,7 +414,8 @@ void smp_call_function_many(const struct cpumask *mask, > * can't happen. > */ > WARN_ON_ONCE(cpu_online(this_cpu) && irqs_disabled() > - && !oops_in_progress && !early_boot_irqs_disabled); > + && !oops_in_progress && !early_boot_irqs_disabled > + && !in_dbg_master()); > > /* Try to fastpath. So, what's a CPU they want? Ignoring this one. */ > cpu = cpumask_first_and(mask, cpu_online_mask); Not a fan of this. There is a distinct difference between oops_in_progress and dropping into kgdb in that you don't ever expect to return/survive oopses, whereas we do expect to survive kgdb. Also, how does kgdb work at all without actual NMIs ? So no, NAK on this.