* H. Peter Anvin (hpa@zytor.com) wrote:Great :) The per-site pieces of code are only there to do the stack setup. I really wonder if we could do this more efficiently from DWARF info. About DWARF : I agree with Ingo that we might not want to depend on this kind of information normally expected to be correct for debug uses in a part of infrastructure that is not limited to debugging situation. Continous performance monitoring is one of the use cases I have in mind. Moreover, depending on DWARF info requires us to do architecture-specific code from the beginning. The markers are designed in such a way that any given new architecture can use the "architecture agnostic" version of the markers, and then later implement the optimizations. With about 27 architectures supported by the Linux kernel, I think this approach makes sense. Looking at the number of years it took to port something as "simple" as kprobes to 8 out of 27 architectures speaks for itself. We totally agree on this about the jump-patching optimization. If the jump-patching approach I proposed is too far-fetched, and if reading a variable from memory at each tracing site is too expensive, I would propose to use the standard "immediate values" flavor until gcc gives us that kind support for patchable jump instructions. Using the compiler for the markers (I am not talking about immediate values, which is an optimization) is what gives us the ability to do an architecture-agnostic version. The 19 architectures which still lacks kprobes support tell me that it isn't such a bad way to go. Following your own suggestion, why don't we fix gcc and make it interleave unlikely blocks less heavily with hot blocks ? Agreed. I'd like to find some info about which microarchitectures you have in mind. Intel Core 2 ? Let's fix gcc ! ;) Cheers, Mathieu -- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 --
| Joe Perches | [PATCH 011/148] include/asm-x86/bug.h: checkpatch cleanups - formatting only |
| Arjan van de Ven | [patch] Add basic sanity checks to the syscall execution patch |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Greg Kroah-Hartman | [PATCH 006/196] Chinese: add translation of oops-tracing.txt |
git: | |
| Aaron Bentley | Re: VCS comparison table |
| Kevin Ballard | Re: git on MacOSX and files with decomposed utf-8 file names |
| Dmitry Potapov | Re: I'm a total push-over.. |
| Junio C Hamano | Re: Implementing branch attributes in git config |
| Richard Stallman | Real men don't attack straw men |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| rancor | How to copy/pipe console buffert to file? |
| Richard Stallman | Re: Real men don't attack straw men |
| Felix Radensky | RE: e1000e "Detected Tx Unit Hang" |
| Andrew Morton | Re: [BUG] New Kernel Bugs |
| Jay Vosburgh | [PATCH 0/9]: bonding support for IPoIB |
| Jeff Garzik | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
