From: Marc Zyngier <hidden> Date: 2016-07-19 14:39:02
Patch 19a469a58720 ("drivers/perf: arm-pmu: Handle per-interrupt
affinity mask") added support for partitionned PPI setups, but
inadvertently broke setups using SPIs without the "interrupt-affinity"
property (which is the case for UP platforms).
This patch restore the broken functionnality by testing whether the
interrupt is percpu or not instead of relying on the using_spi flag
that really means "SPI *and* interrupt-affinity property".
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Fixes: 19a469a58720 ("drivers/perf: arm-pmu: Handle per-interrupt affinity mask")
Signed-off-by: Marc Zyngier <redacted>
---
drivers/perf/arm_pmu.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
@@ -958,11 +958,12 @@ static int of_pmu_irq_cfg(struct arm_pmu *pmu)/* If we didn't manage to parse anything, try the interrupt affinity */if(cpumask_weight(&pmu->supported_cpus)==0){-if(!using_spi){+intirq=platform_get_irq(pdev,0);++if(irq_is_percpu(irq)){/* If using PPIs, check the affinity of the partition */-intret,irq;+intret;-irq=platform_get_irq(pdev,0);ret=irq_get_percpu_devid_partition(irq,&pmu->supported_cpus);if(ret){kfree(irqs);
From: Will Deacon <hidden> Date: 2016-07-19 16:23:20
On Tue, Jul 19, 2016 at 03:39:02PM +0100, Marc Zyngier wrote:
Patch 19a469a58720 ("drivers/perf: arm-pmu: Handle per-interrupt
affinity mask") added support for partitionned PPI setups, but
inadvertently broke setups using SPIs without the "interrupt-affinity"
property (which is the case for UP platforms).
This patch restore the broken functionnality by testing whether the
interrupt is percpu or not instead of relying on the using_spi flag
that really means "SPI *and* interrupt-affinity property".
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Fixes: 19a469a58720 ("drivers/perf: arm-pmu: Handle per-interrupt affinity mask")
Signed-off-by: Marc Zyngier <redacted>
---
drivers/perf/arm_pmu.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
Thanks, looks good to me:
Acked-by: Will Deacon <redacted>
Catalin, can you pick this up, please?
Will
Hi Marc,
On Tue, Jul 19, 2016 at 9:39 AM, Marc Zyngier [off-list ref] wrote:
Patch 19a469a58720 ("drivers/perf: arm-pmu: Handle per-interrupt
affinity mask") added support for partitionned PPI setups, but
inadvertently broke setups using SPIs without the "interrupt-affinity"
property (which is the case for UP platforms).
This patch restore the broken functionnality by testing whether the
interrupt is percpu or not instead of relying on the using_spi flag
that really means "SPI *and* interrupt-affinity property".
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Fixes: 19a469a58720 ("drivers/perf: arm-pmu: Handle per-interrupt affinity mask")
Signed-off-by: Marc Zyngier <redacted>
kernelci.org detected boot failures on bcm2835-rpi-b in mainline[1]
and was bisected down to this patch. I verified that reverting this
patch on top of mainline gets bcm2835-rpi-b booting again.
I haven't been closely tracking this change, but a quick glance and it
looks like this platform is possibly missing IRQ properties from its
PMU node? The DT for this platform simply has:
arm-pmu {
compatible = "arm,arm1176-pmu";
};
Kevin
[1] https://kernelci.org/boot/id/57bb4d9259b514895348b564/
From: Will Deacon <hidden> Date: 2016-08-30 17:27:10
Hi Kevin,
Thanks for reporting this.
On Fri, Aug 26, 2016 at 12:11:55PM -0500, Kevin Hilman wrote:
On Tue, Jul 19, 2016 at 9:39 AM, Marc Zyngier [off-list ref] wrote:
quoted
Patch 19a469a58720 ("drivers/perf: arm-pmu: Handle per-interrupt
affinity mask") added support for partitionned PPI setups, but
inadvertently broke setups using SPIs without the "interrupt-affinity"
property (which is the case for UP platforms).
This patch restore the broken functionnality by testing whether the
interrupt is percpu or not instead of relying on the using_spi flag
that really means "SPI *and* interrupt-affinity property".
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Fixes: 19a469a58720 ("drivers/perf: arm-pmu: Handle per-interrupt affinity mask")
Signed-off-by: Marc Zyngier <redacted>
kernelci.org detected boot failures on bcm2835-rpi-b in mainline[1]
and was bisected down to this patch. I verified that reverting this
patch on top of mainline gets bcm2835-rpi-b booting again.
I haven't been closely tracking this change, but a quick glance and it
looks like this platform is possibly missing IRQ properties from its
PMU node? The DT for this platform simply has:
arm-pmu {
compatible = "arm,arm1176-pmu";
};