We are experiencing serious jitter issues on an ARM64 imx8.
Until now, on rpi and beaglebone derivatives, and on Intel, we never encountered jitter issues unless they were already present on the device.
In this case, as can be seen from the attached graph, we have excellent maximum latency. The cyclictest on the isolated core dedicated to IEC CODESYS tasks shows a latency of 37Β΅s, with an average of 14Β΅s.
Usually, on all other devices, with an RT kernel, with the appropriate parameters to avoid frequency throttling, with properly managed IRQs, and with the disabling of large page sizes, the jitter measured by CODESYS is very close to the cyclictest latency.
However, on this imx8, we are noticing a fluctuating value of +/- 300Β΅s that seems to be added to this latency, as if something occasionally miscalculates the sleep times by exactly +/- 300Β΅s.
Two screenshoot attached.
- Result of cyclictest
- Jitter on CODESYS
We are experiencing serious jitter issues on an ARM64 imx8.
Until now, on rpi and beaglebone derivatives, and on Intel, we never encountered jitter issues unless they were already present on the device.
In this case, as can be seen from the attached graph, we have excellent maximum latency. The cyclictest on the isolated core dedicated to IEC CODESYS tasks shows a latency of 37Β΅s, with an average of 14Β΅s.
Usually, on all other devices, with an RT kernel, with the appropriate parameters to avoid frequency throttling, with properly managed IRQs, and with the disabling of large page sizes, the jitter measured by CODESYS is very close to the cyclictest latency.
However, on this imx8, we are noticing a fluctuating value of +/- 300Β΅s that seems to be added to this latency, as if something occasionally miscalculates the sleep times by exactly +/- 300Β΅s.
Two screenshoot attached.
- Result of cyclictest
- Jitter on CODESYS
Tasks are assigned to isolated core!
SOLVED!!!
In this imx8 max_cstate=1 in kernel boot parameters is not working!
We found a workaround:
This simple code launched before CODESYS do the same work!
Now jitter is identical as measured by cyclictest!