[UPDATE] 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 | <20061002143138.GA19717@Krystal> |
Here are two minor corrections of my results : * Mathieu Desnoyers ([email protected]) wrote: [...] > * Micro-benchmarks [...] > The following tests are done with the "optimized" markers only > [...] > - Execute a loop with a marker enabled, with an empty probe. Var args argument > setup, probe empty. No preemption disabling. > NR_LOOPS : 100000 > time delta (cycles): 3363450 > cycles per loop : 33.63 - cycles per loop to disable preemption : 44.08-33.63=10.45 + cycles per loop to disable preemption : 52.11-33.63=18.48 [...] > * Size (x86) > > This is the size added by each marker to the memory image : > > - Optimized > > .text section : instructions > Adds 6 bytes in the "likely" path. > Adds 32 bytes in the "unlikely" path. > .data section : r/w data > 0 byte + 4 bytes for the call address > .rodata.str1 : strings > Length of the marker name > .debug_str : strings (if loaded..) > Length of the marker name + 7 bytes (__mark_) > .markers > 8 bytes (2 pointers) > .markers.c > 12 bytes (3 pointers) > > - Generic > > .text section : instructions > Adds 11 bytes in the "likely" path. > Adds 32 bytes in the "unlikely" path. > .data section : r/w data > 1 byte (the activation flag) + 4 bytes for the call address > .rodata.str1 : strings > Length of the marker name > .debug_str : strings (if loaded..) > Length of the marker name + 7 bytes (__mark_) > .markers > 8 bytes (2 pointers) > .markers.c > 12 bytes (3 pointers) > Mathieu OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68