From patchwork Wed Nov 28 14:43:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Richter X-Patchwork-Id: 10702781 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 051DC13AD for ; Wed, 28 Nov 2018 14:43:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E706D2D570 for ; Wed, 28 Nov 2018 14:43:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DB1472D581; Wed, 28 Nov 2018 14:43:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 691E22D570 for ; Wed, 28 Nov 2018 14:43:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:Message-ID:Date :Subject:To:From:Reply-To:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=xarsa7RvnX4SwvO8LGp4S38GgI+WRT8M8J5wwagfm5E=; b=mRjOTM/FeFvrTP hF5tIGOJnZPxy0KcyFjb2iP/S8Vjql1XfrS0aYQGR6ferGkVDhBusjxFSBswqkVrYl/mKXcUWOo5Y pGfcnvwKrprdOdkZqEmL0F281eN5GwnLVZyiDIIx5oCk7Tfy7zQ4N2FX/C08+ipvOnIA0DcR/COzV X9W8mRhroLD/4YQCAIchYFe+0xDunYEte3Boi6McO4LZpN0Jf9tfMXWBBnFpp3s0yR2sLHepJVkfk DNgO/0mbLi3USlUx3uNGEXO4wkTkLdQcHq3UgFfYv7h3uwnC+ud+rs0Cm44nkgLMrpxqQL66wgDwJ arxB72oRJWMygTzFruHA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gS13g-00031p-GV; Wed, 28 Nov 2018 14:43:20 +0000 Received: from mail-eopbgr800052.outbound.protection.outlook.com ([40.107.80.52] helo=NAM03-DM3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gS13c-0002zo-BA for linux-arm-kernel@lists.infradead.org; Wed, 28 Nov 2018 14:43:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Oo+ggN5JeIRB+P3lMdR1qYBMc9FQSAmmo/HD1uTRiMk=; b=N3Ce4URY7aqDLa94I2OoVQu2+IDUrrS0FxblJeuaqAyhqF40bmZYEW9Pexu9r7UYXqu5ED9YWWSptLuUEwJhbJYUZw23yPm3piUEZogPgBcjEj6yRLwJbqA2L+LA+n5fheAJM3vBOFuJl+JVwW0ZlPfItoAb/lZIf26aiwbXTWY= Received: from SN6PR07MB5326.namprd07.prod.outlook.com (52.135.105.33) by SN6PR07MB5182.namprd07.prod.outlook.com (52.135.101.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1361.16; Wed, 28 Nov 2018 14:43:03 +0000 Received: from SN6PR07MB5326.namprd07.prod.outlook.com ([fe80::ccc7:d111:7f3d:667d]) by SN6PR07MB5326.namprd07.prod.outlook.com ([fe80::ccc7:d111:7f3d:667d%4]) with mapi id 15.20.1361.018; Wed, 28 Nov 2018 14:43:02 +0000 From: Robert Richter To: Marc Zyngier , Thomas Gleixner , Jason Cooper Subject: [PATCH v2 00/10] irqdomain, gic-v3-its: Implement late irq domain initialization Thread-Topic: [PATCH v2 00/10] irqdomain, gic-v3-its: Implement late irq domain initialization Thread-Index: AQHUhyiqlMdEsFpCz0uB8aDmjfRnhg== Date: Wed, 28 Nov 2018 14:43:02 +0000 Message-ID: <20181128144240.28727-1-rrichter@cavium.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P194CA0042.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::19) To SN6PR07MB5326.namprd07.prod.outlook.com (2603:10b6:805:73::33) x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [77.14.124.106] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; SN6PR07MB5182; 6:wdFxme+Sb2zkJoJCSqM1JGLzHxYa4js2DNnJ9rng072Ds87/fHje0XbG2JkKeQW9RAuUFnj6K5gNBfvQ1uz8VFNsy2R1PUcFLsuItVvpFzhjsnIQc/8oz25M4RJbqD+54qNDvQErE69t9xeCYDkpUv1QEjIlw02BKMats9lQqtybUssM2eZ9VCQD016w/ilBiogKbVoGrlNjXtYKSdqkQCHeYzsdKyQqJ6T1YnEjEM6QZ1+T0prAo6gWBOcMFox4qfJqiIeX3autQh9YVrfqwHMEiyN7VUl1YImveGjFY09KrfgeNXlOplg+lOkigOtbRJLlEjRZnOfl/gUApfd6qA6kAIH5DphJ8EYpXNurOX+oyHPW4Ig2zVS5M9JM95+IhqdTMCrJhV1cUK03StgO3E+waQmL0b8CbhNqWa3ifs3Gae6wjjkFatXuErSFEeZDhwQNnBHxYHNeJtPSJ+WHtA==; 5:B/+BWufQye9gBOgykg/QPjQbw6kXuu0FJOBIV+cZGSR4s2cVpj3+bIoVi+zoLPml5rSQe1+ZJdxoBv7OW/ObWlIUK0VKfaybwB5DARP5PLUTBwgV1whCi1pajrYVFlGEcsrpKnm6+bkycBu7LjRwt6j81VwPcJJPLbjmARbJFCc=; 7:+xKf3G9h/GIYJwEb30nVv7GpSdk4fUP3m1+v+seaPe1iexohAVsWwxMImuSqSjNFXud0Fi7jsNEGSoUr3Vb1BY+FkDQNrwd9kpfCfFRvb39q5w9mROLSX1gYT2TYP4B8JsIQr+i2qjox6BGbjv4VAQ== x-ms-office365-filtering-correlation-id: 1a1f6797-2a9d-4093-21ec-08d6553fccbf x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:SN6PR07MB5182; x-ms-traffictypediagnostic: SN6PR07MB5182: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Robert.Richter@cavium.com; x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(3231443)(999002)(944501410)(52105112)(148016)(149066)(150057)(6041310)(20161123560045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:SN6PR07MB5182; BCL:0; PCL:0; RULEID:; SRVR:SN6PR07MB5182; x-forefront-prvs: 0870212862 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(136003)(376002)(39860400002)(396003)(366004)(189003)(199004)(7416002)(5660300001)(6436002)(36756003)(54906003)(39060400002)(110136005)(6116002)(3846002)(53936002)(97736004)(52116002)(102836004)(4326008)(476003)(316002)(14454004)(2616005)(71190400001)(71200400001)(6512007)(1076002)(6506007)(7736002)(305945005)(486006)(81156014)(81166006)(386003)(72206003)(2906002)(99286004)(68736007)(8936002)(478600001)(106356001)(186003)(105586002)(6486002)(14444005)(66066001)(26005)(25786009)(256004)(8676002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR07MB5182; H:SN6PR07MB5326.namprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 2mhawP3HGWX3drmi/fwo0kE6bJpmq9OpEPac+KwpitAvONQSl25gvSXvk6gTVce+88RjXDNkCHf+gPAcW8TorhOpJLHBkOpSQFlrCIgi8ZDbR7ERTYZdx+90E52980x1/IKzLtfG86a7wsYgBcRYUQ3xEODQq82Sl5xaM1cCNZYoo858qiSp+YhW0PRfQfvGTcHFTcD9ACoRlnFFH8Fn/cqCk6tpkQ6luc0DMhcNBeUV4bjX4rwg9K643/9fL2qlyH1WxBdT9aiUoyXaeJWrN2nIko9spdC3mcAB4XCWIR0IbSeRVAwBRiyNuHcfmUps81B0IGP0UFxuU6dDKMfKrzYrU0TvkqUl9T4Gw3k9c8w= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: MIME-Version: 1.0 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a1f6797-2a9d-4093-21ec-08d6553fccbf X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Nov 2018 14:43:02.9007 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR07MB5182 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181128_064316_385442_878AC998 X-CRM114-Status: GOOD ( 14.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lorenzo Pieralisi , Stuart Yoder , Julien Thierry , Will Deacon , "linux-kernel@vger.kernel.org" , "Richter, Robert" , Matthias Brugger , "linux-arm-kernel@lists.infradead.org" , Laurentiu Tudor Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP This patch series is a rework of the gic-v3-its initialization. It is in preparation of a further series that uses CMA memory allocation for ITS tables. For this the CMA framework must be available and thus ITS needs to be initialized after the arch_initcalls. This requires two major reworks. First we must remove all irq domain init order dependencies (patches #1-#5), second the ITS initialization must be split into an early probe and a later init part (patches #6-#10). Patch #1 introduces a new interface to request an irq domain, see the patch description for details. In patches #2-#5 all ITS related irq domains are converted to use the new interface. There are no order dependencies for parent and client irq domain initialization anymore which allows us to initialize all ITS irq domains in the same initcall (moving to the later subsys_initcall). Note that I do not have fsl hardware available, the code should work, but is only carefully reviewed and compile tested, please test on that hardware. The remaining patches #6-#10 are an incremental rework of the ITS initialization, basically splitting probe and init (patch #7) and separating it from gic-v3 code (patch #8). Patches #9 and #10 change initcall levels for various drivers. Patches have been tested with Cavium ThunderX and ThunderX2. I have an implementation of CMA ITS table allocation on top of this series available, I will send out patches for this in a couple of days. v2: * fix check for domain match in irq_domain_handle_requests() * add comment that describes this check in irq_domain_handle_ requests() Robert Richter (10): irqdomain: Add interface to request an irq domain irqchip/gic-v3-its-platform-msi: Remove domain init order dependencies irqchip/irq-gic-v3-its-pci-msi: Remove domain init order dependencies irqchip/irq-gic-v3-its-fsl-mc-msi: Remove domain init order dependencies fsl-mc/dprc-driver: Remove domain init order dependencies irqchip/gic-v3-its: Initialize its nodes in probe order irqchip/gic-v3-its: Split probing from its node initialization irqchip/gic-v3-its: Decouple its initialization from gic irqchip/gic-v3-its: Initialize its nodes later irqchip/gic-v3-its: Initialize MSIs with subsys_initcalls drivers/bus/fsl-mc/dprc-driver.c | 41 +++++++ drivers/bus/fsl-mc/fsl-mc-msi.c | 6 +- drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c | 49 +++++--- drivers/irqchip/irq-gic-v3-its-pci-msi.c | 68 ++++++----- drivers/irqchip/irq-gic-v3-its-platform-msi.c | 56 +++++++-- drivers/irqchip/irq-gic-v3-its.c | 160 ++++++++++++++++--------- drivers/irqchip/irq-gic-v3.c | 12 +- include/linux/cpuhotplug.h | 1 + include/linux/irqchip/arm-gic-v3.h | 5 +- include/linux/irqdomain.h | 15 +++ kernel/irq/irqdomain.c | 163 ++++++++++++++++++++++++++ 11 files changed, 446 insertions(+), 130 deletions(-)