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 X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E9F1EC433B4 for ; Thu, 22 Apr 2021 12:29:30 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 36B2C61452 for ; Thu, 22 Apr 2021 12:29:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 36B2C61452 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Subject:Cc:To: From:Message-ID:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=xTcsqCG8f3lNbHJSD1FfVM52f15MdTS/71HgcrkoG58=; b=lAc4VqDtoayYGBt/rFZn61FKJ 45z9iy+mQ6MtuTkVgtf3slOdZZ7SZ9sPMAiryZJkkSXwWHyvKbSu6ljd+ttchIIoo9pg3cHZR9t2+ weetzjreV4lPHeb8LvehCBnsI9kwMcINDqfh3TKwpRife6kv8I7OrKtNP4kN9Khn4CIi03fDdLWTd 6rYcFferirxL71lyc+99nIcuLD0uZlOP0hBlnre/zCNXStxXMrSCapPn3pu+aFxnyOp0di7dnzSVA I11HxBJWqDvLnTdy7ZmQ7+SvLtORfHTccwC/X/4ZHCEXi4ErWtJ0kXl1TPUCIMgM80WaGmobE7YTl mUH7lre9g==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lZYQZ-00GhTu-24; Thu, 22 Apr 2021 12:27:27 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lZYQT-00GhTE-06 for linux-arm-kernel@desiato.infradead.org; Thu, 22 Apr 2021 12:27:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Subject:Cc:To:From: Message-ID:Date:Sender:Reply-To:Content-ID:Content-Description; bh=6SBJVtvvbWrueOG3H3LZLvNoefXbyXt3orXwzl9hl7A=; b=VitQYKLvRPvgXQMrx06smDT+sL 4J3ynktrzOjUtWrgYcIjftQu1ZkK2H1S9OlnYZ+cPxSTXYY05YIdF5io5MJuP194rwxoZSfr1XCjO aQmI5rUEF4iK4Kzmmm0MQQ+HbL6E5t9bnZTa87eb6m5NwqFenDTDyV4zk2SahANDHzp8LEnS4G6h7 MVNiM+y+azdI4HyIPipLVeZ8f1XbdkgirVlrOoiUS6x9ruqcR63hN9eRkAqSneKY+VpAED5FwH3HJ 80LnA9caEj4dc2/x8IKg0pI+6d5UaPVO2F+KBpN4RG3ViAskUkTVaiEk+x7tS/3H+VsAnTlESHfuE BZysF46A==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lZYQP-00DfoT-OR for linux-arm-kernel@lists.infradead.org; Thu, 22 Apr 2021 12:27:19 +0000 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 348D361139; Thu, 22 Apr 2021 12:27:16 +0000 (UTC) Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1lZYQM-008sx2-4X; Thu, 22 Apr 2021 13:27:14 +0100 Date: Thu, 22 Apr 2021 13:27:06 +0100 Message-ID: <875z0eijxh.wl-maz@kernel.org> From: Marc Zyngier To: He Ying Cc: , , , , , Mark Rutland Subject: Re: [RFC PATCH] irqchip/gic-v3: Do not enable irqs when handling spurious interrups In-Reply-To: References: <20210416062217.25157-1-heying24@huawei.com> <87y2dis4d7.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: heying24@huawei.com, tglx@linutronix.de, julien.thierry.kdev@gmail.com, catalin.marinas@arm.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, mark.rutland@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210422_052717_908843_815AD32F X-CRM114-Status: GOOD ( 55.90 ) 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 T24gU2F0LCAxNyBBcHIgMjAyMSAwMzowMTo1NCArMDEwMCwKSGUgWWluZyA8aGV5aW5nMjRAaHVh d2VpLmNvbT4gd3JvdGU6Cj4gCj4gSGVsbG8gTWFyYywKPiAKPiAKPiDlnKggMjAyMS80LzE2IDIy OjE1LCBNYXJjIFp5bmdpZXIg5YaZ6YGTOgo+ID4gWysgTWFya10KPiA+IAo+ID4gT24gRnJpLCAx NiBBcHIgMjAyMSAwNzoyMjoxNyArMDEwMCwKPiA+IEhlIFlpbmcgPGhleWluZzI0QGh1YXdlaS5j b20+IHdyb3RlOgo+ID4+IFdlIGZvdW5kIHRoaXMgcHJvYmxlbSBpbiBvdXIga2VybmVsIHNyYyB0 cmVlOgo+ID4+IAo+ID4+IFsgICAxNC44MTYyMzFdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0t LS0tLS0tLS0tLQo+ID4+IFsgICAxNC44MTYyMzFdIGtlcm5lbCBCVUcgYXQgaXJxLmM6OTkhCj4g Pj4gWyAgIDE0LjgxNjIzMl0gSW50ZXJuYWwgZXJyb3I6IE9vcHMgLSBCVUc6IDAgWyMxXSBTTVAK PiA+PiBbICAgMTQuODE2MjMyXSBQcm9jZXNzIHN3YXBwZXIvMCAocGlkOiAwLCBzdGFjayBsaW1p dCA9IDB4KF9fX19wdHJ2YWxfX19fKSkKPiA+PiBbICAgMTQuODE2MjMzXSBDUFU6IDAgUElEOiAw IENvbW06IHN3YXBwZXIvMCBUYWludGVkOiBHICAgICAgICAgICBPICAgICAgNC4xOS45NS0xLmgx LkFPUzIuMC5hYXJjaDY0ICMxNAo+ID4+IFsgICAxNC44MTYyMzNdIEhhcmR3YXJlIG5hbWU6IGV2 YiAoRFQpCj4gPj4gWyAgIDE0LjgxNjIzNF0gcHN0YXRlOiA4MDQwMDA4NSAoTnpjdiBkYUlmICtQ QU4gLVVBTykKPiA+PiBbICAgMTQuODE2MjM0XSBwYyA6IGFzbV9ubWlfZW50ZXIrMHg5NC8weDk4 Cj4gPj4gWyAgIDE0LjgxNjIzNV0gbHIgOiBhc21fbm1pX2VudGVyKzB4MTgvMHg5OAo+ID4+IFsg ICAxNC44MTYyMzVdIHNwIDogZmZmZjAwMDAwODAwM2M1MAo+ID4+IFsgICAxNC44MTYyMzVdIHBt cl9zYXZlOiAwMDAwMDA3MAo+ID4+IFsgICAxNC44MTYyMzddIHgyOTogZmZmZjAwMDAwODAwM2M1 MCB4Mjg6IGZmZmYwMDAwMDk1ZjU2YzAKPiA+PiBbICAgMTQuODE2MjM4XSB4Mjc6IDAwMDAwMDAw MDAwMDAwMDAgeDI2OiBmZmZmMDAwMDA4MDA0MDAwCj4gPj4gWyAgIDE0LjgxNjIzOV0geDI1OiAw MDAwMDAwMDAxNWUwMDAwIHgyNDogZmZmZjgwMDhmYjkxNjAwMAo+ID4+IFsgICAxNC44MTYyNDBd IHgyMzogMDAwMDAwMDAyMDQwMDAwNSB4MjI6IGZmZmYwMDAwMDgwODE3Y2MKPiA+PiBbICAgMTQu ODE2MjQxXSB4MjE6IGZmZmYwMDAwMDgwMDNkYTAgeDIwOiAwMDAwMDAwMDAwMDAwMDYwCj4gPj4g WyAgIDE0LjgxNjI0Ml0geDE5OiAwMDAwMDAwMDAwMDAwM2ZmIHgxODogZmZmZmZmZmZmZmZmZmZm Zgo+ID4+IFsgICAxNC44MTYyNDNdIHgxNzogMDAwMDAwMDAwMDAwMDAwOCB4MTY6IDAwM2QwOTAw MDAwMDAwMDAKPiA+PiBbICAgMTQuODE2MjQ0XSB4MTU6IGZmZmYwMDAwMDk1ZWE2YzggeDE0OiBm ZmZmODAwOGZmZjVhYjQwCj4gPj4gWyAgIDE0LjgxNjI0NF0geDEzOiBmZmZmODAwOGZmZjU4Yjlk IHgxMjogMDAwMDAwMDAwMDAwMDAwMAo+ID4+IFsgICAxNC44MTYyNDVdIHgxMTogZmZmZjAwMDAw OGM4YTIwMCB4MTA6IDAwMDAwMDAwOGUzMWZjYTUKPiA+PiBbICAgMTQuODE2MjQ2XSB4OSA6IGZm ZmYwMDAwMDhjOGEyMDggeDggOiAwMDAwMDAwMDAwMDAwMDBmCj4gPj4gWyAgIDE0LjgxNjI0N10g eDcgOiAwMDAwMDAwMDAwMDAwMDA0IHg2IDogZmZmZjgwMDhmZmY1OGI5ZQo+ID4+IFsgICAxNC44 MTYyNDhdIHg1IDogMDAwMDAwMDAwMDAwMDAwMCB4NCA6IDAwMDAwMDAwODAwMDAwMDAKPiA+PiBb ICAgMTQuODE2MjQ5XSB4MyA6IDAwMDAwMDAwMDAwMDAwMDAgeDIgOiAwMDAwMDAwMDgwMDAwMDAw Cj4gPj4gWyAgIDE0LjgxNjI1MF0geDEgOiAwMDAwMDAwMDAwMTIwMDAwIHgwIDogZmZmZjAwMDAw OTVmNTZjMAo+ID4+IFsgICAxNC44MTYyNTFdIENhbGwgdHJhY2U6Cj4gPj4gWyAgIDE0LjgxNjI1 MV0gIGFzbV9ubWlfZW50ZXIrMHg5NC8weDk4Cj4gPj4gWyAgIDE0LjgxNjI1MV0gIGVsMV9pcnEr MHg4Yy8weDE4MAo+ID4+IFsgICAxNC44MTYyNTJdICBnaWNfaGFuZGxlX2lycSsweGJjLzB4MmU0 Cj4gPj4gWyAgIDE0LjgxNjI1Ml0gIGVsMV9pcnErMHhjYy8weDE4MAo+ID4+IFsgICAxNC44MTYy NTNdICBhcmNoX3RpbWVyX2hhbmRsZXJfdmlydCsweDM4LzB4NTgKPiA+PiBbICAgMTQuODE2MjUz XSAgaGFuZGxlX3BlcmNwdV9kZXZpZF9pcnErMHg5MC8weDI0MAo+ID4+IFsgICAxNC44MTYyNTNd ICBnZW5lcmljX2hhbmRsZV9pcnErMHgzNC8weDUwCj4gPj4gWyAgIDE0LjgxNjI1NF0gIF9faGFu ZGxlX2RvbWFpbl9pcnErMHg2OC8weGMwCj4gPj4gWyAgIDE0LjgxNjI1NF0gIGdpY19oYW5kbGVf aXJxKzB4ZjgvMHgyZTQKPiA+PiBbICAgMTQuODE2MjU1XSAgZWwxX2lycSsweGNjLzB4MTgwCj4g Pj4gWyAgIDE0LjgxNjI1NV0gIGFyY2hfY3B1X2lkbGUrMHgzNC8weDFjOAo+ID4+IFsgICAxNC44 MTYyNTVdICBkZWZhdWx0X2lkbGVfY2FsbCsweDI0LzB4NDQKPiA+PiBbICAgMTQuODE2MjU2XSAg ZG9faWRsZSsweDFkMC8weDJjOAo+ID4+IFsgICAxNC44MTYyNTZdICBjcHVfc3RhcnR1cF9lbnRy eSsweDI4LzB4MzAKPiA+PiBbICAgMTQuODE2MjU2XSAgcmVzdF9pbml0KzB4YjgvMHhjOAo+ID4+ IFsgICAxNC44MTYyNTddICBzdGFydF9rZXJuZWwrMHg0YzgvMHg0ZjQKPiA+PiBbICAgMTQuODE2 MjU3XSBDb2RlOiA5NDA1ODdmMSBkNTM4NDEwMCBiOTQwMTAwMSAzNmE3ZmQwMSAoZDQyMTAwMDAp Cj4gPj4gWyAgIDE0LjgxNjI1OF0gTW9kdWxlcyBsaW5rZWQgaW46IHN0YXJ0X2RwKE8pIHNtZXRo KE8pCj4gPj4gWyAgIDE1LjEwMzA5Ml0gLS0tWyBlbmQgdHJhY2UgNzAxNzUzOTU2Y2IxNGFhOCBd LS0tCj4gPj4gWyAgIDE1LjEwMzA5M10gS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFs IGV4Y2VwdGlvbiBpbiBpbnRlcnJ1cHQKPiA+PiBbICAgMTUuMTAzMDk5XSBTTVA6IHN0b3BwaW5n IHNlY29uZGFyeSBDUFVzCj4gPj4gWyAgIDE1LjEwMzEwMF0gS2VybmVsIE9mZnNldDogZGlzYWJs ZWQKPiA+PiBbICAgMTUuMTAzMTAwXSBDUFUgZmVhdHVyZXM6IDB4MzYsYTI0MDAyMTgKPiA+PiBb ICAgMTUuMTAzMTAwXSBNZW1vcnkgTGltaXQ6IG5vbmUKPiA+IFVyZ2guLi4KPiA+IAo+ID4+IE91 ciBrZXJuZWwgc3JjIHRyZWUgaXMgYmFzZWQgb24gNC4xOS45NSBhbmQgYmFja3BvcnRzIGFybTY0 IHBzZXVkby1OTUkKPiA+PiBwYXRjaGVzIGJ1dCBkb2Vzbid0IHN1cHBvcnQgbmVzdGVkIE5NSS4g SXRzIHRvcCByZWxhdGl2ZSBjb21taXQgaXMKPiA+PiBjb21taXQgMTdjZTMwMmYzMTE3ICgiYXJt NjQ6IEZpeCBpbnRlcnJ1cHQgdHJhY2luZyBpbiB0aGUgcHJlc2VuY2Ugb2YgTk1JcyIpLgo+ID4g Q2FuIHlvdSBwbGVhc2UgcmVwcm9kdWNlIGl0IHdpdGggbWFpbmxpbmUgYW5kIHdpdGhvdXQgYW55 IGJhY2twb3J0Pwo+ID4gSXQgaXMgaGFyZCB0byByZWFzb24gYWJvdXQgc29tZXRoaW5nIHRoYXQg aXNuJ3QgYSB2YW5pbGxhIGtlcm5lbC4KPiAKPiBJIHRoaW5rIG91ciBrZXJuZWwgaXMgcXVpdGUg bGlrZSB2NS4zIG1haW5saW5lLiBSZXByb2R1Y2luZyBpdCBpbgo+IHY1LjMgbWFpbmxpbmUgbWF5 IGJlIGEgbGl0dGxlIGRpZmZpY3VsdCBmb3IgdXMgYmVjYXVzZSBvdXIgcHJvZHVjdAo+IG5lZWRz IHNvbWUgbW9yZSBzZWxmIGRldmVsb3BlZCBwYXRjaGVzIHRvIHdvcmsuCgpJIGRvbid0IHJlYWxs eSBjYXJlIGFib3V0IDUuMy4gV2hhdCBJIGNhcmUgYWJvdXQgaXMgdGhlIHRpcCBvZiB0aGUKdHJl ZSwgYW5kIGFueXRoaW5nIHdlIGZpeCB0aGVyZSBjYW4gdHJpY2tsZSBkb3duIHRvIHRoZSBwcmV2 aW91cwpzdGFibGUgcmVsZWFzZXMuCgo+ID4+IEkgbG9vayBpbnRvIHRoaXMgaXNzdWUgYW5kIGZp bmQgdGhhdCBpdCdzIGNhdXNlZCBieSAnQlVHX09OKGluX25taSgpKScKPiA+PiBpbiBubWlfZW50 ZXIoKS4gRnJvbSB0aGUgY2FsbCB0cmFjZSwgd2UgZmluZCB0d28gJ2VsMV9pcnFzJyB3aGljaAo+ ID4+IG1lYW5zIGFuIGludGVycnVwdCBwcmVlbXB0cyB0aGUgb3RoZXIgb25lIGFuZCB0aGUgbmV3 IG9uZSBpcyBhbiBOTUkuCj4gPj4gRnVydGhlcm1vcmUsIGJ5IGFkZGluZyBzb21lIHByaW50cywg d2UgZmluZCB0aGUgZmlyc3QgaXJxIGFsc28gY2FsbHMKPiA+PiBubWlfZW50ZXIoKSwgYnV0IGl0 cyBwcmlvcml0eSBpcyBub3QgR0lDRF9JTlRfTk1JX1BSSSBhbmQgaXRzIGlycSBudW1iZXIKPiA+ PiBpcyAxMDIzLiBJdCBlbmFibGVzIGlycSBieSBjYWxsaW5nIGdpY19hcmNoX2VuYWJsZV9pcnFz KCkgaW4KPiA+PiBnaWNfaGFuZGxlX2lycSgpLiBBdCB0aGlzIG1vbWVudCwgdGhlIHNlY29uZCBp cnEgcHJlZW1wdHMgdGhlIGZpcnN0IGlycQo+ID4+IGFuZCBpdCdzIGFuIE5NSSBidXQgY3VycmVu dCBjb250ZXh0IGlzIGFscmVhZHkgaW4gbm1pLiBTbyB0aGF0IG1heSBiZQo+ID4+IHRoZSBwcm9i bGVtLgo+ID4gSSdtIG5vdCBzdXJlIEkgZ2V0IGl0LiBGcm9tIHRoZSBzdGFjayB0cmFjZSwgSSBz ZWUgdGhpczoKPiA+IAo+ID4gWyAgIDE0LjgxNjI1MV0gIGFzbV9ubWlfZW50ZXIrMHg5NC8weDk4 Cj4gPiBbICAgMTQuODE2MjUxXSAgZWwxX2lycSsweDhjLzB4MTgwCQkJKEMpCj4gPiBbICAgMTQu ODE2MjUyXSAgZ2ljX2hhbmRsZV9pcnErMHhiYy8weDJlNAo+ID4gWyAgIDE0LjgxNjI1Ml0gIGVs MV9pcnErMHhjYy8weDE4MAkJCShCKQo+ID4gWyAgIDE0LjgxNjI1M10gIGFyY2hfdGltZXJfaGFu ZGxlcl92aXJ0KzB4MzgvMHg1OAo+ID4gWyAgIDE0LjgxNjI1M10gIGhhbmRsZV9wZXJjcHVfZGV2 aWRfaXJxKzB4OTAvMHgyNDAKPiA+IFsgICAxNC44MTYyNTNdICBnZW5lcmljX2hhbmRsZV9pcnEr MHgzNC8weDUwCj4gPiBbICAgMTQuODE2MjU0XSAgX19oYW5kbGVfZG9tYWluX2lycSsweDY4LzB4 YzAKPiA+IFsgICAxNC44MTYyNTRdICBnaWNfaGFuZGxlX2lycSsweGY4LzB4MmU0Cj4gPiBbICAg MTQuODE2MjU1XSAgZWwxX2lycSsweGNjLzB4MTgwCQkJKEEpCj4gPiAKPiA+IHdoaWNoIGluZGlj YXRlcyB0aGF0IHdlIHByZWVtcHRlZCBhIHRpbWVyIGludGVycnVwdCAoQSkgd2l0aCBhbm90aGVy Cj4gPiBJUlEgKEIpLCBpdHNlbGYgaW1tZWRpYXRlbHkgcHJlZW1wdGVkIGJ5IGFub3RoZXIgSVJR IChDKT8gVGhhdCdzCj4gPiBpbmRlZWQgYXQgbGVhc3Qgb25lIHRvbyBtYW55Lgo+ID4gCj4gPiBD YW4geW91IHBsZWFzZSBkZXNjcmliZSBmb3IgZWFjaCBvZiAoQSksIChCKSBhbmQgKEMpIHdoZXRo ZXIgdGhleSBhcmUKPiA+IHNwdXJpb3VzIG9yIG5vdCwgd2hhdCB0aGVpciBwcmlvcml0aWVzIGFy ZSBpZiB0aGV5IGFyZW4ndCBzcHVyaW91cz8KPiAKPiBZZXMuIEkgaWdub3JlZCBpbnRlcnJ1cHQg KEEpLiAoQikgaXMgc3B1cmlvdXMgYW5kIGl0cyBwcmlvcml0eSBpcwo+IDB4YTAgYW5kIFBNUiBp cyAweDcwLiAoQykgaXMgYW4gTk1JIGFuZCBpdHMgcHJpb3JpdHkgaXMgMHgyMC4gTm90ZQo+IHRo YXQgR0lDX1BSSU9fSVJRT04gaXMgMHhlMCwgR0lDX1BSSU9fSVJRT0ZGIGlzIDB4NjAsCj4gR0lD RF9JTlRfREVGX1BSSSBpcyAweGEwIGFuZCBHSUNEX0lOVF9OTUlfUFJJIGlzIDB4MjAgaW4gb3Vy IGtlcm5lbC4KCklmIChCKSBpcyBzcHVyaW91cyAoYWthIElDQ19JQVIxUl9FTDEgcmV0dXJuIDEw MjMpLCB0aGVuIGl0cwoicHJpb3JpdHkiIGRvZXNuJ3QgcmVhbGx5IGV4aXN0LCBhbmQgSSBkb24n dCByZWFsbHkgZ2V0IHdoYXQgeW91IG1lYW4KYnkgIml0cyBwcmlvcml0eSBpcyAweGEwIi4gIElD Q19SUFJfRUwxIHNob3VsZG4ndCBjaGFuZ2Ugd2hlbiBBY2staW5nCmEgc3B1cmlvdXMgaW50ZXJy dXB0LCBiZWNhdXNlIHRoZXJlIGlzIG5vIGNoYW5nZSBpbiBHSUMgc3RhdGUgYXQgYWxsLgoKQW5k IGlmIFBNUiBpcyAweDcwIGF0IHRoZSBwb2ludCB3aGVyZSB5b3UgZ2V0IChCKSwgdGhlbiBJIHJl YWxseSBjYW4ndApzZWUgaG93IHlvdSBjYW4gZ2V0IGFuIGludGVycnVwdCBvZiBwcmlvcml0eSAw eGEwIGFueXdheS4KCgoKPiA+PiBJbiBteSBvcGluaW9uLCB3aGVuIGhhbmRsaW5nIHNwdXJpb3Vz IGludGVycnVwdHMsIHdlIHNob3VsZG4ndCBlbmFibGUgaXJxcy4KPiA+PiBNeSByZWFzb24gaXMg dGhhdCBmb3Igc3B1cmlvdXMgaW50ZXJydXB0cyB3ZSBtYXkgZW50ZXIgbm1pIGNvbnRleHQgaW4K PiA+PiBlbDFfaXJxKCkgYmVjYXVzZSBjdXJyZW50IFBNUiBtYXkgYmUgR0lDX1BSSU9fSVJRT0ZG LiBJZiB3ZSBlbmFibGUgaXJxcwo+ID4+IGF0IHRoaXMgdGltZSwgYW5vdGhlciBOTUkgbWF5IGhh cHBlbiBhbmQgcHJlZW1wdCB0aGlzIHNwdXJpb3VzIGludGVycnVwdAo+ID4+IGJ1dCB0aGUgY29u dGV4dCBpcyBhbHJlYWR5IGluIG5taS4gVGhhdCBjYXVzZXMgYSBidWcgb24gaWYgbmVzdGVkIE5N SSBpcwo+ID4+IG5vdCBzdXBwb3J0ZWQuIEV2ZW4gZm9yIG5lc3RlZCBubWksIEkgdGhpbmsgaXQn cyBub3QgYSBub3JtYWwgc2NlbmFyaW8uCj4gPiBJIHdvdWxkIHRlbmQgdG8gYWdyZWUgdGhhdCB0 aGlzIGlzbid0IGdyZWF0LiBBY3R1YWxseSwgSSdkIHByb2JhYmx5Cj4gPiBtb3ZlIHRoZSBjaGVj ayBmb3IgYSBzcHVyaW91cyBpbnRlcnJ1cHQgcmlnaHQgYWZ0ZXIgdGhlIHJlYWQgb2YKPiA+IElD Q19JQVIxX0VMMSwgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFsIG5lZWQgdG8gZG8gYW55dGhpbmcg ZWxzZSBhdAo+ID4gdGhhdCBwb2ludC4KPiAKPiBTbywgd2UgZG9uJ3QgbmVlZCB0byBjaGVjayBO TUkgZm9yIHNwdXJpb3VzIGludGVycnVwdHM/IERvIHlvdSBtZWFuCj4gdGhhdCBzcHVyaW91cyBp bnRlcnJ1cHRzJyBjYW4ndCBiZSBOTUlzPyBPciBldmVuIHNwdXJpb3VzIGludGVycnVwcwo+IGFy ZSBOTUlzLCB3ZSBzaG91bGRuJ3QgZG8gYW55dGhpbmcgZm9yIHRoZW0/IElmIHNvLCBJIHdpbGwg bW92ZSB0aGUKPiBjaGVjayBhZnRlciB0aGUgcmVhZCBvZiBJQ0NfSUFSMV9FTDEgYW5kIHNlbmQg YSBWMi4KClNwdXJpb3VzIGludGVycnVwdHMgYXJlIG5vdCBpbnRlcnJ1cHRzIGF0IGFsbC4gSXQg aXMgZWl0aGVyIGEgbGV2ZWwKaW50ZXJydXB0IHRoYXQgaGFzIGJlZW4gcmV0aXJlZCBiZWZvcmUg YmVpbmcgaGFuZGxlZCwgb3Igc29tZSBvdGhlcgp0cmFuc2llbnQgZWZmZWN0IChsaWtlIGFuIGlu dGVycnVwdCBiZWluZyBtb3ZlZCBmcm9tIG9uZSBDUFUgdG8KYW5vdGhlciksIG9yIGV2ZW4gZmxh a3kgSFcuIFNvIGRvaW5nIGFueXRoaW5nIGJhc2VkIG9uIGEgc3B1cmlvdXMKaW50ZXJydXB0IGlz IGRlZmluaXRlbHkgYSBwb3RlbnRpYWwgYnVnLCBhbmQgSSBzdWdnZXN0IHRoaXM6CgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9pcnFjaGlwL2lycS1naWMtdjMuYyBiL2RyaXZlcnMvaXJxY2hpcC9pcnEt Z2ljLXYzLmMKaW5kZXggZWIwZWUzNTZhNjI5Li4wMDQwNDAyNGQ3Y2QgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvaXJxY2hpcC9pcnEtZ2ljLXYzLmMKKysrIGIvZHJpdmVycy9pcnFjaGlwL2lycS1naWMt djMuYwpAQCAtNjQ4LDYgKzY0OCwxMCBAQCBzdGF0aWMgYXNtbGlua2FnZSB2b2lkIF9fZXhjZXB0 aW9uX2lycV9lbnRyeSBnaWNfaGFuZGxlX2lycShzdHJ1Y3QgcHRfcmVncyAqcmVncwogCiAJaXJx bnIgPSBnaWNfcmVhZF9pYXIoKTsKIAorCS8qIENoZWNrIGZvciBzcGVjaWFsIElEcyBmaXJzdCAq LworCWlmICgoaXJxbnIgPj0gMTAyMCAmJiBpcnFuciA8PSAxMDIzKSkKKwkJcmV0dXJuOworCiAJ aWYgKGdpY19zdXBwb3J0c19ubWkoKSAmJgogCSAgICB1bmxpa2VseShnaWNfcmVhZF9ycHIoKSA9 PSBHSUNEX0lOVF9OTUlfUFJJKSkgewogCQlnaWNfaGFuZGxlX25taShpcnFuciwgcmVncyk7CkBA IC02NTksMTAgKzY2Myw2IEBAIHN0YXRpYyBhc21saW5rYWdlIHZvaWQgX19leGNlcHRpb25faXJx X2VudHJ5IGdpY19oYW5kbGVfaXJxKHN0cnVjdCBwdF9yZWdzICpyZWdzCiAJCWdpY19hcmNoX2Vu YWJsZV9pcnFzKCk7CiAJfQogCi0JLyogQ2hlY2sgZm9yIHNwZWNpYWwgSURzIGZpcnN0ICovCi0J aWYgKChpcnFuciA+PSAxMDIwICYmIGlycW5yIDw9IDEwMjMpKQotCQlyZXR1cm47Ci0KIAlpZiAo c3RhdGljX2JyYW5jaF9saWtlbHkoJnN1cHBvcnRzX2RlYWN0aXZhdGVfa2V5KSkKIAkJZ2ljX3dy aXRlX2VvaXIoaXJxbnIpOwogCWVsc2UKClsuLi5dCgo+IEluIG15IG9waW5pb24sIHNpbmNlIGNv bW1pdCAxN2NlMzAyZjMxMTcgKCJhcm02NDogRml4IGludGVycnVwdAo+IHRyYWNpbmcgaW4gdGhl IHByZXNlbmNlIG9mIE5NSXMiKSwgc3B1cmlvdXMgaW50ZXJydXBzIGNhbiBlbnRlciBubWkKPiBj b250ZXh0IGluIGludGVycnVwdCBlbnRyeSBiZWNhdXNlIFBNUiBjYW4gYmUgR0lDX1BSSU9fSVJR T0ZGIGZvcgo+IHNwdXJpb3VzIGludGVycnVwdHMuIFRoYXQgbWVhbnMgdGVzdF9pcnFzX3VubWFz a2VkIGlzIG5vdCAwIGFuZAo+IGFzbV9ubWlfZW50ZXIgaXMgY2FsbGVkLgo+IAo+IMKgwqAgKHNv bWUgZWwxX2lycSBlbnRyeSBjb2RlIGZyb20gdjUuMykKPiDCoMKgIHRlc3RfaXJxc191bm1hc2tl ZMKgIHJlcz14MCwgcG1yPXgyMAo+IMKgwqAgY2J6IHgwLCAxZgo+IMKgwqAgYmwgYXNtX25taV9l bnRlcgoKVGhhdCBjb2RlIGhhcyBzaWduaWZpY2FudGx5IGNoYW5nZWQgdXBzdHJlYW0sIGFuZCBp cyBub3cgaW4gQy4gSSB0aGluawppdCBzdGlsbCBkbyB0aGUgc2FtZSB0aGluZyB0aG91Z2guCgo+ IAo+IEFuZCBpdCB0aGVuIGNhbGxzIGdpY19oYW5kbGVfaXJxKCkuIEl0IGRvZXNuJ3QgY2FsbCBn aWNfaGFuZGxlX25taSgpCj4gYmVjYXVzZSBpdHMgcHJpb3JpdHkgaXMgbm90IEdJQ0RfSU5UX05N SV9QUkkuCj4gCj4gVGhlbiBpdCBlbmFibGVzIGlycXMuIElmIGF0IHRoYXQgcG9pbnQgYW5vdGhl ciBOTUkgY29tZXMgYW5kCj4gcHJlZW1wdHMgaXQsIHdoaWNoIG1lYW5zIE5NSSBvY2N1cnMgaW4g bm1pIGNvbnRleHQuIFRoYXQgbWF5IGNhdXNlIGEKPiBidWcgb24gaWYgbmVzdGVkIE5NSSBpcyBu b3Qgc3VwcG9ydGVkLgo+IAo+IMKgwqAgKHNvbWUgZ2ljX2hhbmRsZV9pcnEgY29kZSBmcm9tIHY1 LjMpCj4gCj4gwqDCoCBpcnFuciA9IGdpY19yZWFkX2lhcigpOwo+IAo+IMKgwqAgaWYgKGdpY19z dXBwb3J0c19ubWkoKSAmJgo+IMKgIMKgIMKgwqAgdW5saWtlbHkoZ2ljX3JlYWRfcnByKCkgPT0g R0lDRF9JTlRfTk1JX1BSSSkpIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnaWNfaGFuZGxlX25t aShpcnFuciwKPiByZWdzKTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoQykKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy ZXR1cm47Cj4gwqDCoCB9Cj4gCj4gwqDCoCBpZiAoZ2ljX3ByaW9fbWFza2luZ19lbmFibGVkKCkp IHsKPiDCoMKgwqDCoMKgwqDCoMKgIGdpY19wbXJfbWFza19pcnFzKCk7Cj4gZ2ljX2FyY2hfZW5h YmxlX2lycXMoKTsgKEQpCj4gwqDCoCB9CgpJIGJlbGlldmUgdGhlIGFib3ZlIHBhdGNoIHdvdWxk IGZpeCB0aGUgc3B1cmlvdXMgaW50ZXJydXB0IGlzc3VlIHlvdQpoYXZlIGV4cGVyaWVuY2VkLiBQ bGVhc2UgbGV0IG1lIGtub3csIGFuZCBwb3N0IGEgdjIgaWYgdGhpcyB3b3JrcyBmb3IKeW91LgoK VGhhbmtzLAoKCU0uCgotLSAKV2l0aG91dCBkZXZpYXRpb24gZnJvbSB0aGUgbm9ybSwgcHJvZ3Jl c3MgaXMgbm90IHBvc3NpYmxlLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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 X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=BAYES_00,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7EA4AC433ED for ; Thu, 22 Apr 2021 12:27:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 36B0661139 for ; Thu, 22 Apr 2021 12:27:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236197AbhDVM1w convert rfc822-to-8bit (ORCPT ); Thu, 22 Apr 2021 08:27:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:36068 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235232AbhDVM1v (ORCPT ); Thu, 22 Apr 2021 08:27:51 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 348D361139; Thu, 22 Apr 2021 12:27:16 +0000 (UTC) Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1lZYQM-008sx2-4X; Thu, 22 Apr 2021 13:27:14 +0100 Date: Thu, 22 Apr 2021 13:27:06 +0100 Message-ID: <875z0eijxh.wl-maz@kernel.org> From: Marc Zyngier To: He Ying Cc: , , , , , Mark Rutland Subject: Re: [RFC PATCH] irqchip/gic-v3: Do not enable irqs when handling spurious interrups In-Reply-To: References: <20210416062217.25157-1-heying24@huawei.com> <87y2dis4d7.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: heying24@huawei.com, tglx@linutronix.de, julien.thierry.kdev@gmail.com, catalin.marinas@arm.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, mark.rutland@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 17 Apr 2021 03:01:54 +0100, He Ying wrote: > > Hello Marc, > > > 在 2021/4/16 22:15, Marc Zyngier 写道: > > [+ Mark] > > > > On Fri, 16 Apr 2021 07:22:17 +0100, > > He Ying wrote: > >> We found this problem in our kernel src tree: > >> > >> [ 14.816231] ------------[ cut here ]------------ > >> [ 14.816231] kernel BUG at irq.c:99! > >> [ 14.816232] Internal error: Oops - BUG: 0 [#1] SMP > >> [ 14.816232] Process swapper/0 (pid: 0, stack limit = 0x(____ptrval____)) > >> [ 14.816233] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 4.19.95-1.h1.AOS2.0.aarch64 #14 > >> [ 14.816233] Hardware name: evb (DT) > >> [ 14.816234] pstate: 80400085 (Nzcv daIf +PAN -UAO) > >> [ 14.816234] pc : asm_nmi_enter+0x94/0x98 > >> [ 14.816235] lr : asm_nmi_enter+0x18/0x98 > >> [ 14.816235] sp : ffff000008003c50 > >> [ 14.816235] pmr_save: 00000070 > >> [ 14.816237] x29: ffff000008003c50 x28: ffff0000095f56c0 > >> [ 14.816238] x27: 0000000000000000 x26: ffff000008004000 > >> [ 14.816239] x25: 00000000015e0000 x24: ffff8008fb916000 > >> [ 14.816240] x23: 0000000020400005 x22: ffff0000080817cc > >> [ 14.816241] x21: ffff000008003da0 x20: 0000000000000060 > >> [ 14.816242] x19: 00000000000003ff x18: ffffffffffffffff > >> [ 14.816243] x17: 0000000000000008 x16: 003d090000000000 > >> [ 14.816244] x15: ffff0000095ea6c8 x14: ffff8008fff5ab40 > >> [ 14.816244] x13: ffff8008fff58b9d x12: 0000000000000000 > >> [ 14.816245] x11: ffff000008c8a200 x10: 000000008e31fca5 > >> [ 14.816246] x9 : ffff000008c8a208 x8 : 000000000000000f > >> [ 14.816247] x7 : 0000000000000004 x6 : ffff8008fff58b9e > >> [ 14.816248] x5 : 0000000000000000 x4 : 0000000080000000 > >> [ 14.816249] x3 : 0000000000000000 x2 : 0000000080000000 > >> [ 14.816250] x1 : 0000000000120000 x0 : ffff0000095f56c0 > >> [ 14.816251] Call trace: > >> [ 14.816251] asm_nmi_enter+0x94/0x98 > >> [ 14.816251] el1_irq+0x8c/0x180 > >> [ 14.816252] gic_handle_irq+0xbc/0x2e4 > >> [ 14.816252] el1_irq+0xcc/0x180 > >> [ 14.816253] arch_timer_handler_virt+0x38/0x58 > >> [ 14.816253] handle_percpu_devid_irq+0x90/0x240 > >> [ 14.816253] generic_handle_irq+0x34/0x50 > >> [ 14.816254] __handle_domain_irq+0x68/0xc0 > >> [ 14.816254] gic_handle_irq+0xf8/0x2e4 > >> [ 14.816255] el1_irq+0xcc/0x180 > >> [ 14.816255] arch_cpu_idle+0x34/0x1c8 > >> [ 14.816255] default_idle_call+0x24/0x44 > >> [ 14.816256] do_idle+0x1d0/0x2c8 > >> [ 14.816256] cpu_startup_entry+0x28/0x30 > >> [ 14.816256] rest_init+0xb8/0xc8 > >> [ 14.816257] start_kernel+0x4c8/0x4f4 > >> [ 14.816257] Code: 940587f1 d5384100 b9401001 36a7fd01 (d4210000) > >> [ 14.816258] Modules linked in: start_dp(O) smeth(O) > >> [ 15.103092] ---[ end trace 701753956cb14aa8 ]--- > >> [ 15.103093] Kernel panic - not syncing: Fatal exception in interrupt > >> [ 15.103099] SMP: stopping secondary CPUs > >> [ 15.103100] Kernel Offset: disabled > >> [ 15.103100] CPU features: 0x36,a2400218 > >> [ 15.103100] Memory Limit: none > > Urgh... > > > >> Our kernel src tree is based on 4.19.95 and backports arm64 pseudo-NMI > >> patches but doesn't support nested NMI. Its top relative commit is > >> commit 17ce302f3117 ("arm64: Fix interrupt tracing in the presence of NMIs"). > > Can you please reproduce it with mainline and without any backport? > > It is hard to reason about something that isn't a vanilla kernel. > > I think our kernel is quite like v5.3 mainline. Reproducing it in > v5.3 mainline may be a little difficult for us because our product > needs some more self developed patches to work. I don't really care about 5.3. What I care about is the tip of the tree, and anything we fix there can trickle down to the previous stable releases. > >> I look into this issue and find that it's caused by 'BUG_ON(in_nmi())' > >> in nmi_enter(). From the call trace, we find two 'el1_irqs' which > >> means an interrupt preempts the other one and the new one is an NMI. > >> Furthermore, by adding some prints, we find the first irq also calls > >> nmi_enter(), but its priority is not GICD_INT_NMI_PRI and its irq number > >> is 1023. It enables irq by calling gic_arch_enable_irqs() in > >> gic_handle_irq(). At this moment, the second irq preempts the first irq > >> and it's an NMI but current context is already in nmi. So that may be > >> the problem. > > I'm not sure I get it. From the stack trace, I see this: > > > > [ 14.816251] asm_nmi_enter+0x94/0x98 > > [ 14.816251] el1_irq+0x8c/0x180 (C) > > [ 14.816252] gic_handle_irq+0xbc/0x2e4 > > [ 14.816252] el1_irq+0xcc/0x180 (B) > > [ 14.816253] arch_timer_handler_virt+0x38/0x58 > > [ 14.816253] handle_percpu_devid_irq+0x90/0x240 > > [ 14.816253] generic_handle_irq+0x34/0x50 > > [ 14.816254] __handle_domain_irq+0x68/0xc0 > > [ 14.816254] gic_handle_irq+0xf8/0x2e4 > > [ 14.816255] el1_irq+0xcc/0x180 (A) > > > > which indicates that we preempted a timer interrupt (A) with another > > IRQ (B), itself immediately preempted by another IRQ (C)? That's > > indeed at least one too many. > > > > Can you please describe for each of (A), (B) and (C) whether they are > > spurious or not, what their priorities are if they aren't spurious? > > Yes. I ignored interrupt (A). (B) is spurious and its priority is > 0xa0 and PMR is 0x70. (C) is an NMI and its priority is 0x20. Note > that GIC_PRIO_IRQON is 0xe0, GIC_PRIO_IRQOFF is 0x60, > GICD_INT_DEF_PRI is 0xa0 and GICD_INT_NMI_PRI is 0x20 in our kernel. If (B) is spurious (aka ICC_IAR1R_EL1 return 1023), then its "priority" doesn't really exist, and I don't really get what you mean by "its priority is 0xa0". ICC_RPR_EL1 shouldn't change when Ack-ing a spurious interrupt, because there is no change in GIC state at all. And if PMR is 0x70 at the point where you get (B), then I really can't see how you can get an interrupt of priority 0xa0 anyway. > >> In my opinion, when handling spurious interrupts, we shouldn't enable irqs. > >> My reason is that for spurious interrupts we may enter nmi context in > >> el1_irq() because current PMR may be GIC_PRIO_IRQOFF. If we enable irqs > >> at this time, another NMI may happen and preempt this spurious interrupt > >> but the context is already in nmi. That causes a bug on if nested NMI is > >> not supported. Even for nested nmi, I think it's not a normal scenario. > > I would tend to agree that this isn't great. Actually, I'd probably > > move the check for a spurious interrupt right after the read of > > ICC_IAR1_EL1, because there is no real need to do anything else at > > that point. > > So, we don't need to check NMI for spurious interrupts? Do you mean > that spurious interrupts' can't be NMIs? Or even spurious interrups > are NMIs, we shouldn't do anything for them? If so, I will move the > check after the read of ICC_IAR1_EL1 and send a V2. Spurious interrupts are not interrupts at all. It is either a level interrupt that has been retired before being handled, or some other transient effect (like an interrupt being moved from one CPU to another), or even flaky HW. So doing anything based on a spurious interrupt is definitely a potential bug, and I suggest this: diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index eb0ee356a629..00404024d7cd 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -648,6 +648,10 @@ static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs irqnr = gic_read_iar(); + /* Check for special IDs first */ + if ((irqnr >= 1020 && irqnr <= 1023)) + return; + if (gic_supports_nmi() && unlikely(gic_read_rpr() == GICD_INT_NMI_PRI)) { gic_handle_nmi(irqnr, regs); @@ -659,10 +663,6 @@ static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs gic_arch_enable_irqs(); } - /* Check for special IDs first */ - if ((irqnr >= 1020 && irqnr <= 1023)) - return; - if (static_branch_likely(&supports_deactivate_key)) gic_write_eoir(irqnr); else [...] > In my opinion, since commit 17ce302f3117 ("arm64: Fix interrupt > tracing in the presence of NMIs"), spurious interrups can enter nmi > context in interrupt entry because PMR can be GIC_PRIO_IRQOFF for > spurious interrupts. That means test_irqs_unmasked is not 0 and > asm_nmi_enter is called. > >    (some el1_irq entry code from v5.3) >    test_irqs_unmasked  res=x0, pmr=x20 >    cbz x0, 1f >    bl asm_nmi_enter That code has significantly changed upstream, and is now in C. I think it still do the same thing though. > > And it then calls gic_handle_irq(). It doesn't call gic_handle_nmi() > because its priority is not GICD_INT_NMI_PRI. > > Then it enables irqs. If at that point another NMI comes and > preempts it, which means NMI occurs in nmi context. That may cause a > bug on if nested NMI is not supported. > >    (some gic_handle_irq code from v5.3) > >    irqnr = gic_read_iar(); > >    if (gic_supports_nmi() && >        unlikely(gic_read_rpr() == GICD_INT_NMI_PRI)) { >            gic_handle_nmi(irqnr, > regs);                                   (C) >            return; >    } > >    if (gic_prio_masking_enabled()) { >          gic_pmr_mask_irqs(); > gic_arch_enable_irqs(); (D) >    } I believe the above patch would fix the spurious interrupt issue you have experienced. Please let me know, and post a v2 if this works for you. Thanks, M. -- Without deviation from the norm, progress is not possible.