[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