Re: Multiple handlers per marker
Mathieu Desnoyers <[email protected]> Thu, 1 Nov 2007 18:15:30 -0400
| Newsgroups | gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <20071101221530.GC19700@Krystal> |
* Mike Mason ([email protected]) wrote: > Hi Mathieu, > > Are you aware of any working being done to allow multiple handlers to be > attached to a marker? Something like what kprobes allows. I've started to > look into this and don't want to duplicate efforts. > Nope, but I know we will have to address this. Something along the lines of walking an RCU list of function pointers, calling them. The only downside I see is that we will have to pass a va_list * instead of real va args. The could make the marker site a little bit bigger and will change the probe callback arguments. What do you think about these ideas ? If we can find a way to make the common case (only one probe connected) _ultra_ fast, and yet architecture independent, that would be awesome. A simple call is kind of hard to beat though.. So we may have to think about a design with : - One call at the marker site - if 1 probe is installed : - If the format string is empty, connect a probe without va args. - If the format string is not empty, connect a "stage 1" probe that takes the va args, starts/ends the va_list and calls _one_ function (let's call it "stage 2" probe), that takes va_list as parameter. - if more than 1 probe is installed : - The stage 1 probe creates the va_list and passes it to each function connected, iterated with an RCU list. What do you think ? Mathieu > Thanks, > Mike -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68