From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C0888C433EF for ; Mon, 16 May 2022 06:53:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239392AbiEPGxe (ORCPT ); Mon, 16 May 2022 02:53:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240499AbiEPGxc (ORCPT ); Mon, 16 May 2022 02:53:32 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA73F3668F; Sun, 15 May 2022 23:53:31 -0700 (PDT) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1652684010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cyYJ2WHlWTrl9zB33+sqWxQ7FgI0MyBHjDAy808aYx8=; b=VTJBnR9iJS2UcJSlk6vOxJB5Z+F1wXmL2BSt3bi+/m/fTunsd0N2musDc+wyIw7iEtIc6S Kkt605axNOMj6SoBBCi73glx0dktXc4wrr/ZpdBuPmrkjDdKgbSRn9c39Lzs3YOlGTIr4m 0YkEprbzBLIqZP1Isca4jQ2Vbj4CNovb+K/lxA5upQ59svtO4PhHZL19qMU8g4YN3stAJ4 TDz25KDHPNEw0bTEenbtblaVhtlXXf7rfZGlz6bAsZZ49LE2/sM/jJ/JKtFAYGGrsmV6me 7Ygj/bc8Ov+uMHfr8Gj0M12IA441dXgMfciE8Aeb8+oqsxCsaj5dSEZ6Q7YOdA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1652684010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cyYJ2WHlWTrl9zB33+sqWxQ7FgI0MyBHjDAy808aYx8=; b=QGKny6r7vUJkTs0dbB1OhnBXWVoMca0t7FKqSIteEyXJZQqpjd4Ibew8D6KO8YK231kcJW oF+f95CUYPwVDeDA== To: Sebastian Andrzej Siewior , Lukas Wunner Cc: Marc Zyngier , Mark Rutland , Jakub Kicinski , Linus Walleij , Bartosz Golaszewski , linux-gpio@vger.kernel.org, Octavian Purdila , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] genirq: Deduplicate WARN_ON_ONCE() in generic_handle_domain_irq() In-Reply-To: References: Date: Mon, 16 May 2022 08:53:29 +0200 Message-ID: <87ilq6q87q.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org On Mon, May 16 2022 at 08:29, Sebastian Andrzej Siewior wrote: > On 2022-05-10 09:56:05 [+0200], Lukas Wunner wrote: >> An example for irqchips where the warning is false positive are >> USB-attached GPIO controllers such as drivers/gpio/gpio-dln2.c: > > They are not false positives because=E2=80=A6 > >> USB gadgets are incapable of directly signaling an interrupt because >> they cannot initiate a bus transaction by themselves. All communication >> on the bus is initiated by the host controller, which polls a gadget's >> Interrupt Endpoint in regular intervals. If an interrupt is pending, >> that information is passed up the stack in softirq context, from which >> a hardirq is synthesized via generic_handle_domain_irq(). > > they tell you that the context is wrong. Why? These handlers can be called from any context, really. Yes. They need to be called with interrupts disabled, but that's it. The warning is checking hard interrupt context unconditionally. > From looking at gpio-dln2 this is called from USB URB's callback which > is softirq. In the end dln2_gpio_event() is invoked while > dln2_dev::event_cb_lock is acquired. That lock is acquired by > disabling interrupts which is what gets the locking right for > generic_handle_domain_irq(). If that lock lifted to spin_lock_bh() > (because it is always in urb's calback context and all HCDs complete > in one context unlike now) then this breaks. Yes, but that's a different problem. > And PREEMPT_RT is broken already. Therefore, last week, I've been > promoting generic_handle_domain_irq_safe() > https://lkml.kernel.org/r/YnkfWFzvusFFktSt@linutronix.de Well, that's just a wrapper which adds the local_irq_save(), so it's not any different from having the local_irq_save() at the callsite, unless I'm missing something. Thanks, tglx From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4D741C433EF for ; Mon, 16 May 2022 06:54:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=e7/lVqWQzJNS69MytjhwABtp8gwVXWonXqTYl1IWdME=; b=ce8JpEMSlhXfFU oh4UHiRgn1AthISnsHmjhPwlyDIbVdjAv2fu4yGFqY228h8WhR7z5uOlWCMoLDMFDSYXj3M+ZSGYZ guYMHyEbtZOesJFxm/PulhdJjJx7CvazC28YhKkAPJdVLZdysqd2t9dPqnaYivRYCaPk3+2MJg5cv /bIFgiXhfZrAyEMh8gCSynbxjzjyTwiIU4EQrLj16rJKldw+dmbONiPGQVSGWl7WTd8s9jWNvYAGj qP8m1F6kpYZV5jgQ6mr7L54OQS+ZI7y64snXnKa8UAiiLUGL/i5q6Reieegj1FJ8szdyAQxNLH/wh MvbQS/Z+VZaTckoVPgtw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqUbq-006GX5-Dr; Mon, 16 May 2022 06:53:38 +0000 Received: from galois.linutronix.de ([193.142.43.55]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqUbn-006GW1-42 for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 06:53:36 +0000 From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1652684010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cyYJ2WHlWTrl9zB33+sqWxQ7FgI0MyBHjDAy808aYx8=; b=VTJBnR9iJS2UcJSlk6vOxJB5Z+F1wXmL2BSt3bi+/m/fTunsd0N2musDc+wyIw7iEtIc6S Kkt605axNOMj6SoBBCi73glx0dktXc4wrr/ZpdBuPmrkjDdKgbSRn9c39Lzs3YOlGTIr4m 0YkEprbzBLIqZP1Isca4jQ2Vbj4CNovb+K/lxA5upQ59svtO4PhHZL19qMU8g4YN3stAJ4 TDz25KDHPNEw0bTEenbtblaVhtlXXf7rfZGlz6bAsZZ49LE2/sM/jJ/JKtFAYGGrsmV6me 7Ygj/bc8Ov+uMHfr8Gj0M12IA441dXgMfciE8Aeb8+oqsxCsaj5dSEZ6Q7YOdA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1652684010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cyYJ2WHlWTrl9zB33+sqWxQ7FgI0MyBHjDAy808aYx8=; b=QGKny6r7vUJkTs0dbB1OhnBXWVoMca0t7FKqSIteEyXJZQqpjd4Ibew8D6KO8YK231kcJW oF+f95CUYPwVDeDA== To: Sebastian Andrzej Siewior , Lukas Wunner Cc: Marc Zyngier , Mark Rutland , Jakub Kicinski , Linus Walleij , Bartosz Golaszewski , linux-gpio@vger.kernel.org, Octavian Purdila , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] genirq: Deduplicate WARN_ON_ONCE() in generic_handle_domain_irq() In-Reply-To: References: Date: Mon, 16 May 2022 08:53:29 +0200 Message-ID: <87ilq6q87q.ffs@tglx> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220515_235335_346342_47092672 X-CRM114-Status: GOOD ( 15.11 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCBNYXkgMTYgMjAyMiBhdCAwODoyOSwgU2ViYXN0aWFuIEFuZHJ6ZWogU2lld2lvciB3 cm90ZToKCj4gT24gMjAyMi0wNS0xMCAwOTo1NjowNSBbKzAyMDBdLCBMdWthcyBXdW5uZXIgd3Jv dGU6Cj4+IEFuIGV4YW1wbGUgZm9yIGlycWNoaXBzIHdoZXJlIHRoZSB3YXJuaW5nIGlzIGZhbHNl IHBvc2l0aXZlIGFyZQo+PiBVU0ItYXR0YWNoZWQgR1BJTyBjb250cm9sbGVycyBzdWNoIGFzIGRy aXZlcnMvZ3Bpby9ncGlvLWRsbjIuYzoKPgo+IFRoZXkgYXJlIG5vdCBmYWxzZSBwb3NpdGl2ZXMg YmVjYXVzZeKApgo+Cj4+IFVTQiBnYWRnZXRzIGFyZSBpbmNhcGFibGUgb2YgZGlyZWN0bHkgc2ln bmFsaW5nIGFuIGludGVycnVwdCBiZWNhdXNlCj4+IHRoZXkgY2Fubm90IGluaXRpYXRlIGEgYnVz IHRyYW5zYWN0aW9uIGJ5IHRoZW1zZWx2ZXMuICBBbGwgY29tbXVuaWNhdGlvbgo+PiBvbiB0aGUg YnVzIGlzIGluaXRpYXRlZCBieSB0aGUgaG9zdCBjb250cm9sbGVyLCB3aGljaCBwb2xscyBhIGdh ZGdldCdzCj4+IEludGVycnVwdCBFbmRwb2ludCBpbiByZWd1bGFyIGludGVydmFscy4gIElmIGFu IGludGVycnVwdCBpcyBwZW5kaW5nLAo+PiB0aGF0IGluZm9ybWF0aW9uIGlzIHBhc3NlZCB1cCB0 aGUgc3RhY2sgaW4gc29mdGlycSBjb250ZXh0LCBmcm9tIHdoaWNoCj4+IGEgaGFyZGlycSBpcyBz eW50aGVzaXplZCB2aWEgZ2VuZXJpY19oYW5kbGVfZG9tYWluX2lycSgpLgo+Cj4gdGhleSB0ZWxs IHlvdSB0aGF0IHRoZSBjb250ZXh0IGlzIHdyb25nLgoKV2h5PyBUaGVzZSBoYW5kbGVycyBjYW4g YmUgY2FsbGVkIGZyb20gYW55IGNvbnRleHQsIHJlYWxseS4gWWVzLiBUaGV5Cm5lZWQgdG8gYmUg Y2FsbGVkIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZCwgYnV0IHRoYXQncyBpdC4gVGhlIHdhcm5p bmcKaXMgY2hlY2tpbmcgaGFyZCBpbnRlcnJ1cHQgY29udGV4dCB1bmNvbmRpdGlvbmFsbHkuCgo+ IEZyb20gbG9va2luZyBhdCBncGlvLWRsbjIgdGhpcyBpcyBjYWxsZWQgZnJvbSBVU0IgVVJCJ3Mg Y2FsbGJhY2sgd2hpY2gKPiBpcyBzb2Z0aXJxLiBJbiB0aGUgZW5kIGRsbjJfZ3Bpb19ldmVudCgp IGlzIGludm9rZWQgd2hpbGUKPiBkbG4yX2Rldjo6ZXZlbnRfY2JfbG9jayBpcyBhY3F1aXJlZC4g IFRoYXQgbG9jayBpcyBhY3F1aXJlZCBieQo+IGRpc2FibGluZyBpbnRlcnJ1cHRzIHdoaWNoIGlz IHdoYXQgZ2V0cyB0aGUgbG9ja2luZyByaWdodCBmb3IKPiBnZW5lcmljX2hhbmRsZV9kb21haW5f aXJxKCkuIElmIHRoYXQgbG9jayBsaWZ0ZWQgdG8gc3Bpbl9sb2NrX2JoKCkKPiAoYmVjYXVzZSBp dCBpcyBhbHdheXMgaW4gdXJiJ3MgY2FsYmFjayBjb250ZXh0IGFuZCBhbGwgSENEcyBjb21wbGV0 ZQo+IGluIG9uZSBjb250ZXh0IHVubGlrZSBub3cpIHRoZW4gdGhpcyBicmVha3MuCgpZZXMsIGJ1 dCB0aGF0J3MgYSBkaWZmZXJlbnQgcHJvYmxlbS4KCj4gQW5kIFBSRUVNUFRfUlQgaXMgYnJva2Vu IGFscmVhZHkuIFRoZXJlZm9yZSwgbGFzdCB3ZWVrLCBJJ3ZlIGJlZW4KPiBwcm9tb3RpbmcgZ2Vu ZXJpY19oYW5kbGVfZG9tYWluX2lycV9zYWZlKCkKPiBodHRwczovL2xrbWwua2VybmVsLm9yZy9y L1lua2ZXRnp2dXNGRmt0U3RAbGludXRyb25peC5kZQoKV2VsbCwgdGhhdCdzIGp1c3QgYSB3cmFw cGVyIHdoaWNoIGFkZHMgdGhlIGxvY2FsX2lycV9zYXZlKCksIHNvIGl0J3Mgbm90CmFueSBkaWZm ZXJlbnQgZnJvbSBoYXZpbmcgdGhlIGxvY2FsX2lycV9zYXZlKCkgYXQgdGhlIGNhbGxzaXRlLCB1 bmxlc3MKSSdtIG1pc3Npbmcgc29tZXRoaW5nLgoKVGhhbmtzLAoKICAgICAgICB0Z2x4CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==