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

Reply via email to