linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi()
@ 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
                   ` (5 more replies)
  0 siblings, 6 replies; 19+ messages in thread
From: Valentin Schneider @ 2020-11-09  9:41 UTC (permalink / raw)
  To: linux-kernel, linux-arm-kernel
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Marc Zyngier, Gregory Clement, Florian Fainelli, Ray Jui,
	Thomas Gleixner, Sebastian Hesselbarth

Hi folks,

While hacking on the GIC flow handlers, I grew increasingly suspicious of 
handle_percpu_devid_fasteoi_ipi() and thus did a bit of digging. AFAICT it isn't
actually needed and handle_percpu_devid_irq() would suffice. Argumentation is in
patch 1.

Tested on my Juno (GICv2) and eMAG (GICv3).

Whichever way this goes I owe Marc some pastries, given I either
- Missed something and created some noise
- Turned my brain off back when reviewing this flow handler
so maybe just start with pinging me what you want...

Valentin Schneider (5):
  irqchip/gic, gic-v3: Make SGIs use handle_percpu_devid_irq()
  irqchip/armada-370-xp: Make IPIs use handle_percpu_devid_irq()
  irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  irqchip/hip04: Make IPIs use handle_percpu_devid_irq()
  Revert "genirq: Add fasteoi IPI flow"

 drivers/irqchip/irq-armada-370-xp.c |  2 +-
 drivers/irqchip/irq-bcm2836.c       |  2 +-
 drivers/irqchip/irq-gic-v3.c        |  6 ------
 drivers/irqchip/irq-gic.c           |  8 +-------
 drivers/irqchip/irq-hip04.c         |  6 +-----
 include/linux/irq.h                 |  1 -
 kernel/irq/chip.c                   | 27 ---------------------------
 7 files changed, 4 insertions(+), 48 deletions(-)

--
2.27.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 1/5] irqchip/gic, gic-v3: Make SGIs use handle_percpu_devid_irq()
  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 2/5] irqchip/armada-370-xp: Make IPIs " Valentin Schneider
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 19+ messages in thread
From: Valentin Schneider @ 2020-11-09  9:41 UTC (permalink / raw)
  To: linux-kernel, linux-arm-kernel
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Marc Zyngier, Gregory Clement, Florian Fainelli, Ray Jui,
	Thomas Gleixner, Sebastian Hesselbarth

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>
---
 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 16fecc0febe8..3fc65375cbe0 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 6053245a4754..9edbe5b5c4ac 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);
-- 
2.27.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 2/5] irqchip/armada-370-xp: Make IPIs use handle_percpu_devid_irq()
  2020-11-09  9:41 [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() 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-11-09  9:41 ` [PATCH 3/5] irqchip/bcm2836: " Valentin Schneider
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 19+ messages in thread
From: Valentin Schneider @ 2020-11-09  9:41 UTC (permalink / raw)
  To: linux-kernel, linux-arm-kernel
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Marc Zyngier, Gregory Clement, Florian Fainelli, Ray Jui,
	Thomas Gleixner, Sebastian Hesselbarth

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>
---
 drivers/irqchip/irq-armada-370-xp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index d7eb2e93db8f..32938dfc0e46 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -382,7 +382,7 @@ static int armada_370_xp_ipi_alloc(struct irq_domain *d,
 		irq_set_percpu_devid(virq + i);
 		irq_domain_set_info(d, virq + i, i, &ipi_irqchip,
 				    d->host_data,
-				    handle_percpu_devid_fasteoi_ipi,
+				    handle_percpu_devid_irq,
 				    NULL, NULL);
 	}
 
