Hi Waldo,
My branch 'https://github.com/m-stein/genode/tree/hw_perf_arm_v7' implements a simple in-kernel tool for low-level performance statistics on HW+ARMv7. It measures the CPU cycles that were executed by a thread directly (called "EC" in the output) and those that were payed by a threads scheduling context (called "PC" in the output). Be aware that these are different things as a thread might temporarily "borrow" its scheduling context to other threads. You can output the statistic by issuing 'Kernel::print_char(0);' in the userland as it is done in 'os/src/test/signal/main.cc' exemplarily or directly from the kernel. Be aware that you need to add 'perf_counter' to your 'SPECS' variable in your '<BUILD_DIR>/etc/specs.conf'. The tool can also be easily modified to measure only in-kernel time or the duration of specific syscalls. But be aware that the counter has to be read in a certain frequency to avoid loss of overflow information in 'Kernel::Perf_counter::value(bool & overflow)'. Furthermore, this tool shouldn't be used together with the tracing framework Norman mentioned as they may interfere on the performance counter.
Cheers, Martin
On 09.02.2015 19:49, Waldo Paz Rodriguez wrote:
hello genode hackers, I need to know which types of testing and tools are available for testing devices drivers, system call performance, scheduling and any modification made on the system.
best regards, waldo
Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main