From patchwork Thu Sep 3 18:32:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Zyngier X-Patchwork-Id: 11754485 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 76771618 for ; Thu, 3 Sep 2020 18:32:53 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 4A4F220709 for ; Thu, 3 Sep 2020 18:32:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="WLtu49tx"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="Zb6qS+jE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4A4F220709 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+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=SSGrLfbr0wv5MWGOUnTT0++N9wMsBKL8wg3nCM9BOoY=; b=WLtu49txMSvb2b7PSZ/UmwHMvu J6EBs5ewo+49MVL6rrIeeQQN6WTAGzdlYKrDz9WXIR5cyo0ysjBGlb29+16b8gi8dFWEF86QmTeLU 4nk9EpZ3N42x5Nkkrno3jyo2IR2uGMOwOqiGtElDQaCMNpJt8vlhEZGxG66hrPZ2ESVWdliImk6uT 8vqtrEsWY6+GnaExEpa52cB87UIHIKtVxxP5Yk8HpmaxvnWhmGr2lSBU6b9lQc36PSrSjDvDHO8Gu 1SrFk7yH8ws94+MyJgHVFaClu1sPUXM0hjGWQm2nK3G7ejoznS0PD1ZS5TXvehmoris2+KfMeqNwZ gyPsDvqw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kDu2C-00082a-Pn; Thu, 03 Sep 2020 18:32:32 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kDu28-000813-PM for linux-arm-kernel@lists.infradead.org; Thu, 03 Sep 2020 18:32:29 +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 E7B7120709; Thu, 3 Sep 2020 18:32:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599157948; bh=Xk7ANwQEUDdVwcEafwZ17QaNZ9ncSLQF0MOCl+r1vEQ=; h=From:To:Cc:Subject:Date:From; b=Zb6qS+jEMpKgcKdRy8YKYY+BW1jGpQMAx6pjWraBl5y2+vYOvm9W71bYEiS7peFNP 1z3gKnGCWHORRXUrpRzzdbS1JBsUGQ3fh9zPootJRdxYQyA2i6XtTeCdWq84/MpZhd 86X47MPsX+qWERHcAqDTQk1uRYRXJo5C2pZSnNoo= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=wait-a-minute.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kDu25-008xrJ-WA; Thu, 03 Sep 2020 19:32:26 +0100 From: Marc Zyngier To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 0/4] irqchip/gic: Generalize use of HW-based retriggering Date: Thu, 3 Sep 2020 19:32:02 +0100 Message-Id: <20200903183206.104838-1-maz@kernel.org> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, jason@lakedaemon.net, tglx@linutronix.de, valentin.schneider@arm.com, kernel-team@android.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-20200903_143229_009061_81B2B7B0 X-CRM114-Status: GOOD ( 11.15 ) X-Spam-Score: -5.2 (-----) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-5.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/, high trust [198.145.29.99 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Gleixner , kernel-team@android.com, Jason Cooper , Valentin Schneider Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org Valentin recently pointed out that that relying on SW-based retrigger with any of the GIC interrupt controllers is both inefficient and slightly broken, as it messes the GIC's own state machine. For this to work with the hierarchical irqchip model that the GIC uses, we need check_irq_resend grow an understanding of hierarchies, something it has been lacking for some time. The 3 other patches simply implement the HW resend callbacks, and finally prevent any SW resend for the GICs. Unless anyone objects, I plan to take this into 5.10. * From v1: - Dropped most of the patches in favour of a teaching the core kernel to use irq_chip_retriger_hierarchy() Marc Zyngier (2): genirq: Walk the irq_data hierarchy when resending an interrupt irqchip/git-v3-its: Implement irq_retrigger callback for device-triggered LPIs Valentin Schneider (2): irqchip/gic-v2, v3: Implement irq_chip->irq_retrigger() irqchip/gic-v2, v3: Prevent SW resends entirely drivers/irqchip/irq-gic-v3-its.c | 6 ++++++ drivers/irqchip/irq-gic-v3.c | 12 +++++++++++- drivers/irqchip/irq-gic.c | 12 +++++++++++- kernel/irq/resend.c | 15 +++++++++++++-- 4 files changed, 41 insertions(+), 4 deletions(-)