-- 
2.27.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-11-09  9:41 [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() 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 ` [PATCH 2/5] irqchip/armada-370-xp: Make IPIs " Valentin Schneider
@ 2020-11-09  9:41 ` Valentin Schneider
  2020-12-15  0:21   ` Guenter Roeck
  2020-11-09  9:41 ` [PATCH 4/5] irqchip/hip04: " Valentin Schneider
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 19+ messages in thread
From: Valentin Schneider @ 2020-11-09  9:41 UTC (permalink / raw)
  To: linux-kernel, linux-arm-kernel
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Marc Zyngier, Gregory Clement, Florian Fainelli, Ray Jui,
	Thomas Gleixner, Sebastian Hesselbarth

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>
---
 drivers/irqchip/irq-bcm2836.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c
index 97838eb705f9..36b973ad7db1 100644
--- a/drivers/irqchip/irq-bcm2836.c
+++ b/drivers/irqchip/irq-bcm2836.c
@@ -209,7 +209,7 @@ static int bcm2836_arm_irqchip_ipi_alloc(struct irq_domain *d,
 		irq_set_percpu_devid(virq + i);
 		irq_domain_set_info(d, virq + i, i, &bcm2836_arm_irqchip_ipi,
 				    d->host_data,
-				    handle_percpu_devid_fasteoi_ipi,
+				    handle_percpu_devid_irq,
 				    NULL, NULL);
 	}
 
-- 
2.27.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 4/5] irqchip/hip04: Make IPIs use handle_percpu_devid_irq()
  2020-11-09  9:41 [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() Valentin Schneider
                   ` (2 preceding siblings ...)
  2020-11-09  9:41 ` [PATCH 3/5] irqchip/bcm2836: " Valentin Schneider
@ 2020-11-09  9:41 ` Valentin Schneider
  2020-11-09  9:41 ` [PATCH 5/5] Revert "genirq: Add fasteoi IPI flow" Valentin Schneider
  2020-12-11 15:01 ` [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() Marc Zyngier
  5 siblings, 0 replies; 19+ messages in thread
From: Valentin Schneider @ 2020-11-09  9:41 UTC (permalink / raw)
  To: linux-kernel, linux-arm-kernel
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Marc Zyngier, Gregory Clement, Florian Fainelli, Ray Jui,
	Thomas Gleixner, Sebastian Hesselbarth

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>
---
 drivers/irqchip/irq-hip04.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/irqchip/irq-hip04.c b/drivers/irqchip/irq-hip04.c
index 9b73dcfaf48d..a6ed877d9dd3 100644
--- a/drivers/irqchip/irq-hip04.c
+++ b/drivers/irqchip/irq-hip04.c
@@ -296,11 +296,7 @@ static void hip04_irq_cpu_init(struct hip04_irq_data *intc)
 static int hip04_irq_domain_map(struct irq_domain *d, unsigned int irq,
 				irq_hw_number_t hw)
 {
-	if (hw < 16) {
-		irq_set_percpu_devid(irq);
-		irq_set_chip_and_handler(irq, &hip04_irq_chip,
-					 handle_percpu_devid_fasteoi_ipi);
-	} else if (hw < 32) {
+	if (hw < 32) {
 		irq_set_percpu_devid(irq);
 		irq_set_chip_and_handler(irq, &hip04_irq_chip,
 					 handle_percpu_devid_irq);
-- 
2.27.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 5/5] Revert "genirq: Add fasteoi IPI flow"
  2020-11-09  9:41 [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() Valentin Schneider
                   ` (3 preceding siblings ...)
  2020-11-09  9:41 ` [PATCH 4/5] irqchip/hip04: " Valentin Schneider
@ 2020-11-09  9:41 ` Valentin Schneider
  2020-12-11 15:01 ` [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() Marc Zyngier
  5 siblings, 0 replies; 19+ messages in thread
From: Valentin Schneider @ 2020-11-09  9:41 UTC (permalink / raw)
  To: linux-kernel, linux-arm-kernel
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Marc Zyngier, Gregory Clement, Florian Fainelli, Ray Jui,
	Thomas Gleixner, Sebastian Hesselbarth

handle_percpu_devid_fasteoi_ipi() has no more users, and
handle_percpu_devid_irq() can do all that it was supposed to do. Get rid of
it.

This reverts commit c5e5ec033c4ab25c53f1fd217849e75deb0bf7bf.

Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
---
 include/linux/irq.h |  1 -
 kernel/irq/chip.c   | 27 ---------------------------
 2 files changed, 28 deletions(-)

diff --git a/include/linux/irq.h b/include/linux/irq.h
index c54365309e97..ca26bec51cec 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -647,7 +647,6 @@ static inline int irq_set_parent(int irq, int parent_irq)
  */
 extern void handle_level_irq(struct irq_desc *desc);
 extern void handle_fasteoi_irq(struct irq_desc *desc);
-extern void handle_percpu_devid_fasteoi_ipi(struct irq_desc *desc);
 extern void handle_edge_irq(struct irq_desc *desc);
 extern void handle_edge_eoi_irq(struct irq_desc *desc);
 extern void handle_simple_irq(struct irq_desc *desc);
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index b9b9618e1aca..0ae308efa604 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -944,33 +944,6 @@ void handle_percpu_devid_irq(struct irq_desc *desc)
 		chip->irq_eoi(&desc->irq_data);
 }
 
-/**
- * handle_percpu_devid_fasteoi_ipi - Per CPU local IPI handler with per cpu
- *				     dev ids
- * @desc:	the interrupt description structure for this irq
- *
- * 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. We also assume that the arch code has
- * registered an action. If not, we are positively doomed.
- */
-void handle_percpu_devid_fasteoi_ipi(struct irq_desc *desc)
-{
-	struct irq_chip *chip = irq_desc_get_chip(desc);
-	struct irqaction *action = desc->action;
-	unsigned int irq = irq_desc_get_irq(desc);
-	irqreturn_t res;
-
-	__kstat_incr_irqs_this_cpu(desc);
-
-	if (chip->irq_eoi)
-		chip->irq_eoi(&desc->irq_data);
-
-	trace_irq_handler_entry(irq, action);
-	res = action->handler(irq, raw_cpu_ptr(action->percpu_dev_id));
-	trace_irq_handler_exit(irq, action, res);
-}
-
 /**
  * handle_percpu_devid_fasteoi_nmi - Per CPU local NMI handler with per cpu
  *				     dev ids
-- 
2.27.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi()
  2020-11-09  9:41 [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() Valentin Schneider
                   ` (4 preceding siblings ...)
  2020-11-09  9:41 ` [PATCH 5/5] Revert "genirq: Add fasteoi IPI flow" Valentin Schneider
@ 2020-12-11 15:01 ` Marc Zyngier
  5 siblings, 0 replies; 19+ messages in thread
From: Marc Zyngier @ 2020-12-11 15:01 UTC (permalink / raw)
  To: shawnguo, linux, leoyang.li, mark.rutland, zhiqiang.hou,
	Biwen Li, robh+dt, tglx, linux-kernel, Valentin Schneider,
	linux-arm-kernel
  Cc: devicetree, Florian Fainelli, Scott Branden, Biwen Li, Ray Jui,
	Hou Zhiqiang, xiaobo.xie, Lorenzo Pieralisi, Andrew Lunn,
	jiafei.pan, Gregory Clement, Sebastian Hesselbarth

On Mon, 9 Nov 2020 09:41:16 +0000, Valentin Schneider wrote:
> While hacking on the GIC flow handlers, I grew increasingly suspicious of
> handle_percpu_devid_fasteoi_ipi() and thus did a bit of digging. AFAICT it isn't
> actually needed and handle_percpu_devid_irq() would suffice. Argumentation is in
> patch 1.
> 
> Tested on my Juno (GICv2) and eMAG (GICv3).
> 
> [...]

Applied to irq/irqchip-next, thanks!

[1/5] irqchip/gic, gic-v3: Make SGIs use handle_percpu_devid_irq()
      commit: 6abbd6988971aaa607b026eaa0ffd2301352f2ea
[2/5] irqchip/armada-370-xp: Make IPIs use handle_percpu_devid_irq()
      commit: e52e73b7e9f7d08b8c2ef6fb1657105093e22a03
[3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
      commit: ffdad793d579c9286c7b67a86d1a3c890fb32082
[4/5] irqchip/hip04: Make IPIs use handle_percpu_devid_irq()
      commit: a2e042e13ff322ad523a2f131dd6e03e8bc05053
[5/5] Revert "genirq: Add fasteoi IPI flow"
      commit: b388fa50142510fb6477f130bb1b3f05a0a263a1

Cheers,

	M.
-- 
Without deviation from the norm, progress is not possible.



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-11-09  9:41 ` [PATCH 3/5] irqchip/bcm2836: " Valentin Schneider
@ 2020-12-15  0:21   ` Guenter Roeck
  2020-12-15 10:19     ` Marc Zyngier
  0 siblings, 1 reply; 19+ messages in thread
From: Guenter Roeck @ 2020-12-15  0:21 UTC (permalink / raw)
  To: Valentin Schneider
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Marc Zyngier, Gregory Clement, linux-kernel, Florian Fainelli,
	Ray Jui, Thomas Gleixner, linux-arm-kernel,
	Sebastian Hesselbarth

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.

Guenter

---
bisect log:

# bad: [7bba37a1591369e2e506d599b8f5d7d0516b2dbc] Add linux-next specific files for 20201214
# good: [0477e92881850d44910a7e94fc2c46f96faa131f] Linux 5.10-rc7
git bisect start 'HEAD' 'v5.10-rc7'
# good: [fe5c40ab90a1f82ba97294637eaf875cfdd7a05f] Merge remote-tracking branch 'nand/nand/next'
git bisect good fe5c40ab90a1f82ba97294637eaf875cfdd7a05f
# good: [674a0d6de8bd290671f7dff405205871a70300b3] Merge remote-tracking branch 'spi/for-next'
git bisect good 674a0d6de8bd290671f7dff405205871a70300b3
# bad: [8623dae312f73a2ea3230b1c648d3004cfc224ce] Merge remote-tracking branch 'vfio/next'
git bisect bad 8623dae312f73a2ea3230b1c648d3004cfc224ce
# bad: [9e2e5ac5449f5924cc15f350b3d2feae9bb8c4c4] Merge remote-tracking branch 'workqueues/for-next'
git bisect bad 9e2e5ac5449f5924cc15f350b3d2feae9bb8c4c4
# good: [e661ba4fd1c995dd2c3cf60c1858ad6b83dd8448] Merge branch 'efi/core'
git bisect good e661ba4fd1c995dd2c3cf60c1858ad6b83dd8448
# bad: [db0c509d351fe195afcfb96fc21f4d2b5dd14e4c] Merge remote-tracking branch 'ftrace/for-next'
git bisect bad db0c509d351fe195afcfb96fc21f4d2b5dd14e4c
# good: [8c91f9e7378ef03c0e67de4388d5ddb9ab9a6bf3] Merge remote-tracking branch 'clockevents/timers/drivers/next'
git bisect good 8c91f9e7378ef03c0e67de4388d5ddb9ab9a6bf3
# bad: [2f5fbc4305d07725bfebaedb09e57271315691ef] irqchip/qcom-pdc: Fix phantom irq when changing between rising/falling
git bisect bad 2f5fbc4305d07725bfebaedb09e57271315691ef
# good: [e52e73b7e9f7d08b8c2ef6fb1657105093e22a03] irqchip/armada-370-xp: Make IPIs use handle_percpu_devid_irq()
git bisect good e52e73b7e9f7d08b8c2ef6fb1657105093e22a03
# bad: [91f90daa4fb2b77db7aa25ef2e0206f2e3962665] platform-msi: Track shared domain allocation
git bisect bad 91f90daa4fb2b77db7aa25ef2e0206f2e3962665
# bad: [b388fa50142510fb6477f130bb1b3f05a0a263a1] Revert "genirq: Add fasteoi IPI flow"
git bisect bad b388fa50142510fb6477f130bb1b3f05a0a263a1
# bad: [a2e042e13ff322ad523a2f131dd6e03e8bc05053] irqchip/hip04: Make IPIs use handle_percpu_devid_irq()
git bisect bad a2e042e13ff322ad523a2f131dd6e03e8bc05053
# bad: [ffdad793d579c9286c7b67a86d1a3c890fb32082] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
git bisect bad ffdad793d579c9286c7b67a86d1a3c890fb32082
# first bad commit: [ffdad793d579c9286c7b67a86d1a3c890fb32082] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-15  0:21   ` Guenter Roeck
@ 2020-12-15 10:19     ` Marc Zyngier
  2020-12-15 11:14       ` Valentin Schneider
  2020-12-15 15:21       ` Guenter Roeck
  0 siblings, 2 replies; 19+ messages in thread
From: Marc Zyngier @ 2020-12-15 10:19 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Ray Jui, Gregory Clement, linux-kernel, Florian Fainelli,
	Thomas Gleixner, Valentin Schneider, linux-arm-kernel,
	Sebastian Hesselbarth

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,

         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,
  };
-- 
Jazz is not dead. It just smells funny...

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-15 10:19     ` Marc Zyngier
@ 2020-12-15 11:14       ` Valentin Schneider
  2020-12-15 12:14         ` Marc Zyngier
  2020-12-15 15:21       ` Guenter Roeck
  1 sibling, 1 reply; 19+ messages in thread
From: Valentin Schneider @ 2020-12-15 11:14 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Ray Jui, Gregory Clement, linux-kernel, Florian Fainelli,
	Guenter Roeck, Thomas Gleixner, linux-arm-kernel,
	Sebastian Hesselbarth


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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-15 11:14       ` Valentin Schneider
@ 2020-12-15 12:14         ` Marc Zyngier
  0 siblings, 0 replies; 19+ messages in thread
From: Marc Zyngier @ 2020-12-15 12:14 UTC (permalink / raw)
  To: Valentin Schneider
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Ray Jui, Gregory Clement, linux-kernel, Florian Fainelli,
	Guenter Roeck, Thomas Gleixner, linux-arm-kernel,
	Sebastian Hesselbarth

On 2020-12-15 11:14, Valentin Schneider wrote:
> 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.

This hack indeed brings us back to the previous situation, where we
allowed the interrupt to be re-generated while handling the IPI.

Still, that doesn't explain why I'm not experiencing any issue here.
I hope that the various CI bots will let us know if anything is broken
on real HW.

         M.
-- 
Jazz is not dead. It just smells funny...

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-15 10:19     ` Marc Zyngier
  2020-12-15 11:14       ` Valentin Schneider
@ 2020-12-15 15:21       ` Guenter Roeck
  2020-12-15 15:26         ` Marc Zyngier
  1 sibling, 1 reply; 19+ messages in thread
From: Guenter Roeck @ 2020-12-15 15:21 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Ray Jui, Gregory Clement, linux-kernel, Florian Fainelli,
	Thomas Gleixner, Valentin Schneider, linux-arm-kernel,
	Sebastian Hesselbarth

Hi Marc,

On 12/15/20 2:19 AM, 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)
> 

I used qemu 5.0 which - up to now - worked fine. Let me try with
5.1 and 5.2. Sorry, I should have tried first before bothering you.

Guenter

> Could you try the following hack and let me know if that helps?
> 
> 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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-15 15:21       ` Guenter Roeck
@ 2020-12-15 15:26         ` Marc Zyngier
  2020-12-15 15:39           ` Guenter Roeck
  0 siblings, 1 reply; 19+ messages in thread
From: Marc Zyngier @ 2020-12-15 15:26 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Ray Jui, Gregory Clement, linux-kernel, Florian Fainelli,
	Thomas Gleixner, Valentin Schneider, linux-arm-kernel,
	Sebastian Hesselbarth

On 2020-12-15 15:21, Guenter Roeck wrote:
> Hi Marc,
> 
> On 12/15/20 2:19 AM, 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)
>> 
> 
> I used qemu 5.0 which - up to now - worked fine. Let me try with
> 5.1 and 5.2. Sorry, I should have tried first before bothering you.

No bother at all. If this works for you on more recent versions of
QEMU, that'd be an interesting data point. I'm also interested in
the result of the patch either way.

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-15 15:26         ` Marc Zyngier
@ 2020-12-15 15:39           ` Guenter Roeck
  2020-12-15 15:46             ` Marc Zyngier
  0 siblings, 1 reply; 19+ messages in thread
From: Guenter Roeck @ 2020-12-15 15:39 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Ray Jui, Gregory Clement, linux-kernel, Florian Fainelli,
	Thomas Gleixner, Valentin Schneider, linux-arm-kernel,
	Sebastian Hesselbarth

On 12/15/20 7:26 AM, Marc Zyngier wrote:
> On 2020-12-15 15:21, Guenter Roeck wrote:
>> Hi Marc,
>>
>> On 12/15/20 2:19 AM, 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)
>>>
>>
>> I used qemu 5.0 which - up to now - worked fine. Let me try with
>> 5.1 and 5.2. Sorry, I should have tried first before bothering you.
> 
> No bother at all. If this works for you on more recent versions of
> QEMU, that'd be an interesting data point. I'm also interested in
> the result of the patch either way.
> 

It doesn't work for me with qemu 5.1, nor with qemu 5.2. My userspace
is generated with buildroot, busybox-based, and very basic.

Your patch fixes the problem for me, though, so feel free to add

Tested-by: Guenter Roeck <linux@roeck-us.net>

if/when you submit it.

Thanks,
Guenter

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-15 15:39           ` Guenter Roeck
@ 2020-12-15 15:46             ` Marc Zyngier
  2020-12-15 16:23               ` Guenter Roeck
  2020-12-18  5:18               ` Guenter Roeck
  0 siblings, 2 replies; 19+ messages in thread
From: Marc Zyngier @ 2020-12-15 15:46 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Ray Jui, Gregory Clement, linux-kernel, Florian Fainelli,
	Thomas Gleixner, Valentin Schneider, linux-arm-kernel,
	Sebastian Hesselbarth

On 2020-12-15 15:39, Guenter Roeck wrote:
> On 12/15/20 7:26 AM, Marc Zyngier wrote:
>> On 2020-12-15 15:21, Guenter Roeck wrote:
>>> Hi Marc,
>>> 
>>> On 12/15/20 2:19 AM, 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)
>>>> 
>>> 
>>> I used qemu 5.0 which - up to now - worked fine. Let me try with
>>> 5.1 and 5.2. Sorry, I should have tried first before bothering you.
>> 
>> No bother at all. If this works for you on more recent versions of
>> QEMU, that'd be an interesting data point. I'm also interested in
>> the result of the patch either way.
>> 
> 
> It doesn't work for me with qemu 5.1, nor with qemu 5.2. My userspace
> is generated with buildroot, busybox-based, and very basic.

OK, so something is definitely different between our setups.
Mind pointing me to your config and your QEMU invocation?

> 
> Your patch fixes the problem for me, though, so feel free to add
> 
> Tested-by: Guenter Roeck <linux@roeck-us.net>
> 
> if/when you submit it.

Thanks for that.

         M.
-- 
Jazz is not dead. It just smells funny...

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-15 15:46             ` Marc Zyngier
@ 2020-12-15 16:23               ` Guenter Roeck
  2020-12-18  5:18               ` Guenter Roeck
  1 sibling, 0 replies; 19+ messages in thread
From: Guenter Roeck @ 2020-12-15 16:23 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Ray Jui, Gregory Clement, linux-kernel, Florian Fainelli,
	Thomas Gleixner, Valentin Schneider, linux-arm-kernel,
	Sebastian Hesselbarth

[-- Attachment #1: Type: text/plain, Size: 3118 bytes --]

On 12/15/20 7:46 AM, Marc Zyngier wrote:
> On 2020-12-15 15:39, Guenter Roeck wrote:
>> On 12/15/20 7:26 AM, Marc Zyngier wrote:
>>> On 2020-12-15 15:21, Guenter Roeck wrote:
>>>> Hi Marc,
>>>>
>>>> On 12/15/20 2:19 AM, 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)
>>>>>
>>>>
>>>> I used qemu 5.0 which - up to now - worked fine. Let me try with
>>>> 5.1 and 5.2. Sorry, I should have tried first before bothering you.
>>>
>>> No bother at all. If this works for you on more recent versions of
>>> QEMU, that'd be an interesting data point. I'm also interested in
>>> the result of the patch either way.
>>>
>>
>> It doesn't work for me with qemu 5.1, nor with qemu 5.2. My userspace
>> is generated with buildroot, busybox-based, and very basic.
> 
> OK, so something is definitely different between our setups.
> Mind pointing me to your config and your QEMU invocation?
> 

Configuration is multi_v7_defconfig with various additional options enabled.
You'll find it attached.

qemu invocation:

qemu-system-arm -M raspi2 -kernel arch/arm/boot/zImage -no-reboot
    -initrd  /var/cache/buildbot/arm/rootfs-armv7a.cpio
    --append "panic=-1 slub_debug=FZPUA rdinit=/sbin/init earlycon=pl011,0x3f201000 console=ttyAMA0"
    -dtb arch/arm/boot/dts/bcm2836-rpi-2-b.dtb -nographic -monitor null -serial stdio

initrd is from:
    https://github.com/groeck/linux-build-test/blob/master/rootfs/arm/rootfs-armv7a.cpio.gz

Without your patch, boot always stalls at:

[   10.197299] PCI: CLS 0 bytes, default 64
[   10.210594] Trying to unpack rootfs image as initramfs...
[   10.573055] Freeing initrd memory: 3256K
[   10.581294] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available

With your patch applied, it proceeds:

[    9.594508] PCI: CLS 0 bytes, default 64
[    9.603180] Trying to unpack rootfs image as initramfs...
[    9.987446] Freeing initrd memory: 3256K
[   10.000387] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[   17.180317] Initialise system trusted keyrings
[   17.184302] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[   17.428873] squashfs: version 4.0 (2009/01/31) Phillip Lougher
...

Guenter

[-- Attachment #2: defconfig --]
[-- Type: text/plain, Size: 27964 bytes --]

CONFIG_SYSVIPC=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_CGROUPS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
CONFIG_ARCH_VIRT=y
CONFIG_ARCH_ALPINE=y
CONFIG_ARCH_ARTPEC=y
CONFIG_MACH_ARTPEC6=y
CONFIG_ARCH_ASPEED=y
CONFIG_MACH_ASPEED_G6=y
CONFIG_ARCH_AT91=y
CONFIG_SOC_SAMA5D2=y
CONFIG_SOC_SAMA5D3=y
CONFIG_SOC_SAMA5D4=y
CONFIG_ARCH_BCM=y
CONFIG_ARCH_BCM_CYGNUS=y
CONFIG_ARCH_BCM_HR2=y
CONFIG_ARCH_BCM_NSP=y
CONFIG_ARCH_BCM_5301X=y
CONFIG_ARCH_BCM_281XX=y
CONFIG_ARCH_BCM_21664=y
CONFIG_ARCH_BCM2835=y
CONFIG_ARCH_BCM_63XX=y
CONFIG_ARCH_BRCMSTB=y
CONFIG_ARCH_BERLIN=y
CONFIG_MACH_BERLIN_BG2=y
CONFIG_MACH_BERLIN_BG2CD=y
CONFIG_MACH_BERLIN_BG2Q=y
CONFIG_ARCH_DIGICOLOR=y
CONFIG_ARCH_EXYNOS=y
CONFIG_ARCH_HIGHBANK=y
CONFIG_ARCH_HISI=y
CONFIG_ARCH_HI3xxx=y
CONFIG_ARCH_HIP01=y
CONFIG_ARCH_HIP04=y
CONFIG_ARCH_HIX5HD2=y
CONFIG_ARCH_MXC=y
CONFIG_SOC_IMX50=y
CONFIG_SOC_IMX51=y
CONFIG_SOC_IMX53=y
CONFIG_SOC_IMX6Q=y
CONFIG_SOC_IMX6SL=y
CONFIG_SOC_IMX6SLL=y
CONFIG_SOC_IMX6SX=y
CONFIG_SOC_IMX6UL=y
CONFIG_SOC_LS1021A=y
CONFIG_SOC_IMX7D=y
CONFIG_SOC_IMX7ULP=y
CONFIG_SOC_VF610=y
CONFIG_ARCH_KEYSTONE=y
CONFIG_ARCH_MEDIATEK=y
CONFIG_ARCH_MESON=y
CONFIG_ARCH_MILBEAUT=y
CONFIG_ARCH_MILBEAUT_M10V=y
CONFIG_ARCH_MMP=y
CONFIG_MACH_MMP2_DT=y
CONFIG_MACH_MMP3_DT=y
CONFIG_ARCH_MVEBU=y
CONFIG_MACH_ARMADA_370=y
CONFIG_MACH_ARMADA_375=y
CONFIG_MACH_ARMADA_38X=y
CONFIG_MACH_ARMADA_39X=y
CONFIG_MACH_ARMADA_XP=y
CONFIG_MACH_DOVE=y
CONFIG_ARCH_OMAP3=y
CONFIG_ARCH_OMAP4=y
CONFIG_SOC_OMAP5=y
CONFIG_SOC_AM33XX=y
CONFIG_SOC_AM43XX=y
CONFIG_SOC_DRA7XX=y
CONFIG_ARCH_SIRF=y
CONFIG_ARCH_QCOM=y
CONFIG_ARCH_MSM8X60=y
CONFIG_ARCH_MSM8960=y
CONFIG_ARCH_MSM8974=y
CONFIG_ARCH_ROCKCHIP=y
CONFIG_ARCH_RENESAS=y
CONFIG_ARCH_SOCFPGA=y
CONFIG_PLAT_SPEAR=y
CONFIG_ARCH_SPEAR13XX=y
CONFIG_MACH_SPEAR1310=y
CONFIG_MACH_SPEAR1340=y
CONFIG_ARCH_STI=y
CONFIG_ARCH_STM32=y
CONFIG_ARCH_SUNXI=y
CONFIG_ARCH_TEGRA=y
CONFIG_ARCH_UNIPHIER=y
CONFIG_ARCH_U8500=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_ARCH_WM8850=y
CONFIG_ARCH_ZYNQ=y
CONFIG_SMP=y
CONFIG_NR_CPUS=16
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_KEXEC=y
CONFIG_EFI=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
CONFIG_CPUFREQ_DT=y
CONFIG_ARM_IMX6Q_CPUFREQ=y
CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
CONFIG_ARM_SCMI_CPUFREQ=y
CONFIG_QORIQ_CPUFREQ=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
CONFIG_ARM_ZYNQ_CPUIDLE=y
CONFIG_ARM_EXYNOS_CPUIDLE=y
CONFIG_ARM_TEGRA_CPUIDLE=y
CONFIG_KERNEL_MODE_NEON=y
CONFIG_ARM_SCMI_PROTOCOL=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_TRUSTED_FOUNDATIONS=y
CONFIG_BCM47XX_NVRAM=y
CONFIG_BCM47XX_SPROM=y
CONFIG_EFI_CAPSULE_LOADER=m
CONFIG_ARM_CRYPTO=y
CONFIG_CRYPTO_SHA1_ARM_NEON=m
CONFIG_CRYPTO_SHA1_ARM_CE=m
CONFIG_CRYPTO_SHA2_ARM_CE=m
CONFIG_CRYPTO_SHA512_ARM=m
CONFIG_CRYPTO_AES_ARM=m
CONFIG_CRYPTO_AES_ARM_BS=m
CONFIG_CRYPTO_AES_ARM_CE=m
CONFIG_CRYPTO_GHASH_ARM_CE=m
CONFIG_CRYPTO_CRC32_ARM_CE=m
CONFIG_CRYPTO_CHACHA20_NEON=m
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_CMDLINE_PARTITION=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=m
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_NET_DSA=m
CONFIG_CAN=y
CONFIG_CAN_AT91=m
CONFIG_CAN_FLEXCAN=m
CONFIG_CAN_SUN4I=y
CONFIG_CAN_XILINXCAN=y
CONFIG_CAN_RCAR=m
CONFIG_CAN_MCP251X=y
# CONFIG_WIRELESS is not set
CONFIG_RFKILL=y
CONFIG_RFKILL_INPUT=y
CONFIG_RFKILL_GPIO=y
CONFIG_NFC=m
CONFIG_NFC_DIGITAL=m
CONFIG_NFC_NCI=m
CONFIG_NFC_NCI_SPI=m
CONFIG_NFC_NCI_UART=m
CONFIG_NFC_HCI=m
CONFIG_NFC_SHDLC=y
CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_PCIEPORTBUS=y
CONFIG_PCI_MVEBU=y
CONFIG_PCI_TEGRA=y
CONFIG_PCI_RCAR_GEN2=y
CONFIG_PCIE_RCAR_HOST=y
CONFIG_PCI_DRA7XX_EP=y
CONFIG_PCI_ENDPOINT=y
CONFIG_PCI_ENDPOINT_CONFIGFS=y
CONFIG_PCI_EPF_TEST=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_PM_QOS_KUNIT_TEST=y
CONFIG_OMAP_OCP2SCP=y
CONFIG_SIMPLE_PM_BUS=y
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_OF=y
CONFIG_MTD_RAW_NAND=y
CONFIG_MTD_NAND_DENALI_DT=y
CONFIG_MTD_NAND_OMAP2=y
CONFIG_MTD_NAND_OMAP_BCH=y
CONFIG_MTD_NAND_ATMEL=y
CONFIG_MTD_NAND_MARVELL=y
CONFIG_MTD_NAND_BRCMNAND=y
CONFIG_MTD_NAND_GPMI_NAND=y
CONFIG_MTD_NAND_VF610_NFC=y
CONFIG_MTD_NAND_DAVINCI=y
CONFIG_MTD_NAND_STM32_FMC2=y
CONFIG_MTD_SPI_NOR=y
CONFIG_SPI_ASPEED_SMC=m
CONFIG_MTD_UBI=y
CONFIG_OF_UNITTEST=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_VIRTIO_BLK=y
CONFIG_BLK_DEV_NVME=y
CONFIG_AD525X_DPOT=y
CONFIG_AD525X_DPOT_I2C=y
CONFIG_ATMEL_TCLIB=y
CONFIG_ICS932S401=y
CONFIG_ATMEL_SSC=m
CONFIG_QCOM_COINCELL=m
CONFIG_APDS9802ALS=y
CONFIG_ISL29003=y
CONFIG_PCI_ENDPOINT_TEST=y
CONFIG_EEPROM_AT24=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_MEGARAID_SAS=y
CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_SCSI_DC395x=y
CONFIG_SCSI_AM53C974=y
CONFIG_SCSI_VIRTIO=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_AHCI_BRCM=y
CONFIG_AHCI_DM816=y
CONFIG_AHCI_ST=y
CONFIG_AHCI_IMX=y
CONFIG_AHCI_SUNXI=y
CONFIG_AHCI_TEGRA=y
CONFIG_SATA_HIGHBANK=y
CONFIG_SATA_MV=y
CONFIG_SATA_RCAR=y
CONFIG_FUSION=y
CONFIG_FUSION_SAS=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_MDIO_DRIVER=m
CONFIG_B53_MMAP_DRIVER=m
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_SUN4I_EMAC=y
CONFIG_BCMGENET=m
CONFIG_BGMAC_BCMA=y
CONFIG_SYSTEMPORT=m
CONFIG_MACB=y
CONFIG_NET_CALXEDA_XGMAC=y
CONFIG_FTGMAC100=m
CONFIG_GIANFAR=y
CONFIG_HIX5HD2_GMAC=y
CONFIG_E1000E=y
CONFIG_IGB=y
CONFIG_MV643XX_ETH=y
CONFIG_MVNETA=y
CONFIG_PXA168_ETH=m
CONFIG_KS8851=y
CONFIG_R8169=y
CONFIG_SH_ETH=y
CONFIG_SMSC911X=y
CONFIG_SNI_AVE=y
CONFIG_STMMAC_ETH=y
CONFIG_DWMAC_DWC_QOS_ETH=y
CONFIG_TI_CPSW=y
CONFIG_TI_CPSW_SWITCHDEV=y
CONFIG_TI_CPTS=y
CONFIG_XILINX_EMACLITE=y
CONFIG_BROADCOM_PHY=y
CONFIG_ICPLUS_PHY=y
CONFIG_MARVELL_PHY=y
CONFIG_MICREL_PHY=y
CONFIG_AT803X_PHY=y
CONFIG_ROCKCHIP_PHY=y
CONFIG_DP83867_PHY=y
CONFIG_USB_PEGASUS=y
CONFIG_USB_RTL8152=m
CONFIG_USB_LAN78XX=m
CONFIG_USB_USBNET=y
CONFIG_USB_NET_SMSC75XX=y
CONFIG_USB_NET_SMSC95XX=y
# CONFIG_WLAN is not set
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_QT1070=m
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_TEGRA=y
CONFIG_KEYBOARD_PXA27x=m
CONFIG_KEYBOARD_SAMSUNG=m
CONFIG_KEYBOARD_ST_KEYSCAN=y
CONFIG_KEYBOARD_SPEAR=y
CONFIG_KEYBOARD_CROS_EC=m
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_MOUSE_CYAPA=m
CONFIG_MOUSE_ELAN_I2C=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_ADC=m
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
CONFIG_TOUCHSCREEN_ELAN=m
CONFIG_TOUCHSCREEN_MMS114=m
CONFIG_TOUCHSCREEN_WM97XX=m
CONFIG_TOUCHSCREEN_ST1232=m
CONFIG_TOUCHSCREEN_STMPE=y
CONFIG_TOUCHSCREEN_SUN4I=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_MAX77693_HAPTIC=m
CONFIG_INPUT_MAX8997_HAPTIC=m
CONFIG_INPUT_CPCAP_PWRBUTTON=m
CONFIG_INPUT_AXP20X_PEK=m
CONFIG_INPUT_DA9063_ONKEY=m
CONFIG_INPUT_ADXL34X=m
CONFIG_INPUT_STPMIC1_ONKEY=y
CONFIG_SERIO_AMBAKMI=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=5
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_ASPEED_VUART=m
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_BCM2835AUX=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_EM=y
CONFIG_SERIAL_8250_OMAP=y
CONFIG_SERIAL_8250_MT6577=y
CONFIG_SERIAL_8250_UNIPHIER=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
CONFIG_SERIAL_ATMEL_TTYAT=y
CONFIG_SERIAL_MESON=y
CONFIG_SERIAL_MESON_CONSOLE=y
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_SERIAL_SIRFSOC=y
CONFIG_SERIAL_SIRFSOC_CONSOLE=y
CONFIG_SERIAL_TEGRA=y
CONFIG_SERIAL_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
CONFIG_SERIAL_SH_SCI=y
CONFIG_SERIAL_SH_SCI_NR_UARTS=20
CONFIG_SERIAL_MSM=y
CONFIG_SERIAL_MSM_CONSOLE=y
CONFIG_SERIAL_VT8500=y
CONFIG_SERIAL_VT8500_CONSOLE=y
CONFIG_SERIAL_OMAP=y
CONFIG_SERIAL_OMAP_CONSOLE=y
CONFIG_SERIAL_BCM63XX=y
CONFIG_SERIAL_BCM63XX_CONSOLE=y
CONFIG_SERIAL_XILINX_PS_UART=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
CONFIG_SERIAL_FSL_LPUART=y
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
CONFIG_SERIAL_CONEXANT_DIGICOLOR=y
CONFIG_SERIAL_CONEXANT_DIGICOLOR_CONSOLE=y
CONFIG_SERIAL_ST_ASC=y
CONFIG_SERIAL_ST_ASC_CONSOLE=y
CONFIG_SERIAL_STM32=y
CONFIG_SERIAL_STM32_CONSOLE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_ASPEED_KCS_IPMI_BMC=m
CONFIG_ASPEED_BT_IPMI_BMC=m
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_ST=y
CONFIG_TCG_TPM=m
CONFIG_TCG_TIS_I2C_INFINEON=m
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_ARB_GPIO_CHALLENGE=m
CONFIG_I2C_MUX_PCA954x=y
CONFIG_I2C_MUX_PINCTRL=y
CONFIG_I2C_DEMUX_PINCTRL=y
CONFIG_I2C_ASPEED=m
CONFIG_I2C_AT91=m
CONFIG_I2C_BCM2835=y
CONFIG_I2C_CADENCE=y
CONFIG_I2C_DAVINCI=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_DIGICOLOR=m
CONFIG_I2C_EMEV2=m
CONFIG_I2C_IMX=y
CONFIG_I2C_MESON=y
CONFIG_I2C_MV64XXX=y
CONFIG_I2C_RIIC=y
CONFIG_I2C_RK3X=y
CONFIG_I2C_S3C2410=y
CONFIG_I2C_SH_MOBILE=y
CONFIG_I2C_SIRF=y
CONFIG_I2C_ST=y
CONFIG_I2C_STM32F7=y
CONFIG_I2C_SUN6I_P2WI=y
CONFIG_I2C_TEGRA=y
CONFIG_I2C_UNIPHIER=y
CONFIG_I2C_UNIPHIER_F=y
CONFIG_I2C_XILINX=y
CONFIG_I2C_RCAR=y
CONFIG_I2C_CROS_EC_TUNNEL=m
CONFIG_I2C_SLAVE_EEPROM=y
CONFIG_SPI=y
CONFIG_SPI_ATMEL=m
CONFIG_SPI_BCM2835=y
CONFIG_SPI_BCM2835AUX=y
CONFIG_SPI_CADENCE=y
CONFIG_SPI_DAVINCI=y
CONFIG_SPI_FSL_QUADSPI=m
CONFIG_SPI_GPIO=m
CONFIG_SPI_FSL_DSPI=m
CONFIG_SPI_OMAP24XX=y
CONFIG_SPI_ORION=y
CONFIG_SPI_PL022=y
CONFIG_SPI_ROCKCHIP=m
CONFIG_SPI_RSPI=y
CONFIG_SPI_S3C64XX=m
CONFIG_SPI_SH_MSIOF=m
CONFIG_SPI_SH_HSPI=y
CONFIG_SPI_SIRF=y
CONFIG_SPI_STM32=m
CONFIG_SPI_STM32_QSPI=y
CONFIG_SPI_SUN4I=y
CONFIG_SPI_SUN6I=y
CONFIG_SPI_TEGRA114=y
CONFIG_SPI_TEGRA20_SFLASH=y
CONFIG_SPI_TEGRA20_SLINK=y
CONFIG_SPI_XILINX=y
CONFIG_SPI_SPIDEV=y
CONFIG_SPMI=y
CONFIG_PINCTRL_AS3722=y
CONFIG_PINCTRL_STMFX=y
CONFIG_PINCTRL_PALMAS=y
CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
CONFIG_PINCTRL_QCOM_SSBI_PMIC=y
CONFIG_PINCTRL_RZA2=y
CONFIG_GPIO_ASPEED_SGPIO=y
CONFIG_GPIO_DAVINCI=y
CONFIG_GPIO_DWAPB=y
CONFIG_GPIO_EM=y
CONFIG_GPIO_MXC=y
CONFIG_GPIO_RCAR=y
CONFIG_GPIO_SYSCON=y
CONFIG_GPIO_UNIPHIER=y
CONFIG_GPIO_XILINX=y
CONFIG_GPIO_ZYNQ=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCF857X=y
CONFIG_GPIO_PALMAS=y
CONFIG_GPIO_TPS6586X=y
CONFIG_GPIO_TPS65910=y
CONFIG_GPIO_TWL4030=y
CONFIG_POWER_RESET_AS3722=y
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_POWER_RESET_ST=y
CONFIG_POWER_RESET_KEYSTONE=y
CONFIG_POWER_RESET_RMOBILE=y
CONFIG_BATTERY_ACT8945A=y
CONFIG_BATTERY_CPCAP=m
CONFIG_BATTERY_SBS=y
CONFIG_BATTERY_BQ27XXX=m
CONFIG_AXP20X_POWER=m
CONFIG_BATTERY_MAX17040=m
CONFIG_BATTERY_MAX17042=m
CONFIG_CHARGER_CPCAP=m
CONFIG_CHARGER_GPIO=m
CONFIG_CHARGER_MAX14577=m
CONFIG_CHARGER_MAX77693=m
CONFIG_CHARGER_MAX8997=m
CONFIG_CHARGER_MAX8998=m
CONFIG_CHARGER_TPS65090=y
CONFIG_SENSORS_ARM_SCMI=y
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_IIO_HWMON=y
CONFIG_SENSORS_LM90=y
CONFIG_SENSORS_LM95245=y
CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PWM_FAN=m
CONFIG_SENSORS_RASPBERRYPI_HWMON=m
CONFIG_SENSORS_INA2XX=m
CONFIG_CPU_THERMAL=y
CONFIG_DEVFREQ_THERMAL=y
CONFIG_IMX_THERMAL=y
CONFIG_ROCKCHIP_THERMAL=y
CONFIG_RCAR_THERMAL=y
CONFIG_ARMADA_THERMAL=y
CONFIG_BCM2711_THERMAL=m
CONFIG_BCM2835_THERMAL=m
CONFIG_BRCMSTB_THERMAL=m
CONFIG_ST_THERMAL_MEMMAP=y
CONFIG_UNIPHIER_THERMAL=y
CONFIG_DA9063_WATCHDOG=m
CONFIG_XILINX_WATCHDOG=y
CONFIG_ARM_SP805_WATCHDOG=y
CONFIG_AT91SAM9X_WATCHDOG=y
CONFIG_SAMA5D4_WATCHDOG=y
CONFIG_S3C2410_WATCHDOG=m
CONFIG_DW_WATCHDOG=y
CONFIG_DAVINCI_WATCHDOG=m
CONFIG_ORION_WATCHDOG=y
CONFIG_RN5T618_WATCHDOG=y
CONFIG_SUNXI_WATCHDOG=y
CONFIG_IMX2_WDT=y
CONFIG_ST_LPC_WATCHDOG=y
CONFIG_TEGRA_WATCHDOG=m
CONFIG_MESON_WATCHDOG=y
CONFIG_DIGICOLOR_WATCHDOG=y
CONFIG_RENESAS_WDT=m
CONFIG_RENESAS_RZAWDT=m
CONFIG_STPMIC1_WATCHDOG=y
CONFIG_BCM47XX_WDT=y
CONFIG_BCM2835_WDT=y
CONFIG_BCM_KONA_WDT=y
CONFIG_BCM7038_WDT=m
CONFIG_BCMA_HOST_SOC=y
CONFIG_BCMA_DRIVER_GMAC_CMN=y
CONFIG_BCMA_DRIVER_GPIO=y
CONFIG_MFD_ACT8945A=y
CONFIG_MFD_AS3711=y
CONFIG_MFD_AS3722=y
CONFIG_MFD_ATMEL_FLEXCOM=y
CONFIG_MFD_ATMEL_HLCDC=m
CONFIG_MFD_BCM590XX=y
CONFIG_MFD_AC100=y
CONFIG_MFD_AXP20X_I2C=y
CONFIG_MFD_AXP20X_RSB=y
CONFIG_MFD_DA9063=m
CONFIG_MFD_MAX14577=y
CONFIG_MFD_MAX77686=y
CONFIG_MFD_MAX77693=m
CONFIG_MFD_MAX8907=y
CONFIG_MFD_MAX8997=y
CONFIG_MFD_MAX8998=y
CONFIG_MFD_CPCAP=y
CONFIG_MFD_PM8XXX=y
CONFIG_MFD_QCOM_RPM=y
CONFIG_MFD_SPMI_PMIC=y
CONFIG_MFD_RK808=y
CONFIG_MFD_RN5T618=y
CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_STMPE=y
CONFIG_MFD_PALMAS=y
CONFIG_MFD_TPS65090=y
CONFIG_MFD_TPS65217=y
CONFIG_MFD_TPS65218=y
CONFIG_MFD_TPS6586X=y
CONFIG_MFD_TPS65910=y
CONFIG_MFD_STM32_LPTIMER=m
CONFIG_MFD_STPMIC1=y
CONFIG_REGULATOR_ACT8865=y
CONFIG_REGULATOR_ACT8945A=y
CONFIG_REGULATOR_ANATOP=y
CONFIG_REGULATOR_AB8500=y
CONFIG_REGULATOR_AS3711=y
CONFIG_REGULATOR_AS3722=y
CONFIG_REGULATOR_AXP20X=y
CONFIG_REGULATOR_BCM590XX=y
CONFIG_REGULATOR_CPCAP=y
CONFIG_REGULATOR_DA9210=y
CONFIG_REGULATOR_FAN53555=y
CONFIG_REGULATOR_GPIO=y
CONFIG_REGULATOR_LP872X=y
CONFIG_REGULATOR_MAX14577=m
CONFIG_REGULATOR_MAX8907=y
CONFIG_REGULATOR_MAX8952=m
CONFIG_REGULATOR_MAX8973=y
CONFIG_REGULATOR_MAX8997=m
CONFIG_REGULATOR_MAX8998=m
CONFIG_REGULATOR_MAX77686=y
CONFIG_REGULATOR_MAX77693=m
CONFIG_REGULATOR_MAX77802=y
CONFIG_REGULATOR_PALMAS=y
CONFIG_REGULATOR_PBIAS=y
CONFIG_REGULATOR_PWM=y
CONFIG_REGULATOR_QCOM_RPM=y
CONFIG_REGULATOR_QCOM_SMD_RPM=m
CONFIG_REGULATOR_RK808=y
CONFIG_REGULATOR_RN5T618=y
CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=y
CONFIG_REGULATOR_S5M8767=y
CONFIG_REGULATOR_STM32_BOOSTER=m
CONFIG_REGULATOR_STM32_VREFBUF=m
CONFIG_REGULATOR_STM32_PWR=y
CONFIG_REGULATOR_STPMIC1=y
CONFIG_REGULATOR_TI_ABB=y
CONFIG_REGULATOR_TPS51632=y
CONFIG_REGULATOR_TPS62360=y
CONFIG_REGULATOR_TPS65090=y
CONFIG_REGULATOR_TPS65217=y
CONFIG_REGULATOR_TPS65218=y
CONFIG_REGULATOR_TPS6586X=y
CONFIG_REGULATOR_TPS65910=y
CONFIG_REGULATOR_TWL4030=y
CONFIG_REGULATOR_VEXPRESS=y
CONFIG_REGULATOR_WM8994=m
CONFIG_CEC_SAMSUNG_S5P=m
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIDEO_MMP_CAMERA=m
CONFIG_VIDEO_ASPEED=m
CONFIG_VIDEO_STM32_DCMI=m
CONFIG_VIDEO_RENESAS_CEU=m
CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS=m
CONFIG_VIDEO_S5P_FIMC=m
CONFIG_VIDEO_S5P_MIPI_CSIS=m
CONFIG_VIDEO_EXYNOS_FIMC_LITE=m
CONFIG_VIDEO_EXYNOS4_FIMC_IS=m
CONFIG_VIDEO_RCAR_VIN=m
CONFIG_VIDEO_ATMEL_ISI=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
CONFIG_VIDEO_STI_BDISP=m
CONFIG_VIDEO_STI_HVA=m
CONFIG_VIDEO_STI_DELTA=m
CONFIG_VIDEO_RENESAS_FDP1=m
CONFIG_VIDEO_RENESAS_JPU=m
CONFIG_VIDEO_RENESAS_VSP1=m
CONFIG_V4L_TEST_DRIVERS=y
CONFIG_VIDEO_VIVID=m
CONFIG_VIDEO_ADV7180=m
CONFIG_VIDEO_ADV7604=m
CONFIG_VIDEO_ADV7604_CEC=y
CONFIG_VIDEO_ML86V7667=m
CONFIG_IMX_IPUV3_CORE=m
CONFIG_DRM=y
# CONFIG_DRM_I2C_CH7006 is not set
# CONFIG_DRM_I2C_SIL164 is not set
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_EXYNOS=m
CONFIG_DRM_EXYNOS_FIMD=y
CONFIG_DRM_EXYNOS_MIXER=y
CONFIG_DRM_EXYNOS_DPI=y
CONFIG_DRM_EXYNOS_DSI=y
CONFIG_DRM_EXYNOS_HDMI=y
CONFIG_DRM_ROCKCHIP=m
CONFIG_ROCKCHIP_ANALOGIX_DP=y
CONFIG_ROCKCHIP_DW_HDMI=y
CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_ROCKCHIP_INNO_HDMI=y
CONFIG_DRM_ATMEL_HLCDC=m
CONFIG_DRM_RCAR_DU=m
CONFIG_DRM_RCAR_LVDS=y
CONFIG_DRM_SUN4I=m
CONFIG_DRM_MSM=m
CONFIG_DRM_FSL_DCU=m
CONFIG_DRM_TEGRA=y
CONFIG_DRM_STM=m
CONFIG_DRM_STM_DSI=m
CONFIG_DRM_PANEL_SIMPLE=y
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_NXP_PTN3460=m
CONFIG_DRM_PARADE_PS8622=m
CONFIG_DRM_SII902X=m
CONFIG_DRM_SII9234=m
CONFIG_DRM_SIMPLE_BRIDGE=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_I2C_ADV7511=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_STI=m
CONFIG_DRM_IMX=m
CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
CONFIG_DRM_IMX_TVE=m
CONFIG_DRM_IMX_LDB=m
CONFIG_DRM_IMX_HDMI=m
CONFIG_DRM_VC4=m
CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_MXSFB=m
CONFIG_DRM_PL111=m
CONFIG_DRM_LIMA=m
CONFIG_DRM_PANFROST=m
CONFIG_DRM_ASPEED_GFX=m
CONFIG_FB_EFI=y
CONFIG_FB_WM8505=y
CONFIG_FB_SH_MOBILE_LCDC=y
CONFIG_FB_SIMPLE=y
CONFIG_BACKLIGHT_PWM=y
CONFIG_BACKLIGHT_AS3711=y
CONFIG_BACKLIGHT_GPIO=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_SOUND=m
CONFIG_SND=m
CONFIG_SND_HDA_TEGRA=m
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_SOC=m
CONFIG_SND_ATMEL_SOC=m
CONFIG_SND_ATMEL_SOC_WM8904=m
CONFIG_SND_ATMEL_SOC_PDMIC=m
CONFIG_SND_ATMEL_SOC_I2S=m
CONFIG_SND_BCM2835_SOC_I2S=m
CONFIG_SND_SOC_FSL_SAI=m
CONFIG_SND_PXA_SOC_SSP=m
CONFIG_SND_PXA910_SOC=m
CONFIG_SND_SOC_ROCKCHIP=m
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
CONFIG_SND_SOC_ROCKCHIP_RT5645=m
CONFIG_SND_SOC_SAMSUNG=m
CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994=m
CONFIG_SND_SOC_SMDK_WM8994_PCM=m
CONFIG_SND_SOC_SNOW=m
CONFIG_SND_SOC_ODROID=m
CONFIG_SND_SOC_ARNDALE=m
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
CONFIG_SND_SOC_SH4_FSI=m
CONFIG_SND_SOC_RCAR=m
CONFIG_SND_SOC_STI=m
CONFIG_SND_SOC_STM32_SAI=m
CONFIG_SND_SOC_STM32_I2S=m
CONFIG_SND_SOC_STM32_SPDIFRX=m
CONFIG_SND_SOC_STM32_DFSDM=m
CONFIG_SND_SUN4I_CODEC=m
CONFIG_SND_SOC_TEGRA=m
CONFIG_SND_SOC_TEGRA20_I2S=m
CONFIG_SND_SOC_TEGRA30_I2S=m
CONFIG_SND_SOC_TEGRA_RT5640=m
CONFIG_SND_SOC_TEGRA_WM8753=m
CONFIG_SND_SOC_TEGRA_WM8903=m
CONFIG_SND_SOC_TEGRA_WM9712=m
CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
CONFIG_SND_SOC_TEGRA_ALC5632=m
CONFIG_SND_SOC_TEGRA_MAX98090=m
CONFIG_SND_SOC_AK4642=m
CONFIG_SND_SOC_CPCAP=m
CONFIG_SND_SOC_CS42L51_I2C=m
CONFIG_SND_SOC_SGTL5000=m
CONFIG_SND_SOC_STI_SAS=m
CONFIG_SND_SOC_WM8978=m
CONFIG_SND_AUDIO_GRAPH_CARD=m
CONFIG_USB=y
CONFIG_USB_OTG=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_MVEBU=y
CONFIG_USB_XHCI_TEGRA=m
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_HCD_OMAP=m
CONFIG_USB_EHCI_HCD_STI=y
CONFIG_USB_EHCI_TEGRA=y
CONFIG_USB_EHCI_EXYNOS=m
CONFIG_USB_EHCI_MV=m
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_STI=y
CONFIG_USB_OHCI_EXYNOS=m
CONFIG_USB_R8A66597_HCD=m
CONFIG_USB_RENESAS_USBHS=m
CONFIG_USB_STORAGE=y
CONFIG_USB_UAS=y
CONFIG_USB_MUSB_HDRC=m
CONFIG_USB_MUSB_SUNXI=m
CONFIG_USB_MUSB_OMAP2PLUS=m
CONFIG_USB_MUSB_AM35X=m
CONFIG_USB_MUSB_DSPS=m
CONFIG_USB_MUSB_UX500=m
CONFIG_USB_UX500_DMA=y
CONFIG_USB_INVENTRA_DMA=y
CONFIG_USB_TI_CPPI41_DMA=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC2=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA_PCI=m
CONFIG_USB_ISP1760=y
CONFIG_USB_TEST=y
CONFIG_USB_EHSET_TEST_FIXTURE=y
CONFIG_USB_HSIC_USB3503=y
CONFIG_USB_LINK_LAYER_TEST=y
CONFIG_AB8500_USB=y
CONFIG_KEYSTONE_USB_PHY=m
CONFIG_NOP_USB_XCEIV=y
CONFIG_AM335X_PHY_USB=m
CONFIG_TWL6030_USB=m
CONFIG_USB_GPIO_VBUS=y
CONFIG_USB_ISP1301=y
CONFIG_USB_MXS_PHY=y
CONFIG_USB_GADGET=y
CONFIG_USB_FSL_USB2=y
CONFIG_USB_RENESAS_USBHS_UDC=m
CONFIG_USB_ASPEED_VHUB=m
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_OBEX=y
CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_LB_SS=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_USB_CONFIGFS_F_UAC1=y
CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
CONFIG_USB_CONFIGFS_F_UAC2=y
CONFIG_USB_CONFIGFS_F_MIDI=y
CONFIG_USB_CONFIGFS_F_HID=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_PRINTER=y
CONFIG_USB_ETH=m
CONFIG_TYPEC=m
CONFIG_TYPEC_STUSB160X=m
CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=16
CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF_ARASAN=y
CONFIG_MMC_SDHCI_OF_AT91=y
CONFIG_MMC_SDHCI_OF_ESDHC=y
CONFIG_MMC_SDHCI_ESDHC_IMX=y
CONFIG_MMC_SDHCI_DOVE=y
CONFIG_MMC_SDHCI_TEGRA=y
CONFIG_MMC_SDHCI_S3C=y
CONFIG_MMC_SDHCI_PXAV3=y
CONFIG_MMC_SDHCI_PXAV2=m
CONFIG_MMC_SDHCI_SPEAR=y
CONFIG_MMC_SDHCI_S3C_DMA=y
CONFIG_MMC_SDHCI_BCM_KONA=y
CONFIG_MMC_MESON_MX_SDIO=y
CONFIG_MMC_SDHCI_ST=y
CONFIG_MMC_OMAP=y
CONFIG_MMC_OMAP_HS=y
CONFIG_MMC_ATMELMCI=y
CONFIG_MMC_SDHCI_MSM=y
CONFIG_MMC_MVSDIO=y
CONFIG_MMC_SDHI=y
CONFIG_MMC_UNIPHIER=y
CONFIG_MMC_DW=y
CONFIG_MMC_DW_EXYNOS=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SH_MMCIF=y
CONFIG_MMC_SUNXI=y
CONFIG_MMC_BCM2835=y
CONFIG_MMC_SDHCI_OMAP=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CPCAP=m
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_MAX77693=m
CONFIG_LEDS_MAX8997=m
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_LEDS_TRIGGER_CAMERA=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_AC100=y
CONFIG_RTC_DRV_AS3722=y
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_HYM8563=m
CONFIG_RTC_DRV_MAX8907=y
CONFIG_RTC_DRV_MAX8998=m
CONFIG_RTC_DRV_MAX8997=m
CONFIG_RTC_DRV_MAX77686=y
CONFIG_RTC_DRV_RK808=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_PCF85363=m
CONFIG_RTC_DRV_BQ32K=m
CONFIG_RTC_DRV_TWL4030=y
CONFIG_RTC_DRV_PALMAS=y
CONFIG_RTC_DRV_TPS6586X=y
CONFIG_RTC_DRV_TPS65910=y
CONFIG_RTC_DRV_S35390A=m
CONFIG_RTC_DRV_RX8581=m
CONFIG_RTC_DRV_EM3027=y
CONFIG_RTC_DRV_S5M=m
CONFIG_RTC_DRV_DA9063=m
CONFIG_RTC_DRV_EFI=m
CONFIG_RTC_DRV_DIGICOLOR=m
CONFIG_RTC_DRV_S3C=m
CONFIG_RTC_DRV_SA1100=m
CONFIG_RTC_DRV_SH=m
CONFIG_RTC_DRV_PL031=y
CONFIG_RTC_DRV_AT91RM9200=m
CONFIG_RTC_DRV_AT91SAM9=m
CONFIG_RTC_DRV_VT8500=y
CONFIG_RTC_DRV_SUNXI=y
CONFIG_RTC_DRV_MV=y
CONFIG_RTC_DRV_TEGRA=y
CONFIG_RTC_DRV_ST_LPC=y
CONFIG_RTC_DRV_STM32=y
CONFIG_RTC_DRV_CPCAP=m
CONFIG_RTC_DRV_ASPEED=m
CONFIG_DMADEVICES=y
CONFIG_AT_HDMAC=y
CONFIG_AT_XDMAC=y
CONFIG_DMA_BCM2835=y
CONFIG_DMA_SUN6I=y
CONFIG_FSL_EDMA=y
CONFIG_IMX_DMA=y
CONFIG_IMX_SDMA=y
CONFIG_MV_XOR=y
CONFIG_MXS_DMA=y
CONFIG_PL330_DMA=y
CONFIG_SIRF_DMA=y
CONFIG_STE_DMA40=y
CONFIG_ST_FDMA=m
CONFIG_STM32_DMA=y
CONFIG_STM32_DMAMUX=y
CONFIG_STM32_MDMA=y
CONFIG_UNIPHIER_MDMAC=y
CONFIG_XILINX_DMA=y
CONFIG_QCOM_BAM_DMA=y
CONFIG_DW_DMAC=y
CONFIG_RCAR_DMAC=y
CONFIG_RENESAS_USB_DMAC=m
CONFIG_DMATEST=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_MMIO=y
CONFIG_STAGING=y
CONFIG_MFD_NVEC=y
CONFIG_KEYBOARD_NVEC=y
CONFIG_SERIO_NVEC_PS2=y
CONFIG_NVEC_POWER=y
CONFIG_NVEC_PAZ00=y
CONFIG_STAGING_BOARD=y
CONFIG_CHROME_PLATFORMS=y
CONFIG_CROS_EC=m
CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_SPI=m
CONFIG_COMMON_CLK_MAX77686=y
CONFIG_COMMON_CLK_RK808=m
CONFIG_COMMON_CLK_SCMI=y
CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_CLK_RASPBERRYPI=y
CONFIG_COMMON_CLK_QCOM=y
CONFIG_QCOM_CLK_RPM=y
CONFIG_APQ_MMCC_8084=y
CONFIG_MSM_GCC_8660=y
CONFIG_MSM_MMCC_8960=y
CONFIG_MSM_MMCC_8974=y
CONFIG_BCM2835_MBOX=y
CONFIG_ROCKCHIP_IOMMU=y
CONFIG_TEGRA_IOMMU_GART=y
CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_EXYNOS_IOMMU=y
CONFIG_REMOTEPROC=y
CONFIG_ST_REMOTEPROC=m
CONFIG_RPMSG_VIRTIO=m
CONFIG_ASPEED_LPC_CTRL=m
CONFIG_ASPEED_LPC_SNOOP=m
CONFIG_ASPEED_P2A_CTRL=m
CONFIG_RASPBERRYPI_POWER=y
CONFIG_QCOM_GSBI=y
CONFIG_QCOM_SMD_RPM=m
CONFIG_QCOM_WCNSS_CTRL=m
CONFIG_ARCH_EMEV2=y
CONFIG_ARCH_R8A7794=y
CONFIG_ARCH_R8A7779=y
CONFIG_ARCH_R8A7790=y
CONFIG_ARCH_R8A7778=y
CONFIG_ARCH_R8A7793=y
CONFIG_ARCH_R8A7791=y
CONFIG_ARCH_R8A7792=y
CONFIG_ARCH_R8A7740=y
CONFIG_ARCH_R8A73A4=y
CONFIG_ARCH_R7S72100=y
CONFIG_ARCH_R7S9210=y
CONFIG_ARCH_R8A77470=y
CONFIG_ARCH_R8A7745=y
CONFIG_ARCH_R8A7742=y
CONFIG_ARCH_R8A7743=y
CONFIG_ARCH_R8A7744=y
CONFIG_ARCH_R9A06G032=y
CONFIG_ARCH_SH73A0=y
CONFIG_ROCKCHIP_IODOMAIN=y
CONFIG_ROCKCHIP_PM_DOMAINS=y
CONFIG_ARCH_TEGRA_2x_SOC=y
CONFIG_ARCH_TEGRA_3x_SOC=y
CONFIG_ARCH_TEGRA_114_SOC=y
CONFIG_ARCH_TEGRA_124_SOC=y
CONFIG_ARM_EXYNOS_BUS_DEVFREQ=m
CONFIG_ARM_TEGRA_DEVFREQ=m
CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP=m
CONFIG_EXTCON_MAX14577=m
CONFIG_EXTCON_MAX77693=m
CONFIG_EXTCON_MAX8997=m
CONFIG_TI_AEMIF=y
CONFIG_STM32_FMC2_EBI=y
CONFIG_EXYNOS5422_DMC=m
CONFIG_IIO=y
CONFIG_IIO_SW_TRIGGER=y
CONFIG_ASPEED_ADC=m
CONFIG_AT91_ADC=m
CONFIG_AT91_SAMA5D2_ADC=m
CONFIG_BERLIN2_ADC=m
CONFIG_CPCAP_ADC=m
CONFIG_EXYNOS_ADC=m
CONFIG_MESON_SARADC=m
CONFIG_ROCKCHIP_SARADC=m
CONFIG_STM32_ADC_CORE=m
CONFIG_STM32_ADC=m
CONFIG_STM32_DFSDM_ADC=m
CONFIG_STMPE_ADC=m
CONFIG_VF610_ADC=m
CONFIG_XILINX_XADC=y
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
CONFIG_STM32_DAC=m
CONFIG_MPU3050_I2C=y
CONFIG_CM36651=m
CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_SENSORS_ISL29018=y
CONFIG_SENSORS_ISL29028=y
CONFIG_AK8975=y
CONFIG_IIO_HRTIMER_TRIGGER=y
CONFIG_IIO_STM32_LPTIMER_TRIGGER=m
CONFIG_PWM=y
CONFIG_PWM_ATMEL=m
CONFIG_PWM_ATMEL_HLCDC_PWM=m
CONFIG_PWM_ATMEL_TCB=m
CONFIG_PWM_BCM2835=y
CONFIG_PWM_BRCMSTB=m
CONFIG_PWM_FSL_FTM=m
CONFIG_PWM_MESON=m
CONFIG_PWM_RCAR=m
CONFIG_PWM_RENESAS_TPU=y
CONFIG_PWM_ROCKCHIP=m
CONFIG_PWM_SAMSUNG=m
CONFIG_PWM_STI=y
CONFIG_PWM_STM32=m
CONFIG_PWM_STM32_LP=m
CONFIG_PWM_SUN4I=y
CONFIG_PWM_TEGRA=y
CONFIG_PWM_VT8500=y
CONFIG_KEYSTONE_IRQ=y
CONFIG_PHY_SUN4I_USB=y
CONFIG_PHY_SUN9I_USB=y
CONFIG_PHY_HIX5HD2_SATA=y
CONFIG_PHY_BERLIN_SATA=y
CONFIG_PHY_BERLIN_USB=y
CONFIG_PHY_MMP3_USB=m
CONFIG_PHY_CPCAP_USB=m
CONFIG_PHY_QCOM_APQ8064_SATA=m
CONFIG_PHY_RCAR_GEN2=m
CONFIG_PHY_ROCKCHIP_DP=m
CONFIG_PHY_ROCKCHIP_USB=y
CONFIG_PHY_SAMSUNG_USB2=m
CONFIG_PHY_EXYNOS5250_SATA=m
CONFIG_PHY_UNIPHIER_USB2=y
CONFIG_PHY_UNIPHIER_USB3=y
CONFIG_PHY_MIPHY28LP=y
CONFIG_PHY_STIH407_USB=y
CONFIG_PHY_STM32_USBPHYC=y
CONFIG_PHY_TEGRA_XUSB=y
CONFIG_PHY_DM816X_USB=m
CONFIG_OMAP_USB2=y
CONFIG_TI_PIPE3=y
CONFIG_TWL4030_USB=m
CONFIG_NVMEM_IMX_OCOTP=y
CONFIG_ROCKCHIP_EFUSE=m
CONFIG_NVMEM_SUNXI_SID=y
CONFIG_NVMEM_VF610_OCOTP=y
CONFIG_MESON_MX_EFUSE=m
CONFIG_FSI=m
CONFIG_FSI_MASTER_GPIO=m
CONFIG_FSI_MASTER_HUB=m
CONFIG_FSI_MASTER_ASPEED=m
CONFIG_FSI_SCOM=m
CONFIG_FSI_SBEFIFO=m
CONFIG_FSI_OCC=m
CONFIG_COUNTER=m
CONFIG_STM32_TIMER_CNT=m
CONFIG_STM32_LPTIMER_CNT=m
CONFIG_EXT3_FS=y
CONFIG_EXT4_KUNIT_TESTS=y
CONFIG_BTRFS_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_NTFS_FS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_UBIFS_FS=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
CONFIG_PSTORE=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_RAM=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_CRYPTO_USER=m
# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
CONFIG_CRYPTO_RSA=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_CCM=m
CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_FSL_CAAM=m
CONFIG_CRYPTO_DEV_EXYNOS_RNG=m
CONFIG_CRYPTO_DEV_S5P=m
CONFIG_CRYPTO_DEV_ATMEL_AES=m
CONFIG_CRYPTO_DEV_ATMEL_TDES=m
CONFIG_CRYPTO_DEV_ATMEL_SHA=m
CONFIG_CRYPTO_DEV_MARVELL_CESA=m
CONFIG_CRYPTO_DEV_ROCKCHIP=m
CONFIG_CRYPTO_DEV_STM32_CRC=m
CONFIG_CRYPTO_DEV_STM32_HASH=m
CONFIG_CRYPTO_DEV_STM32_CRYP=m
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
CONFIG_X509_CERTIFICATE_PARSER=y
CONFIG_PKCS7_MESSAGE_PARSER=y
CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_CRC32_SELFTEST=y
CONFIG_CMA_SIZE_MBYTES=64
CONFIG_GLOB_SELFTEST=y
CONFIG_STRING_SELFTEST=y
CONFIG_PRINTK_TIME=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_RODATA_TEST=y
CONFIG_PROVE_LOCKING=y
CONFIG_DEBUG_LOCKDEP=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
CONFIG_WW_MUTEX_SELFTEST=y
CONFIG_DEBUG_LIST=y
CONFIG_RCU_EQS_DEBUG=y
CONFIG_KUNIT=y
CONFIG_KUNIT_TEST=y
CONFIG_TEST_SORT=y
CONFIG_RBTREE_TEST=y
CONFIG_INTERVAL_TREE_TEST=y
CONFIG_TEST_BITMAP=y
CONFIG_TEST_UUID=y
CONFIG_TEST_FIRMWARE=y
CONFIG_TEST_SYSCTL=y
CONFIG_SYSCTL_KUNIT_TEST=y
CONFIG_LIST_KUNIT_TEST=y

[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-15 15:46             ` Marc Zyngier
  2020-12-15 16:23               ` Guenter Roeck
@ 2020-12-18  5:18               ` Guenter Roeck
  2020-12-18 18:40                 ` Marc Zyngier
  1 sibling, 1 reply; 19+ messages in thread
From: Guenter Roeck @ 2020-12-18  5:18 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Andrew Lunn, Lorenzo Pieralisi, Jason Cooper, Scott Branden,
	Ray Jui, Gregory Clement, linux-kernel, Florian Fainelli,
	Thomas Gleixner, Valentin Schneider, linux-arm-kernel,
	Sebastian Hesselbarth

On 12/15/20 7:46 AM, Marc Zyngier wrote:
> On 2020-12-15 15:39, Guenter Roeck wrote:
>> On 12/15/20 7:26 AM, Marc Zyngier wrote:
>>> On 2020-12-15 15:21, Guenter Roeck wrote:
>>>> Hi Marc,
>>>>
>>>> On 12/15/20 2:19 AM, 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)
>>>>>
>>>>
>>>> I used qemu 5.0 which - up to now - worked fine. Let me try with
>>>> 5.1 and 5.2. Sorry, I should have tried first before bothering you.
>>>
>>> No bother at all. If this works for you on more recent versions of
>>> QEMU, that'd be an interesting data point. I'm also interested in
>>> the result of the patch either way.
>>>
>>
>> It doesn't work for me with qemu 5.1, nor with qemu 5.2. My userspace
>> is generated with buildroot, busybox-based, and very basic.
> 
> OK, so something is definitely different between our setups.
> Mind pointing me to your config and your QEMU invocation?
> 
>>
>> Your patch fixes the problem for me, though, so feel free to add
>>
>> Tested-by: Guenter Roeck <linux@roeck-us.net>
>>
>> if/when you submit it.
> 
> Thanks for that.
> 

Any news on this? I now see the problem in mainline.

Thanks,
Guenter


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-18  5:18               ` Guenter Roeck
@ 2020-12-18 18:40                 ` Marc Zyngier
  2020-12-18 18:47                   ` Guenter Roeck
  0 siblings, 1 reply; 19+ messages in thread
From: Marc Zyngier @ 2020-12-18 18:40 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Andrew Lunn, Lorenzo Pieralisi, Scott Branden, Ray Jui,
	Gregory Clement, linux-kernel, Florian Fainelli, Thomas Gleixner,
	Valentin Schneider, linux-arm-kernel, Sebastian Hesselbarth

On Fri, 18 Dec 2020 05:18:31 +0000,
Guenter Roeck <linux@roeck-us.net> wrote:

> Any news on this? I now see the problem in mainline.

I have just queued the fix:

https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/commit/?h=irq/irqchip-next&id=d7f39c40ebb6986e7371510d1c20a4efee4a7f0d

Thanks for you help in reproducing this.

	M.

-- 
Without deviation from the norm, progress is not possible.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/5] irqchip/bcm2836: Make IPIs use handle_percpu_devid_irq()
  2020-12-18 18:40                 ` Marc Zyngier
@ 2020-12-18 18:47                   ` Guenter Roeck
  0 siblings, 0 replies; 19+ messages in thread
From: Guenter Roeck @ 2020-12-18 18:47 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: Andrew Lunn, Lorenzo Pieralisi, Scott Branden, Ray Jui,
	Gregory Clement, linux-kernel, Florian Fainelli, Thomas Gleixner,
	Valentin Schneider, linux-arm-kernel, Sebastian Hesselbarth

On Fri, Dec 18, 2020 at 06:40:57PM +0000, Marc Zyngier wrote:
> On Fri, 18 Dec 2020 05:18:31 +0000,
> Guenter Roeck <linux@roeck-us.net> wrote:
> 
> > Any news on this? I now see the problem in mainline.
> 
> I have just queued the fix:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/commit/?h=irq/irqchip-next&id=d7f39c40ebb6986e7371510d1c20a4efee4a7f0d
> 
> Thanks for you help in reproducing this.

Thanks a lot for the fix!

Guenter

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2020-12-18 18:49 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-09  9:41 [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() 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 ` [PATCH 2/5] irqchip/armada-370-xp: Make IPIs " Valentin Schneider
2020-11-09  9:41 ` [PATCH 3/5] irqchip/bcm2836: " Valentin Schneider
2020-12-15  0:21   ` Guenter Roeck
2020-12-15 10:19     ` Marc Zyngier
2020-12-15 11:14       ` Valentin Schneider
2020-12-15 12:14         ` Marc Zyngier
2020-12-15 15:21       ` Guenter Roeck
2020-12-15 15:26         ` Marc Zyngier
2020-12-15 15:39           ` Guenter Roeck
2020-12-15 15:46             ` Marc Zyngier
2020-12-15 16:23               ` Guenter Roeck
2020-12-18  5:18               ` Guenter Roeck
2020-12-18 18:40                 ` Marc Zyngier
2020-12-18 18:47                   ` Guenter Roeck
2020-11-09  9:41 ` [PATCH 4/5] irqchip/hip04: " Valentin Schneider
2020-11-09  9:41 ` [PATCH 5/5] Revert "genirq: Add fasteoi IPI flow" Valentin Schneider
2020-12-11 15:01 ` [PATCH 0/5] genirq: Get rid of handle_percpu_devid_fasteoi_ipi() Marc Zyngier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).