Re: Performance analysis of Linux Kernel Markers 0.20 for 2.6.17

Mathieu Desnoyers <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.kernel.tracing,gmane.linux.systemtap
Message-ID <20061001034212.GB13527@Krystal>
* Nicholas Miell ([email protected]) wrote:
> On Sat, 2006-09-30 at 14:01 -0400, Mathieu Desnoyers wrote:
> > Hi,
> > 
> > Following the huge discussion thread about tracing/static vs dynamic
> > instrumentation/markers, a consensus seems to emerge about the need for a
> > marker system in the Linux kernel. The main issues this mechanism addresses are:
> > 
> > - Identify code important to runtime data collection/analysis tools in tree so
> >   that it follows the code changes naturally.
> > - Be visually appealing to kernel developers.
> > - Have a very low impact on the system performance.
> > - Integrate in the standard kernel infrastructure : use C and loadable modules.
> > 
> > The time has come for some performance measurements of the Linux Kernel Markers,
> > which follows. I attach a PDF with tables and charts which condense these
> > results.
> 
> Has anyone done any performance measurements with the "regular function
> call replaced by a NOP" type of marker?
> 

Here it is (on the same setup as the other tests : Pentium 4, 3 GHz) :

* Execute an empty loop

- Without marker
NR_LOOPS : 10000000
time delta (cycles): 15026497
cycles per loop : 1.50

- With 5 NOPs
NR_LOOPS : 100000
time delta (cycles): 300157
cycles per loop : 3.00
added cycles per loop for nops : 3.00-1.50 = 1.50


* Execute a loop of memcpy 4096 bytes

- Without marker
NR_LOOPS : 10000
time delta (cycles): 12981555
cycles per loop : 1298.16

- With 5 NOPs
NR_LOOPS : 10000
time delta (cycles): 12983925
cycles per loop : 1298.39
added cycles per loop for nops : 0.23


If we compare this approach to the jump-over-call markers (in cycles per loop) :

              NOPs    Jump over call generic    Jump over call optimized
empty loop    1.50    1.17                      2.50 
memcpy        0.23    2.12                      0.07



Mathieu


OpenPGP public key:              http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint:     8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.