All of lore.kernel.org
 help / color / mirror / Atom feed
From: "irqchip-bot for Valentin Schneider" <tip-bot2@linutronix.de>
To: linux-kernel@vger.kernel.org
Cc: Valentin Schneider <valentin.schneider@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	tglx@linutronix.de
Subject: [irqchip: irq/irqchip-next] irqchip/gic, gic-v3: Make SGIs use handle_percpu_devid_irq()
Date: Fri, 11 Dec 2020 14:58:44 -0000	[thread overview]
Message-ID: <160769872415.3364.2359962393342316449.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20201109094121.29975-2-valentin.schneider@arm.com>

The following commit has been merged into the irq/irqchip-next branch of irqchip:

Commit-ID:     6abbd6988971aaa607b026eaa0ffd2301352f2ea
Gitweb:        https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/6abbd6988971aaa607b026eaa0ffd2301352f2ea
Author:        Valentin Schneider <valentin.schneider@arm.com>
AuthorDate:    Mon, 09 Nov 2020 09:41:17 
Committer:     Marc Zyngier <maz@kernel.org>
CommitterDate: Fri, 11 Dec 2020 14:47:49 

irqchip/gic, gic-v3: Make SGIs use handle_percpu_devid_irq()

handle_percpu_devid_fasteoi_ipi() states:

 * The biggest difference with the IRQ version is that the interrupt is
 * EOIed early, as the IPI could result in a context switch, and we need to
 * make sure the IPI can fire again

All that can actually happen scheduler-wise within the handling of an IPI
is the raising of TIF_NEED_RESCHED (and / or folding thereof into
preempt_count); see scheduler_ipi() or sched_ttwu_pending() for instance.

Said flag / preempt_count is evaluated some time later before returning to
whatever context was interrupted, and this gates a call to
preempt_schedule_irq() (arm64_preempt_schedule_irq() in arm64).

Per the above, SGI's do not need a different handler than PPI's, so make
them use the same (handle_percpu_devid_irq).

Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20201109094121.29975-2-valentin.schneider@arm.com
---
 drivers/irqchip/irq-gic-v3.c | 6 ------
 drivers/irqchip/irq-gic.c    | 8 +-------
 2 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 16fecc0..3fc6537 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -1302,12 +1302,6 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq,
 
 	switch (__get_intid_range(hw)) {
 	case SGI_RANGE:
-		irq_set_percpu_devid(irq);
-		irq_domain_set_info(d, irq, hw, chip, d->host_data,
-				    handle_percpu_devid_fasteoi_ipi,
-				    NULL, NULL);
-		break;
-
 	case PPI_RANGE:
 	case EPPI_RANGE:
 		irq_set_percpu_devid(irq);
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index a3c2f18..b1d9c22 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -1005,13 +1005,7 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq,
 	struct irq_data *irqd = irq_desc_get_irq_data(irq_to_desc(irq));
 
 	switch (hw) {
-	case 0 ... 15:
-		irq_set_percpu_devid(irq);
-		irq_domain_set_info(d, irq, hw, &gic->chip, d->host_data,
-				    handle_percpu_devid_fasteoi_ipi,
-				    NULL, NULL);
-		break;
-	case 16 ... 31:
+	case 0 ... 31:
 		irq_set_percpu_devid(irq);
 		irq_domain_set_info(d, irq, hw, &gic->chip, d->host_data,
 				    handle_percpu_devid_irq, NULL, NULL);

  reply	other threads:[~2020-12-11 15:27 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-09  9:41 [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() Valentin Schneider
2020-11-09  9:41 ` Valentin Schneider
2020-11-09  9:41 ` [PATCH 1/5] irqchip/gic, gic-v3: Make SGIs use handle_percpu_devid_irq() Valentin Schneider
2020-11-09  9:41   ` Valentin Schneider
2020-12-11 14:58   ` irqchip-bot for Valentin Schneider [this message]
2020-11-09  9:41 ` [PATCH 2/5] irqchip/armada-370-xp: Make IPIs " Valentin Schneider
2020-11-09  9:41   ` Valentin Schneider
2020-12-11 14:58   ` [irqchip: irq/irqchip-next] " irqchip-bot for Valentin Schneider
2020-11-09  9:41 ` [PATCH 3/5] irqchip/bcm2836: " Valentin Schneider
2020-11-09  9:41   ` Valentin Schneider
2020-12-11 14:58   ` [irqchip: irq/irqchip-next] " irqchip-bot for Valentin Schneider
2020-12-15  0:21   ` [PATCH 3/5] " Guenter Roeck
2020-12-15  0:21     ` Guenter Roeck
2020-12-15 10:19     ` Marc Zyngier
2020-12-15 10:19       ` Marc Zyngier
2020-12-15 11:14       ` Valentin Schneider
2020-12-15 11:14         ` Valentin Schneider
2020-12-15 12:14         ` Marc Zyngier
2020-12-15 12:14           ` Marc Zyngier
2020-12-15 15:21       ` Guenter Roeck
2020-12-15 15:21         ` Guenter Roeck
2020-12-15 15:26         ` Marc Zyngier
2020-12-15 15:26           ` Marc Zyngier
2020-12-15 15:39           ` Guenter Roeck
2020-12-15 15:39             ` Guenter Roeck
2020-12-15 15:46             ` Marc Zyngier
2020-12-15 15:46               ` Marc Zyngier
2020-12-15 16:23               ` Guenter Roeck
2020-12-15 16:23                 ` Guenter Roeck
2020-12-18  5:18               ` Guenter Roeck
2020-12-18  5:18                 ` Guenter Roeck
2020-12-18 18:40                 ` Marc Zyngier
2020-12-18 18:40                   ` Marc Zyngier
2020-12-18 18:47                   ` Guenter Roeck
2020-12-18 18:47                     ` Guenter Roeck
2020-12-18 18:40             ` [irqchip: irq/irqchip-next] irqchip/bcm2836: Fix IPI acknowledgement after conversion to handle_percpu_devid_irq irqchip-bot for Marc Zyngier
2020-12-18 20:36               ` Valentin Schneider
2020-12-18 20:53                 ` Marc Zyngier
2020-11-09  9:41 ` [PATCH 4/5] irqchip/hip04: Make IPIs use handle_percpu_devid_irq() Valentin Schneider
2020-11-09  9:41   ` Valentin Schneider
2020-12-11 14:58   ` [irqchip: irq/irqchip-next] " irqchip-bot for Valentin Schneider
2020-11-09  9:41 ` [PATCH 5/5] Revert "genirq: Add fasteoi IPI flow" Valentin Schneider
2020-11-09  9:41   ` Valentin Schneider
2020-12-11 14:58   ` [irqchip: irq/irqchip-next] " irqchip-bot for Valentin Schneider
2020-12-11 15:01 ` [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() Marc Zyngier
2020-12-11 15:01   ` Marc Zyngier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=160769872415.3364.2359962393342316449.tip-bot2@tip-bot2 \
    --to=tip-bot2@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=valentin.schneider@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.