* changz ([email protected]) wrote: > Hi All, > > I wrote a very simple test code like this: > > for (i = 0; i < 0xffffff; i++) { > tracepoint(sample_component, message, "This is a > performance test:","main",i); > } > > And then I started lttng and ran the test code: > time ./test > real0m16.120s
This is indeed very high (96 microsecond per event). There is something wrong with your system (what architecture, kernel version do you use ? Getting you dmesg log would be useful too, especially to find out which clock source your kernel uses. Also, are you in a virtualized environment ? If yes, which ?) > user0m8.280s > sys0m7.789s > > From the result of time output, you can see sys time is about half of > the whole run-time. I wondered where the cost was from. > So I used strace to track it and found amount of system calls (get_cpu > and clock_gettime) during the run-time. > I know these system calls are used for ring-buffer. But I just think the > cost is a little heavy. > > What do you think? On x86, these calls are done through a kernel vDSO. Having those showing up in strace tells me that you kernel might be quite old, or use use an architecture that implements those as standard system calls rather than vDSO. Thanks, Mathieu > > BR > Zheng > _______________________________________________ > lttng-dev mailing list > [email protected] > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
