AnsweredAssumed Answered

imx6q realtime performance

Question asked by Ivan Stoyanov on Jun 9, 2015
Latest reply on Jun 15, 2015 by alejandrolozano



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


Cyclictest result

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 + [002] 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 ==> [002] 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?