Question about the performance of LTTng-UST
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 4 lines · * changz ([email protected]) wrote:
Hi All,
I wrote a very simple test code like this:
Quoted 8 lines
for (i = 0; i <
0xffffff; i++) {
tracepoint(sample_component, message, "This is aperformance 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 ?)
Quoted 11 lines
user0m8.280s
sys0m7.789sFrom 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_cpuandclock_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
Quoted 8 lines
BR
Zheng_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
Signature · 4 lines
Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com
A message that is not in the archive (sent off-list or not yet received): 20120725132937.GA14530@Krystal
Quoted 10 lines · Mathieu Desnoyers
Quoted 9 lines · * 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 aperformance test:","main",i); }
Quoted 8 lines
Quoted 3 lines
And then I started lttng and ran the test code:
time ./test
real0m16.120sThis 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 ?)
Mathieu,
My OS is a X86 linux kernel 2.6.38 running on Vmware workstation for windows. linux-gate.so was linked to my test code.
And here is a message found in dmesg output:
[2.228750] Switching to clocksource tsc
I found a benchmark data about vmware system call. It says the virtualization can cause ten times delay than it runs on host directly. So I guess that's the reason why my test code ran slowly.
Could you provide more info about the impact introduced by different clock sources?
Thanks
Zheng
Quoted 27 lines
Quoted 11 lines
user0m8.280s
sys0m7.789sFrom 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_cpuandclock_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
Quoted 6 lines
BR
Zheng
_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev