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 16DE0C433EF for ; Mon, 20 Dec 2021 14:05:31 +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: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=41p2yRuZl27Vn/hAuYaiYMYiPRTI8aVbSEsIrdPmn5E=; b=y4/RO78u5U1x3x NhgTIss1qSidpaCIzuA55GwqPSJmPky6G+K0NJxQ8orY6OlFGVnanB0cBo587r+O5qaVXVCGucDV4 z26+XLl/4KPdMnrAHrJnpJG+P9gvfMJUy6AICZ7n1pOFtX/8PcMxZBw8Vdch/61qKaZ43LLW3CsLI dlr6POUEL+N4lX2qc41DvA5XZ6HEpDa2fw97vhFgflhN63tVyseJ3q/Dx74tPaV+Sx4v1q6YQwXqf HuyhSXih3nN5tmF0uRI5roxD5zRly9I2zg3hSdwM5iy+RS+RyEj0YwvZlXNynsJBRubHTs/kQ7lH9 z3JpkkiKSv6Fx7E3DFCw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mzJFw-002gXS-FN; Mon, 20 Dec 2021 14:03:13 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mzJ5b-002dYn-FJ for linux-arm-kernel@lists.infradead.org; Mon, 20 Dec 2021 13:52:33 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id AD2D4610A6; Mon, 20 Dec 2021 13:52:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1F5F7C36AE7; Mon, 20 Dec 2021 13:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1640008349; bh=TXFSbLJuZYvSM9tBSlY+DMDivlkOfSObZHcoTJ+rflg=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=oA+8I0odpPcXNIV33EfU3rufbBx5SMAE3w+EUwiDlpZFuvaZeQ2DE2DPhmBbeOXDU sYP+EscJPA05nb0WdmYHy+4Vhw6PBI82msoFtHW4mW704flD32DuO8ntwwVdnlwgu3 AMFQ26Dx2Qx8EsI0vXqYgSQOTu53JYo8IA94j0544EdxiVX5898x6EHHYQZ1E0Pc2S yITPAnG2JfP4p/Bo5ZkJyZX7yi22Xsc+elQkoMIUihKdoaMwtAhtT6R3m8X6s7HCvO ehyHfB7WT9h2ZqIsDTI16loSTvlC3tL1uOcfxmXM3SOTwPrhqz4DpZX2fMBhkbNH1j TzPA1eXkOgawg== Received: from cfbb000407.r.cam.camfibre.uk ([185.219.108.64] 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.2) (envelope-from ) id 1mzJ5X-00DIPG-1n; Mon, 20 Dec 2021 13:52:27 +0000 Date: Mon, 20 Dec 2021 13:52:26 +0000 Message-ID: <877dbzwfhh.wl-maz@kernel.org> From: Marc Zyngier To: Hector Martin Cc: Thomas Gleixner , Rob Herring , Sven Peter , Alyssa Rosenzweig , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH 6/6] irqchip/apple-aic: Add support for AICv2 In-Reply-To: <4a83dfb1-3188-8b09-fc60-d3083230fb54@marcan.st> References: <20211209043249.65474-1-marcan@marcan.st> <20211209043249.65474-7-marcan@marcan.st> <87o85lu0ck.wl-maz@kernel.org> <4a83dfb1-3188-8b09-fc60-d3083230fb54@marcan.st> 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: 185.219.108.64 X-SA-Exim-Rcpt-To: marcan@marcan.st, tglx@linutronix.de, robh+dt@kernel.org, sven@svenpeter.dev, alyssa@rosenzweig.io, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org 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-20211220_055231_652753_E112DB3C X-CRM114-Status: GOOD ( 47.84 ) 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 T24gU2F0LCAxOCBEZWMgMjAyMSAwNjowMjoyNCArMDAwMCwKSGVjdG9yIE1hcnRpbiA8bWFyY2Fu QG1hcmNhbi5zdD4gd3JvdGU6Cj4gCj4gT24gMTMvMTIvMjAyMSAwMy40NywgTWFyYyBaeW5naWVy IHdyb3RlOgo+ID4+ICsgKiBUaGlzIGlzIGZvbGxvd2VkIGJ5IGEgc2V0IG9mIGV2ZW50IHJlZ2lz dGVycywgZWFjaCAxNksgcGFnZSBhbGlnbmVkLgo+ID4+ICsgKiBUaGUgZmlyc3Qgb25lIGlzIHRo ZSBBUCBldmVudCByZWdpc3RlciB3ZSB3aWxsIHVzZS4gVW5mb3J0dW5hdGVseSwKPiA+PiArICog dGhlIGFjdHVhbCBpbXBsZW1lbnRlZCBkaWUgY291bnQgaXMgbm90IHNwZWNpZmllZCBhbnl3aGVy ZSBpbiB0aGUKPiA+PiArICogY2FwYWJpbGl0eSByZWdpc3RlcnMsIHNvIHdlIGhhdmUgdG8gZXhw bGNpdGx5IHNwZWNpZnkgdGhlIGV2ZW50Cj4gPiAKPiA+IGV4cGxpY2l0bHkKPiAKPiBUaGFua3Ms IGZpeGVkIQo+IAo+ID4gCj4gPj4gKyAqIHJlZ2lzdGVyIG9mZnNldCBpbiB0aGUgZGV2aWNlIHRy ZWUgdG8gcmVtYWluIGZvcndhcmQtY29tcGF0aWJsZS4KPiA+IAo+ID4gRG8gdGhlIGN1cnJlbnQg bWFjaGluZXMgYWN0dWFsbHkgaGF2ZSBtb3JlIHRoYW4gYSBzaW5nbGUgZGllPwo+IAo+IE5vdCB0 aGUgY3VycmVudCBvbmVzLCBidXQgdGhlcmUgYXJlIGxvdWQgcnVtb3JzIGV2ZXJ5d2hlcmUgb2Yg bXVsdGktZGllCj4gcHJvZHVjdHMuLi4gbWlnaHQgYXMgd2VsbCB0cnkgdG8gc3VwcG9ydCB0aGVt IGFoZWFkIG9mIHRpbWUuIFRoZSBjdXJyZW50Cj4gbWFjaGluZXMgKmRvKiBoYXZlIHR3byByZWdp c3RlciBzZXRzLCBpbXBseWluZyBzdXBwb3J0IGZvciAyLWRpZQo+IGNvbmZpZ3VyYXRpb25zLCBh bmQgYWx0aG91Z2ggbm8gSVJRcyBhcmUgZXZlciBhc3NlcnRlZCBmcm9tIGhhcmR3YXJlLAo+IFNX X0dFTiBtb2RlIHdvcmtzIGFuZCB5b3UgY2FuIHRyaWdnZXIgZGllLUlEIDEgZXZlbnRzLgo+IAo+ IFRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgY2FwYWJpbGl0eSByZWdpc3RlcnMgY29tZXMgZnJv bSB3aGF0IHRoZSBtYWNPUwo+IGRyaXZlciBkb2VzICh0aGF0J3MgdGhlIG9ubHkgcGFydCBJIGxv b2tlZCBhdCBpdCBmb3IsIHNpbmNlIGl0J3Mga2luZCBvZgo+IGhhcmQgdG8gZGl2aW5lIHdpdGgg b25seSBhIHNpbmdsZSBkYXRhIHBvaW50IGZyb20gdGhlIGhhcmR3YXJlKS4gVGhlaXIKPiBkcml2 ZXIgaXMgZGVmaW5pdGVseSBkZXNpZ25lZCBmb3IgbXVsdGkgZGllIG1hY2hpbmVzIGFscmVhZHku IFRoZQo+IHJlZ2lzdGVyIGxheW91dCBJIHdvcmtlZCBvdXQgYnkgcHJvYmluZyB0aGUgaGFyZHdh cmU7IGl0IHdhcyBibGF0YW50bHkKPiBvYnZpb3VzIHRoYXQgdGhlcmUgd2FzIGEgc2Vjb25kIHNl dCBvZiBJUlEgbWFzayBhcnJheXMgYWZ0ZXIgdGhlIGZpcnN0LAo+IHRoYXQgbWFjT1MgZGlkbid0 IHVzZSAoeWV0KS4uLgo+IAo+ID4+ICtzdGF0aWMgc3RydWN0IGlycV9jaGlwIGFpYzJfY2hpcCA9 IHsKPiA+PiArCS5uYW1lID0gIkFJQzIiLAo+ID4+ICsJLmlycV9tYXNrID0gYWljX2lycV9tYXNr LAo+ID4+ICsJLmlycV91bm1hc2sgPSBhaWNfaXJxX3VubWFzaywKPiA+PiArCS5pcnFfZW9pID0g YWljX2lycV9lb2ksCj4gPj4gKwkuaXJxX3NldF90eXBlID0gYWljX2lycV9zZXRfdHlwZSwKPiA+ PiArfTsKPiA+IAo+ID4gSG93IGlzIHRoZSBhZmZpbml0eSBtYW5hZ2VkIGlmIHlvdSBkb24ndCBo YXZlIGEgY2FsbGJhY2s/IEEgbnVtYmVyIG9mCj4gPiB0aGluZ3MgYXJlIGJvdW5kIHRvIGJyZWFr IGlmIHlvdSBkb24ndCBoYXZlIG9uZS4gQW5kIGEgZGVzY3JpcHRpb24gb2YKPiA+IGhvdyBhbiBp bnRlcnJ1cHQgZ2V0cyByb3V0ZWQgd291bGRuJ3QgZ28gYW1pc3MhCj4gCj4gSXQgaXNuJ3QuLi4g d2UgZG9uJ3Qga25vdyBhbGwgdGhlIGRldGFpbHMgeWV0LCBidXQgaXQgc2VlbXMgdG8gYmUgU29t ZQo+IEtpbmQgT2YgTWFnaWPihKIuCj4gCj4gVGhlcmUgZGVmaW5pdGVseSBpcyBubyB3YXkgb2Yg aW5kaXZpZHVhbGx5IG1hcHBpbmcgSVJRcyB0byBzcGVjaWZpYwo+IENQVXM7IHRoZXJlIGp1c3Qg YXJlbid0IGVub3VnaCBpbXBsZW1lbnRlZCByZWdpc3RlciBiaXRzIHRvIGFsbG93IHRoYXQuCj4g Cj4gV2hhdCB3ZSBkbyBoYXZlIGlzIGEgcGVyLUlSUSBjb25maWcgY29uc2lzdGluZyBvZjoKPiAK PiAtIFRhcmdldCBDUFUsIDQgYml0cy4gVGhpcyBzZWVtcyB0byBiZSBmb3IgcG9pbnRpbmcgSVJR cyBhdCBjb3Byb2Nlc3NvcnMKPiAodGhlcmUncyBhY3R1YWxseSBhbiBpbml0IGRhbmNlIHRvIG1h cCBhIGZldyBJUlFzIHRvIHNwZWNpZmljCj4gY29wcm9jZXNzb3JzOyBtMW4xIHRha2VzIGNhcmUg b2YgdGhhdCByaWdodCBub3cqKS4gT25seSAwIHNlbmRzIElSUXMgdG8KPiB0aGUgQVAgaGVyZSwg c28gdGhpcyBpcyBub3QgdXNlZnVsIHRvIHVzLgo+IAo+IC0gSVJRIGNvbmZpZyBncm91cCwgMyBi aXRzLiBUaGlzIHNlbGVjdHMgb25lIG9mIDggSVJRIGNvbmZpZyByZWdpc3RlcnMuCj4gVGhlc2Ug ZG8gaW5kaXJlY3RseSBjb250cm9sIGhvdyB0aGUgSVJRIGlzIGRlbGl2ZXJlZDsgYXQgbGVhc3Qg dGhleSBoYXZlCj4gc29tZSBraW5kIG9mIGRlbGF5IHZhbHVlIChjb2FsZXNjaW5nPykgYW5kIEkg c3VzcGVjdCBtYXkgZG8gc29tZSBraW5kIG9mCj4gcHJpb3JpdHkgY29udHJvbCwgdGhvdWdoIHRo ZSBkZXRhaWxzIG9mIHRoYXQgYXJlbid0IGNsZWFyIHlldC4gSSBkb24ndAo+IHJlY2FsbCBzZWVp bmcgbWFjT1MgZG8gYW55dGhpbmcgaW50ZXJlc3Rpbmcgd2l0aCB0aGVzZSBncm91cHMsIEkgdGhp bmsKPiBpdCBhbHdheXMgdXNlcyBncm91cCAwLgo+IAo+IFRoZW4gZWFjaCBDUFUgaGFzIGFuIElN UC1ERUYgc3lzcmVnIHRoYXQgYWxsb3dzIGl0IHRvIG9wdC1pbiBvciBvcHQtb3V0Cj4gb2YgcmVj ZWl2aW5nIElSUXMgKCEpLiBJdCBhY3R1YWxseSBoYXMgdHdvIGJpdHMsIHNvIHRoZXJlIG1heSBi ZSBzb21lCj4ga2luZCBvZiBwcmlvcml0eS9zdWJzZXQgY29udHJvbCBoZXJlIHRvby4gQnkgZGVm YXVsdCBhbGwgb3RoZXIgQ1BVcyBhcmUKPiBvcHRlZCBvdXQsIHdoaWNoIGlzbid0IGdyZWF0Li4u IHNvIG0xbjEgaW5pdGlhbGl6ZXMgaXQgdG8gb3B0IGluIGFsbAo+IENQVXMgdG8gSVJRIGRlbGl2 ZXJ5Lgo+IAo+IFRoZSBhY3R1YWwgZGVsaXZlcnkgZmxvdyBoZXJlIHNlZW1zIHRvIGJlIHNvbWV0 aGluZyBsaWtlIEFJQy9zb21ldGhpbmcKPiBwaWNrcyBhIENQVSAodXNpbmcgc29tZSBraW5kIG9m IGhldXJpc3RpYy9DUFUgc3RhdGU/IEkgbm90aWNlZCBXRkkgc2VlbXMKPiB0byBoYXZlIGFuIGVm ZmVjdCBoZXJlKSBmb3IgaW5pdGlhbCBkZWxpdmVyeSwgYW5kIGlmIHRoZSBJUlEgaXNuJ3QgYWNr ZWQKPiBpbiBhIHRpbWVseSBtYW5uZXIsIGl0IHB1bnRzIGFuZCBicm9hZGNhc3RzIHRoZSBJUlEg dG8gYWxsIENQVXMuIFRoZSBJUlEKPiBhY2sgcmVnaXN0ZXIgaXMgc2hhcmVkIGJ5IGFsbCBDUFVz OyBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgc29tZSBraW5kCj4gb2YgcGVyLUNQVSBkaWZmZXJl bmNlIGluIHdoYXQgaXQgY2FuIHJldHVybiwgYnV0IEkgaGF2ZW4ndCBvYnNlcnZlZCB0aGF0Cj4g eWV0LCBzbyBJIGd1ZXNzIHdoYXRldmVyIENQVSBnZXRzIHRoZSBJUlEgZ2V0cyB0byBoYW5kbGUg YW55dGhpbmcgdGhhdAo+IGlzIHBlbmRpbmcuCj4gCj4gVGhlcmUgYXJlIGFsc28gc29tZSBleHRy YSBmZWF0dXJlczsgZS5nLiB0aGVyZSBpcyBkZWZpbml0ZWx5IGEgc2V0IG9mCj4gcmVnaXN0ZXJz IGZvciBtZWFzdXJpbmcgSVJRIGxhdGVuY3kgKHRlbGxzIHlvdSBob3cgbG9uZyBpdCB0b29rIGZy b20gSVJRCj4gYXNzZXJ0aW9uIHRvIHRoZSBDUFUgYWNraW5nIGl0KS4gVGhlcmUncyBhbHNvIHNv bWUga2luZCBvZiBnbG9iYWwKPiBjb250cm9sIG92ZXIgd2hpY2ggQ1BVICpjbHVzdGVyKiBpcyB0 cmllZCBmaXJzdCBmb3IgZGVsaXZlcnkgKGRlZmF1bHRzCj4gdG8gZS1jbHVzdGVyLCBidXQgeW91 IGNhbiBjaGFuZ2UgaXQgdG8gZWl0aGVyIHAtY2x1c3RlcikuIFdlIGRvbid0IHVzZQo+IHRob3Nl IHJpZ2h0IG5vdy4KPiAKPiBTbyB0aGVyZSBpcyBkZWZpbml0ZWx5IHJvb20gZm9yIGZ1cnRoZXIg cmVzZWFyY2ggaGVyZSwgYnV0IHRoZSBjdXJyZW50Cj4gc3RhdGUgb2YgYWZmYWlycyBpcyB0aGUg ZHJpdmVyIGRvZXNuJ3QgZG8gYWZmaW5pdHkgYXQgYWxsLCBhbmQgSVJRcyBhcmUKPiBoYW5kbGVk IGJ5ICJzb21lIiBDUFUuIEluIHByYWN0aWNlLCBJIHNlZSBhIGRlY2VudCAoYnV0IG5vdCBjb21w bGV0ZWx5Cj4gdW5pZm9ybSkgc3ByZWFkIG9mIHdoaWNoIENQVSBoYW5kbGVzIGFueSBnaXZlbiBJ UlEuIEkgYXNzdW1lIGl0J3MKPiBzb21ldGhpbmcgbGlrZSBpdCBwcmVmZXJzIGEgYnVzeSBDUFUs IHRvIGF2b2lkIHdha2luZyB1cCBhIGNvcmUganVzdCB0bwo+IGhhbmRsZSBhbiBJUlEuCgpUaGUg bWFpbiBpc3N1ZSB3aXRoIHN1Y2ggbWFnaWMgaXMgdGhhdCBhIG51bWJlciBvZiB0aGluZ3Mgd2ls bCBicmVhawppbiBhIHNwZWN0YWN1bGFyIHdheSBmb3IgYSBidW5jaCBvZiBkcml2ZXJzLiBXZSBo YXZlIGEgd2hvbGUgY2xhc3Mgb2YKKG1vc3RseSBQQ0kpIGRldmljZXMgdGhhdCBoYXZlIHBlci1x dWV1ZSBpbnRlcnJ1cHRzLCBlYWNoIG9uZSBib3VuZCB0bwphIENQVSBjb3JlLiBUaGUgZHJpdmVy cyBmdWxseSBleHBlY3QgdGhlIGludGVycnVwdCBmb3IgYSBnaXZlbiBxdWV1ZQp0byBmaXJlIG9u IGEgZ2l2ZW4gQ1BVLCBhbmQgKm9ubHkqIHRoaXMgb25lIGFzIHRoZXkgd291bGQsIGZvcgpleGFt cGxlLCB1c2UgcGVyLUNQVSBkYXRhIHRvIGdldCB0aGUgY29udGV4dCBvZiB0aGUgcXVldWUuCgpX aXRoIGFuIGF1dG9tYXRpYyBzcHJlYWQgb2YgaW50ZXJydXB0cywgdGhpcyB0b3RhbGx5IGJyZWFr cy4gUHJvYmFibHkKYmVjYXVzZSB0aGUgY29yZSB3aWxsIHJlZnVzZSB0byB1c2UgbWFuYWdlZCBp bnRlcnJ1cHRzIGR1ZSB0byB0aGUgbGFjawpvZiBhZmZpbml0eSBzZXR0aW5nIGNhbGxiYWNrLiBB bmQgZXZlbiBpZiB5b3UgcHJvdmlkZSBhIGR1bW15IG9uZSwgaXQKaXMgdGhlIGVuZHBvaW50IGRy aXZlcnMgdGhhdCB3aWxsIGV4cGxvZGUuCgpUaGUgb25seSB3YXkgSSBjYW4gaW1hZ2luZSB0byBt YWtlIHRoaXMgd29yayBpcyB0byBmb3JjZSB0aGVzZQppbnRlcnJ1cHRzIHRvIGJlIHRocmVhZGVk IHNvIHRoYXQgdGhlIHRocmVhZCBjYW4gcnVuIG9uIGEgZGlmZmVyZW50CkNQVSB0aGFuIHRoZSBv bmUgdGhlIGludGVycnVwdCBoYXMgYmVlbiB0YWtlbiBvbi4gUGVyZm9ybWFuY2Utd2lzZSwKdGhp cyBpcyBsaWtlbHkgdG8gYmUgYSBwaWcuCgpJIGd1ZXNzIHdlIHdpbGwgaGF2ZSB0byBmaW5kIHdh eXMgdG8gbGl2ZSB3aXRoIHRoaXMgaW4gdGhlIGxvbmcgcnVuLAphbmQgbWF5YmUgdGVhY2ggdGhl IGNvcmUgY29kZSBvZiB0aGVzZSB3ZWlyZCBiZWhhdmlvdXJzLgoKVGhhbmtzLAoKCU0uCgotLSAK V2l0aG91dCBkZXZpYXRpb24gZnJvbSB0aGUgbm9ybSwgcHJvZ3Jlc3MgaXMgbm90IHBvc3NpYmxl LgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo= 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 65A33C433F5 for ; Mon, 20 Dec 2021 13:52:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230044AbhLTNwb (ORCPT ); Mon, 20 Dec 2021 08:52:31 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:54734 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229979AbhLTNwb (ORCPT ); Mon, 20 Dec 2021 08:52:31 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 58212B80D9A; Mon, 20 Dec 2021 13:52:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1F5F7C36AE7; Mon, 20 Dec 2021 13:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1640008349; bh=TXFSbLJuZYvSM9tBSlY+DMDivlkOfSObZHcoTJ+rflg=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=oA+8I0odpPcXNIV33EfU3rufbBx5SMAE3w+EUwiDlpZFuvaZeQ2DE2DPhmBbeOXDU sYP+EscJPA05nb0WdmYHy+4Vhw6PBI82msoFtHW4mW704flD32DuO8ntwwVdnlwgu3 AMFQ26Dx2Qx8EsI0vXqYgSQOTu53JYo8IA94j0544EdxiVX5898x6EHHYQZ1E0Pc2S yITPAnG2JfP4p/Bo5ZkJyZX7yi22Xsc+elQkoMIUihKdoaMwtAhtT6R3m8X6s7HCvO ehyHfB7WT9h2ZqIsDTI16loSTvlC3tL1uOcfxmXM3SOTwPrhqz4DpZX2fMBhkbNH1j TzPA1eXkOgawg== Received: from cfbb000407.r.cam.camfibre.uk ([185.219.108.64] 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.2) (envelope-from ) id 1mzJ5X-00DIPG-1n; Mon, 20 Dec 2021 13:52:27 +0000 Date: Mon, 20 Dec 2021 13:52:26 +0000 Message-ID: <877dbzwfhh.wl-maz@kernel.org> From: Marc Zyngier To: Hector Martin Cc: Thomas Gleixner , Rob Herring , Sven Peter , Alyssa Rosenzweig , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH 6/6] irqchip/apple-aic: Add support for AICv2 In-Reply-To: <4a83dfb1-3188-8b09-fc60-d3083230fb54@marcan.st> References: <20211209043249.65474-1-marcan@marcan.st> <20211209043249.65474-7-marcan@marcan.st> <87o85lu0ck.wl-maz@kernel.org> <4a83dfb1-3188-8b09-fc60-d3083230fb54@marcan.st> 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: quoted-printable X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: marcan@marcan.st, tglx@linutronix.de, robh+dt@kernel.org, sven@svenpeter.dev, alyssa@rosenzweig.io, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org 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: devicetree@vger.kernel.org On Sat, 18 Dec 2021 06:02:24 +0000, Hector Martin wrote: >=20 > On 13/12/2021 03.47, Marc Zyngier wrote: > >> + * This is followed by a set of event registers, each 16K page aligne= d. > >> + * The first one is the AP event register we will use. Unfortunately, > >> + * the actual implemented die count is not specified anywhere in the > >> + * capability registers, so we have to explcitly specify the event > >=20 > > explicitly >=20 > Thanks, fixed! >=20 > >=20 > >> + * register offset in the device tree to remain forward-compatible. > >=20 > > Do the current machines actually have more than a single die? >=20 > Not the current ones, but there are loud rumors everywhere of multi-die > products... might as well try to support them ahead of time. The current > machines *do* have two register sets, implying support for 2-die > configurations, and although no IRQs are ever asserted from hardware, > SW_GEN mode works and you can trigger die-ID 1 events. >=20 > The interpretation of the capability registers comes from what the macOS > driver does (that's the only part I looked at it for, since it's kind of > hard to divine with only a single data point from the hardware). Their > driver is definitely designed for multi die machines already. The > register layout I worked out by probing the hardware; it was blatantly > obvious that there was a second set of IRQ mask arrays after the first, > that macOS didn't use (yet)... >=20 > >> +static struct irq_chip aic2_chip =3D { > >> + .name =3D "AIC2", > >> + .irq_mask =3D aic_irq_mask, > >> + .irq_unmask =3D aic_irq_unmask, > >> + .irq_eoi =3D aic_irq_eoi, > >> + .irq_set_type =3D aic_irq_set_type, > >> +}; > >=20 > > How is the affinity managed if you don't have a callback? A number of > > things are bound to break if you don't have one. And a description of > > how an interrupt gets routed wouldn't go amiss! >=20 > It isn't... we don't know all the details yet, but it seems to be Some > Kind Of Magic=E2=84=A2. >=20 > There definitely is no way of individually mapping IRQs to specific > CPUs; there just aren't enough implemented register bits to allow that. >=20 > What we do have is a per-IRQ config consisting of: >=20 > - Target CPU, 4 bits. This seems to be for pointing IRQs at coprocessors > (there's actually an init dance to map a few IRQs to specific > coprocessors; m1n1 takes care of that right now*). Only 0 sends IRQs to > the AP here, so this is not useful to us. >=20 > - IRQ config group, 3 bits. This selects one of 8 IRQ config registers. > These do indirectly control how the IRQ is delivered; at least they have > some kind of delay value (coalescing?) and I suspect may do some kind of > priority control, though the details of that aren't clear yet. I don't > recall seeing macOS do anything interesting with these groups, I think > it always uses group 0. >=20 > Then each CPU has an IMP-DEF sysreg that allows it to opt-in or opt-out > of receiving IRQs (!). It actually has two bits, so there may be some > kind of priority/subset control here too. By default all other CPUs are > opted out, which isn't great... so m1n1 initializes it to opt in all > CPUs to IRQ delivery. >=20 > The actual delivery flow here seems to be something like AIC/something > picks a CPU (using some kind of heuristic/CPU state? I noticed WFI seems > to have an effect here) for initial delivery, and if the IRQ isn't acked > in a timely manner, it punts and broadcasts the IRQ to all CPUs. The IRQ > ack register is shared by all CPUs; I don't know if there is some kind > of per-CPU difference in what it can return, but I haven't observed that > yet, so I guess whatever CPU gets the IRQ gets to handle anything that > is pending. >=20 > There are also some extra features; e.g. there is definitely a set of > registers for measuring IRQ latency (tells you how long it took from IRQ > assertion to the CPU acking it). There's also some kind of global > control over which CPU *cluster* is tried first for delivery (defaults > to e-cluster, but you can change it to either p-cluster). We don't use > those right now. >=20 > So there is definitely room for further research here, but the current > state of affairs is the driver doesn't do affinity at all, and IRQs are > handled by "some" CPU. In practice, I see a decent (but not completely > uniform) spread of which CPU handles any given IRQ. I assume it's > something like it prefers a busy CPU, to avoid waking up a core just to > handle an IRQ. The main issue with such magic is that a number of things will break in a spectacular way for a bunch of drivers. We have a whole class of (mostly PCI) devices that have per-queue interrupts, each one bound to a CPU core. The drivers fully expect the interrupt for a given queue to fire on a given CPU, and *only* this one as they would, for example, use per-CPU data to get the context of the queue. With an automatic spread of interrupts, this totally breaks. Probably because the core will refuse to use managed interrupts due to the lack of affinity setting callback. And even if you provide a dummy one, it is the endpoint drivers that will explode. The only way I can imagine to make this work is to force these interrupts to be threaded so that the thread can run on a different CPU than the one the interrupt has been taken on. Performance-wise, this is likely to be a pig. I guess we will have to find ways to live with this in the long run, and maybe teach the core code of these weird behaviours. Thanks, M. --=20 Without deviation from the norm, progress is not possible.