Below is test program run on MCIMX6Q-SDP with imx_3.14.28_1.0.0_ga + preempt-rt patch patch-3.14.28-rt25. The red numbers are good, but others seems not good. Is there anything can be improve?
root@imx6qsabresd:~# ./testrun
Board: imx6qsabresd
Linux: imx_3.14.28_1.0.0_ga + preempt-rt patch patch-3.14.28-rt25
Toolchain: poky 1.7
RootFS: core-image-minimal
#include <stdio.h>
#include <time.h>
#include <sched.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>
struct timespec diff(struct timespec start, struct timespec end)
{
struct timespec temp;
if ((end.tv_nsec-start.tv_nsec)<0) {
temp.tv_sec = end.tv_sec-start.tv_sec-1;
temp.tv_nsec = 1000000000+end.tv_nsec-start.tv_nsec;
} else {
temp.tv_sec = end.tv_sec-start.tv_sec;
temp.tv_nsec = end.tv_nsec-start.tv_nsec;
}
return temp;
}
int main(){
struct timespec time1, time2;
struct sched_param schedp;
if (mlockall(MCL_CURRENT | MCL_FUTURE))
perror("mlockall failed:");
memset(&schedp, 0, sizeof(schedp));
schedp.sched_priority = 90;
sched_setscheduler(0, SCHED_FIFO, &schedp);
while(1) {
clock_gettime(CLOCK_REALTIME, &time1);
usleep(1);
clock_gettime(CLOCK_REALTIME, &time2);
printf("%ld.%09ld sec\n", diff(time1,time2).tv_sec, diff(time1,time2).tv_nsec);
sleep(1);
}
return 0;
}
Hi m.c.
one can look at
Re: Long max latencies on Wandbaord / Freescale i.MX6 (Linux Real Time)
in general disabling low power modes/dvfs and running on one core should
improve latencies.
Best regards
igor