[Letux-kernel] jz4730-i2c - clocksource

H. Nikolaus Schaller hns at goldelico.com
Sat Mar 6 12:03:30 CET 2021


> Am 06.03.2021 um 08:52 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> But the whole system is still horribly slow when starting X11
> or running sysbench.
> 
> I still wonder if we could be running without cache for example?
> Any idea how to check that? Maybe U-Boot did not enable it?

Did run another test with a small C program.

A) Udoo Neo with i.MX6

root at letux:~# cat speed.c
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv)
{
char buf[100];
int i;
for(i=0; i<100000000; i++)
	strcpy(buf, "hello world!");
}
root at letux:~# make speed
cc     speed.c   -o speed
speed.c: In function 'main':
speed.c:9:2: warning: incompatible implicit declaration of built-in function 'strcpy'
  strcpy(buf, "hello world!");
  ^
root at letux:~# time ./speed

real	0m1.969s
user	0m1.962s
sys	0m0.001s
root at letux:~# 

B) Letux 400 with clocksource=ingenic-timer

(compilation is identical)

root at letux:~# time ./speed

real    0m8.549s
user    0m8.456s
sys     0m0.053s
root at letux:~#

This is the factor 4 slower which is as expected.

All this means that it is not the CPU running slower than expected.
But why is

	sysbench --num-threads=1 --test=cpu --cpu-max-prime=1 run

    total time: 15.9834s
    total number of events: 10000
    total time taken by event execution: 15.8316 

vs. i.MX6

    total time:                          0.0558s
    total number of events:              10000
    total time taken by event execution: 0.0405

slower by factor 286?

The only difference to my strcpy-benchmark is that sysbench uses
threads and something called "events".

IMHO we still have a problem with task/process/thread scheduling.
Maybe idle states?

BR,
Nikolaus



More information about the Letux-kernel mailing list