Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3768436pxb; Sat, 13 Feb 2021 08:33:51 -0800 (PST) X-Google-Smtp-Source: ABdhPJwscewgFIVGIIH5PEcxPLfhQaaKEg1FvWmXX1V0uIDA8LG3g+n7vzwexqVlGfAV3IlTVgha X-Received: by 2002:a17:907:d0b:: with SMTP id gn11mr8127388ejc.144.1613234031631; Sat, 13 Feb 2021 08:33:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613234031; cv=none; d=google.com; s=arc-20160816; b=K3LoI92LVOUjmmYy9CEwOA/dyFGbjEUbTCF6MIMXCpb5LyjHAI4ZimqcZKV5VtopjN NYNk0CyqdV8xajF9TSGWA2Z3KYc/6dzMmwlMjL9CLBuNSgP/istq304aCO5pZXs22kvB d5x29I/64tNNIGtqL+o4SQ7mCqGg7M8K5VKbPpd05YN5bnRHx0UW4mMn7wtEQ2Q1PxEx XvbcGGrhLGKSKV3jeEt/vkgkcHl5227BMkQ7YsEh8gY08kwfJ+Zj9IYX7LcfWPXys9PC 71hK1HjXajLWThqZcJwsTEfzBkhtMligpELf8hw7eanevxxbjM1Tkrh+/aDCm/DXCuDD SG5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=220IuXNDGTlWs77+/HTCZyLRCaD3QbXEeU1t4Zx8E1M=; b=a7GetYZwi6tMJzw16/iann3z8dKln8fBn8ibhL2dGzx/YClL7U4KDI2ki/bRK+Qjqs 9uz8H+eVWlPaDcc07SFC0hEfQn0meQ1LYMGeI8Wtl2xOVulcpiQXwz2CoJLc7ra1q5Dm Cqt/eJuZS4JCmr5cKymFKIsv6Nw2c6hjKirzV6DFjlaicpDPTHUTYhJlPiMD+JFKLGFs YhzQQUeJHVSfm1ppgVMBrCgrd4Q/5dKQhlBHNszRcRzY2+Geg3+kx+jmzEjfiaNw/82g 0h+roRFa0JB3fMeEb8j7eezIQ7Y3HuCdUx6sajJ+60EuroAQlhmGmaFs/7BnpfK3cF72 8H7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=kgnasnZB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f11si9312224edd.393.2021.02.13.08.33.25; Sat, 13 Feb 2021 08:33:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=kgnasnZB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229660AbhBMQc7 (ORCPT + 99 others); Sat, 13 Feb 2021 11:32:59 -0500 Received: from mail.kernel.org ([198.145.29.99]:59808 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229574AbhBMQc6 (ORCPT ); Sat, 13 Feb 2021 11:32:58 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9940964E2C for ; Sat, 13 Feb 2021 16:32:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1613233937; bh=nfPivI676TW1Vyh+48AYclAWuVpk7t0piH1yKqAy+T4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=kgnasnZBwka5FrcUtUMuzU5alzSSg7eCcCSdRhZZK/X2J0KEnAKwzVO/MdIAQKNdl PQcL2ouGanAk7OCCUAHXFEFw3cMrQpbs2LYKVUokZxACJrD086k21C/PXxaBPBeLO4 Bn9v0Xv86blzlepR/Zhd5R7telTrUvyxNvYMFd2RtXVru02c2QEZ779IMhWcxqo0rl si7W0IIefQLaCEU347Kv+O917oiouzte9AKckt/CeRPprMkhecZsB4w4oAHIBma52k AbZ2p9N/ZsxmaD76q3j9f9jE0xZ0jK2+o0lvXZge0xbSJNQEUAdY45a15pdCyPJY5q 1urhH7NZEGrKw== Received: by mail-oi1-f180.google.com with SMTP id f3so3160649oiw.13 for ; Sat, 13 Feb 2021 08:32:17 -0800 (PST) X-Gm-Message-State: AOAM531GT95zz81bWLAF7IIENyzo6/Pl/HF907Y9IYlrWMf6NApURwGO FiuW1dkKRietgwkMel+UIZFJhmU57UrMOa3skOY= X-Received: by 2002:aca:d908:: with SMTP id q8mr3115221oig.67.1613233936881; Sat, 13 Feb 2021 08:32:16 -0800 (PST) MIME-Version: 1.0 References: <24e0652b3afa48cdbf7c83287e43c087@hisilicon.com> <0b766dba0b004ced94131e158cd8e67d@hisilicon.com> In-Reply-To: <0b766dba0b004ced94131e158cd8e67d@hisilicon.com> From: Arnd Bergmann Date: Sat, 13 Feb 2021 17:32:01 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC] IRQ handlers run with some high-priority interrupts(not NMI) enabled on some platform To: "Song Bao Hua (Barry Song)" Cc: "tglx@linutronix.de" , "gregkh@linuxfoundation.org" , "arnd@arndb.de" , "geert@linux-m68k.org" , "funaho@jurai.org" , "philb@gnu.org" , "corbet@lwn.net" , "mingo@redhat.com" , "linux-m68k@lists.linux-m68k.org" , "fthain@telegraphics.com.au" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Feb 13, 2021 at 12:50 AM Song Bao Hua (Barry Song) wrote: > So I was actually trying to warn this unusual case - interrupts > get nested while both in_hardirq() and irqs_disabled() are true. > > diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h > index 7c9d6a2d7e90..b8ca27555c76 100644 > --- a/include/linux/hardirq.h > +++ b/include/linux/hardirq.h > @@ -32,6 +32,7 @@ static __always_inline void rcu_irq_enter_check_tick(void) > */ > #define __irq_enter() \ > do { \ > + WARN_ONCE(in_hardirq() && irqs_disabled(), "nested > interrupts\n"); \ > preempt_count_add(HARDIRQ_OFFSET); \ That seems to be a rather heavyweight change in a critical path. A more useful change might be to implement lockdep support for m68k and see if that warns about any actual problems. I'm not sure what is actually missing for that, but these are the commits that added it for other architectures in the past: 3c4697982982 ("riscv: Enable LOCKDEP_SUPPORT & fixup TRACE_IRQFLAGS_SUPPORT") 000591f1ca33 ("csky: Enable LOCKDEP_SUPPORT") 78cdfb5cf15e ("openrisc: enable LOCKDEP_SUPPORT and irqflags tracing") 8f371c752154 ("xtensa: enable lockdep support") bf2d80966890 ("microblaze: Lockdep support") > And I also think it is better for m68k's arch_irqs_disabled() to > return true only when both low and high priority interrupts are > disabled rather than try to mute this warn in genirq by a weaker > condition: > if (WARN_ONCE(!irqs_disabled(),"irq %u handler %pS enabled interrupts\n", > irq, action->handler)) > local_irq_disable(); > } > > This warn is not activated on m68k because its arch_irqs_disabled() return > true though its high-priority interrupts are still enabled. Then it would just end up always warning when a nested hardirq happens, right? That seems no different to dropping support for nested hardirqs on m68k altogether, which of course is what you suggested already. Arnd