I am trying to achieve better real time performance on imx6qsabresd board. The idea is to run high priority real time task on a shielded core.
My test are based on cyclictest where I measure the maximum latency. The measured values are between 28 - 40ns.
My kernel version with preempt-rt patch:
Linux qemu 3.14.23-rt20-PD13.2.3 #24 SMP PREEMPT RT Tue Jun 9 16:03:30 EEST 2015 armv7l GNU/Linux
root@qemu:~ taskset -c 2 cyclictest -t 1 -p 80 -n -m -q -l 100000 # /dev/cpu_dma_latency set to 0us T: 0 ( 1447) P:80 I:1000 C: 100000 Min: 9 Act: 16 Avg: 16 Max: 28
Going deeper I have found that the latency came from linux scheduler.
<idle>-0 2dn.h4.. 1us+: 0:120:R +  1511: 94:R sleep <idle>-0 2dn.h4.. 5us+: 0 <idle>-0 2dn.h4.. 8us+: sched_wakeup: comm=sleep pid=1511 prio=94 success=1 target_cpu=002 <idle>-0 2d...3.. 28us+: __schedule <idle>-0 2d...3.. 31us : 0:120:R ==>  1511: 94:R sleep
Is it possible this delay to come from i.MX6 context switching?
Does anyone have already done similar tests with i.MX6 processors and if yes what are the results? Is it possible to achieve better maximum latency with i.MX6Q processor?