From: Valentin Schneider <valentin.schneider@arm.com> To: Marc Zyngier <maz@kernel.org> Cc: Guenter Roeck <linux@roeck-us.net>, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Andrew Lunn <andrew@lunn.ch>, Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>, Jason Cooper <jason@lakedaemon.net>, Scott Branden <sbranden@broadcom.com>, Gregory Clement <gregory.clement@bootlin.com>, Florian Fainelli <f.fainelli@gmail.com>, Ray Jui <rjui@broadcom.com>, Thomas Gleixner <tglx@linutronix.de>, Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Subject: Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq() Date: Tue, 15 Dec 2020 11:14:50 +0000 [thread overview] Message-ID: <jhjim93tj6l.mognet@arm.com> (raw) In-Reply-To: <38f8fbe9ceb7a0adb47e62d62260b297@kernel.org> On 15/12/20 10:19, Marc Zyngier wrote: > Hi Gunter, > > On 2020-12-15 00:21, Guenter Roeck wrote: >> On Mon, Nov 09, 2020 at 09:41:19AM +0000, Valentin Schneider wrote: >>> As done for the Arm GIC irqchips, move IPIs to >>> handle_percpu_devid_irq() as >>> handle_percpu_devid_fasteoi_ipi() isn't actually required. >>> >>> Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> >> >> This patch results in boot failures (silent stall) for the qemu >> raspi2 emulation. Unfortunately it can not be reverted because >> handle_percpu_devid_fasteoi_ipi no longer exists in next-20201214, >> so I don't know if it is the only problem. > > This is odd. This works just fine for me on both the RPi2 and 3 > emulation, running a full Debian userspace. Could this be caused > by the version of QEMU you are using? Here's what I have: > > $ qemu-system-arm --version > QEMU emulator version 5.1.0 (Debian 1:5.1+dfsg-4+b1) > > Could you try the following hack and let me know if that helps? > Thanks for looking into this. It does look like I inverted the ordering of that mailbox write vs the handling of the IPI. I don't see how the IPI could mess with the mailbox (unless some creative use of irq_work / smp_call), but in any case having the write in irq_ack() as you've done below should restore said ordering. > Thanks, > > M. > > diff --git a/drivers/irqchip/irq-bcm2836.c > b/drivers/irqchip/irq-bcm2836.c > index 5f5eb8877c41..25c9a9c06e41 100644 > --- a/drivers/irqchip/irq-bcm2836.c > +++ b/drivers/irqchip/irq-bcm2836.c > @@ -167,7 +167,7 @@ static void bcm2836_arm_irqchip_handle_ipi(struct > irq_desc *desc) > chained_irq_exit(chip, desc); > } > > -static void bcm2836_arm_irqchip_ipi_eoi(struct irq_data *d) > +static void bcm2836_arm_irqchip_ipi_ack(struct irq_data *d) > { > int cpu = smp_processor_id(); > > @@ -195,7 +195,7 @@ static struct irq_chip bcm2836_arm_irqchip_ipi = { > .name = "IPI", > .irq_mask = bcm2836_arm_irqchip_dummy_op, > .irq_unmask = bcm2836_arm_irqchip_dummy_op, > - .irq_eoi = bcm2836_arm_irqchip_ipi_eoi, > + .irq_ack = bcm2836_arm_irqchip_ipi_ack, > .ipi_send_mask = bcm2836_arm_irqchip_ipi_send_mask, > };
WARNING: multiple messages have this Message-ID (diff)
From: Valentin Schneider <valentin.schneider@arm.com> To: Marc Zyngier <maz@kernel.org> Cc: Andrew Lunn <andrew@lunn.ch>, Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>, Jason Cooper <jason@lakedaemon.net>, Scott Branden <sbranden@broadcom.com>, Ray Jui <rjui@broadcom.com>, Gregory Clement <gregory.clement@bootlin.com>, linux-kernel@vger.kernel.org, Florian Fainelli <f.fainelli@gmail.com>, Guenter Roeck <linux@roeck-us.net>, Thomas Gleixner <tglx@linutronix.de>, linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Subject: Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq() Date: Tue, 15 Dec 2020 11:14:50 +0000 [thread overview] Message-ID: <jhjim93tj6l.mognet@arm.com> (raw) In-Reply-To: <38f8fbe9ceb7a0adb47e62d62260b297@kernel.org> On 15/12/20 10:19, Marc Zyngier wrote: > Hi Gunter, > > On 2020-12-15 00:21, Guenter Roeck wrote: >> On Mon, Nov 09, 2020 at 09:41:19AM +0000, Valentin Schneider wrote: >>> As done for the Arm GIC irqchips, move IPIs to >>> handle_percpu_devid_irq() as >>> handle_percpu_devid_fasteoi_ipi() isn't actually required. >>> >>> Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> >> >> This patch results in boot failures (silent stall) for the qemu >> raspi2 emulation. Unfortunately it can not be reverted because >> handle_percpu_devid_fasteoi_ipi no longer exists in next-20201214, >> so I don't know if it is the only problem. > > This is odd. This works just fine for me on both the RPi2 and 3 > emulation, running a full Debian userspace. Could this be caused > by the version of QEMU you are using? Here's what I have: > > $ qemu-system-arm --version > QEMU emulator version 5.1.0 (Debian 1:5.1+dfsg-4+b1) > > Could you try the following hack and let me know if that helps? > Thanks for looking into this. It does look like I inverted the ordering of that mailbox write vs the handling of the IPI. I don't see how the IPI could mess with the mailbox (unless some creative use of irq_work / smp_call), but in any case having the write in irq_ack() as you've done below should restore said ordering. > Thanks, > > M. > > diff --git a/drivers/irqchip/irq-bcm2836.c > b/drivers/irqchip/irq-bcm2836.c > index 5f5eb8877c41..25c9a9c06e41 100644 > --- a/drivers/irqchip/irq-bcm2836.c > +++ b/drivers/irqchip/irq-bcm2836.c > @@ -167,7 +167,7 @@ static void bcm2836_arm_irqchip_handle_ipi(struct > irq_desc *desc) > chained_irq_exit(chip, desc); > } > > -static void bcm2836_arm_irqchip_ipi_eoi(struct irq_data *d) > +static void bcm2836_arm_irqchip_ipi_ack(struct irq_data *d) > { > int cpu = smp_processor_id(); > > @@ -195,7 +195,7 @@ static struct irq_chip bcm2836_arm_irqchip_ipi = { > .name = "IPI", > .irq_mask = bcm2836_arm_irqchip_dummy_op, > .irq_unmask = bcm2836_arm_irqchip_dummy_op, > - .irq_eoi = bcm2836_arm_irqchip_ipi_eoi, > + .irq_ack = bcm2836_arm_irqchip_ipi_ack, > .ipi_send_mask = bcm2836_arm_irqchip_ipi_send_mask, > }; _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-12-15 11:16 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: irq/irqchip-next] " irqchip-bot for Valentin Schneider 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 [this message] 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=jhjim93tj6l.mognet@arm.com \ --to=valentin.schneider@arm.com \ --cc=Lorenzo.Pieralisi@arm.com \ --cc=andrew@lunn.ch \ --cc=f.fainelli@gmail.com \ --cc=gregory.clement@bootlin.com \ --cc=jason@lakedaemon.net \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@roeck-us.net \ --cc=maz@kernel.org \ --cc=rjui@broadcom.com \ --cc=sbranden@broadcom.com \ --cc=sebastian.hesselbarth@gmail.com \ --cc=tglx@linutronix.de \ /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: linkBe 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.