AnsweredAssumed Answered

How to assign IPI interrupts to a core other than Core#0

Question asked by pro-supportengineer Employee on Aug 17, 2016
Latest reply on Aug 17, 2016 by Pavel Chubakov

For SDK 2.0 LS1043ARDB is it possible to isolate a given CPU core from the following IPI interrupts, and if so, how do we isolate CPU0 from the following IPI interrupts:

  • Arch_timer
  • Rescheduling Interrupt
  • Function call interrupt?

 

root@ls1043ardb:~# echo 498 > /sys/class/gpio/export

root@ls1043ardb:~# echo falling > /sys/class/gpio/gpio498/edge

root@ls1043ardb:~# cat /proc/interrupts

 

             CPU0         CPU1       CPU2       CPU3

[....]        

66:            0            0          0          0     GIC 106

Level        1740000.jr

67:            0            0          0          0     mpc8xxx-gpio   18

Edge         gpiolib

IPI0:          3226         4833       4237      4170   Recheduling interrupts

IPI1:            17           21         19        23   Function call interrupts

 

 

Setting GPIO affinity doesn’t work:

 

root@ls1043ardb:~# echo 1 > /proc/irq/67/smp_affinity_list

-sh: echo: write error: Input/output error

 

Setting eMMC interrupt affinity works just fine:

 

root@ls1043ardb:~# echo 1 > /proc/irq/12/smp_affinity_list

root@ls1043ardb:~# cat /proc/interrupts

 

 

             CPU0         CPU1       CPU2       CPU3

[....]        

1:            0            0          0          0     GIC 29

Edge        arch_timer

2:           35475          39336    28975       38803 GIC 30

Edge        arch_timer

11             9           0          0           0    GIC 75 Level    fsl-ifc

12:           3370         14         0           0    GIC 94 Level    mmc0

[...]

Outcomes