Hi,
I’m using the Jetson AGX as a root port and a nVIDIA dev board as GPIO endpoint.
I’m able to measured the Interrupt Latency between two gpio pins is well.
By default, IRQ affinity is setup to the CPU0 core of the Jetson AGX. Here is a view of the IRQ associated with my GPIO driver :
cat /proc/interrupts | grep gpio
247: 0 0 0 0 0 0 0 0 tegra-gpio 48 Edge force-recovery
251: 2 0 0 0 0 0 0 0 tegra-gpio 52 level phy_interrupt
254: 0 0 0 0 0 0 0 0 tegra-gpio 55 Edge 3400000.sdhci cd
257: 2 0 0 0 0 0 0 0 tegra-gpio 58 level tmp451
297: 0 0 0 0 0 0 0 0 tegra-gpio 98 Edge 15200000.nvdisplay
348: 0 0 0 0 0 0 0 0 tegra-gpio 149 Edge rt5659
391: 271811308 0 0 0 0 0 0 0 tegra-gpio 192 Edge bluetooth hostwake
436: 22 0 0 0 0 0 0 0 tegra-gpio-aon 9 Edge my_interrupt
437: 19 0 0 0 0 0 0 0 tegra-gpio-aon 10 level ccg_irq
459: 0 0 0 0 0 0 0 0 tegra-gpio-aon 32 Edge fs_cd_gpio
463: 0 0 0 0 0 0 0 0 tegra-gpio-aon 36 Edge power-key
500: 0 0 0 0 0 0 0 0 max77620-top 3 Edge max77620-gpio
The user IRQ is the #436 and I’d like to change its affinity to another CPU core. But the following command return an error :
root@nvidia:/home/nvidia# echo 4 > /proc/irq/436/smp_affinity
bash: echo: write error: Input/output error
I also try to change affinity in Kernel space through the driver adding the following command :
irq_set_affinity_hint(irq, cpumask_of(4));
But it doesn’t work either…
I’ve built the Kenerl and cross-compiled. I’m not getting any errors and warnings and it is the case.
How can I change these IRQ affinity ?
Thanks & Regards,
M. Venu Gopal