Hello,
I have implemented a service in Genode OS based on tz_vmm demo on i.mx53-qsb. And I want to measure the performance of my service. I have included the "timer driver" in my Genode OS and added the 'perf_counter' to specs.conf file. Because my service implementation include some C language files, so I use 'gettimeofday()' function to get time in .c files. However, when the system running, it prints "Warning: timestamp value too big" many times. And the results is incorrect: I measure several period of the service, some of the period is quite long(about 30 seconds I observe from the print message, I know this is inaccuracy but I think it will not far from the actual execution time ) but the calculate time interval is about 9 seconds. Also, I use elapsed_time() function at the beginning(t1) and the ending(t2) of the service respectively, and t2-t1 is about 19193 ms, while I use time command to measure in linux is about 1m19s. At the side of linux, I just open my help module to use SMC to request my service in Genode OS and get back while the service is done, so I think the linux measure time will not far from the service excution time.
So my question is, how can I measure quite long time period in the Genode ? It seems the method I used above to measure time is inaccurate.