Hello all,
I have implemented a service in genode os which is based on tz_vmm demo on
i.mx53-qsb board. Now I want to measure the execution time of the service. I
measure the execution time both in linux and genode,but find a incredible
result:
1. In linux, I record the start time t1 and end time t2 ,then I use t2-t1 to
measure the execution time.
2. In genode, I get a timer use : Timer::Connection _timer(_env), and use
_timer.elapsed_ms() to get the start and the end of the service time and use
end-start to calculate the execution time.
However, the result of the two world are far from each other. In linux, it's
about 45 seconds, but in genode it's only about 11 seconds. I know, in linux
side, it will first open the help module in kernel space and issue smc to
switch to secure world and switch back when service is done. But I think it
won't take such a long time.And actually, I think the execution is about 45
seconds which I observed from the start and end message. So I doubt there's
problem with my measurement in genode.
My settings:
1. In tz_vmm.run:
add targets {drivers/timer}
add <start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
add boot_modules {timer}
2. In service file , server.cc:
add #include <trace/timestamp.h>
in funcion add: Timer::Connection _timer(_env); start=_timer.elapsed_ms();
Any help will be grateful, thanks!
------------------
Best wishes_______________________________________________
Genode users mailing list
[email protected]
https://lists.genode.org/listinfo/users