* H. Peter Anvin (hpa@zytor.com) wrote:Yes, this is the case. Using breakpoints for markers quickly becomes noticeable for thing such as scheduler instrumentation, page fault handler instrumentation, etc. And yes, I have developed kernel tracer, LTTng, which takes care of writing the data to trace buffers efficiently. The last time I took performance measurements, it was performing locking and writing to the memory buffer in about 270ns on a 3GHz Pentium 4. It might be a tiny bit slower now that it parses the markers format strings dynamically, but nothing very significant. But there is another point that markers do which the breakpoint won't give you : they extract local variables from functions and they identify them with field names which separates the instrumentation from the actual kernel implementation details. In order to do that, I rely on gcc building a stack frame for a function call, which I don't want to build unnecessarity when the marker is disabled. This is why I use a jump to skip passing the arguments on the stack and the function call. Mathieu -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 --
| Greg KH | Og dreams of kernels |
| Jens Axboe | [PATCH 31/33] Fusion: sg chaining support |
| Arnd Bergmann | Re: finding your own dead "CONFIG_" variables |
| Mark Brown | [PATCH 2/2] Subject: natsemi: Allow users to disable workaround for DspCfg reset |
| Tony Breeds | [LGUEST] Look in object dir for .config |
git: | |
| Brian Downing | Re: Git in a Nutshell guide |
| John Benes | Re: master has some toys |
| Matthias Lederhofer | [PATCH 4/7] introduce GIT_WORK_TREE to specify the work tree |
