design: function-exit probes
William Cohen
wcohen@redhat.com
Tue Feb 15 18:37:00 GMT 2005
Maneesh Soni wrote:
> On Mon, Feb 14, 2005 at 09:01:38AM -0800, Jim Keniston wrote:
> [..]
>
>>maxactive is specified by the user. It is the number of instances of the
>>probed function that can be active concurrently. For example, if the
>>function is non-recusrive and is called with a spinlock or mutex held,
>>maxactive = 1 should be enough. If the function never sleeps and is
>>not recursive, NR_CPUS should be enough. (Right?) maxactive is used to
>
>
> If I am not wrong, here we should keep kernel premption also in mind. So,
> in addition to above conditions, maxactive will be NR_CPUS when premption
> is disabled.
>
>
>>1.5 Assumptions and Limitations
>>
>>1. This requires a probepoint (but not necessarily a user-defined
>>handler) at the entry to every function whose returns are traced.
>
>
> I think we need to take care for the case when user explicitly
> wants to probe function entry point. I am not sure if kprobe
> handles two probe handler for the same address.
Currently, kprobes doesn't allow multiple probes for the same address. I
would like to see this change. The return probes is one example where it
would be useful for kprobes to allow multiple probes for the same
address. One is an explicity probe placed at entry by the user and the
other probe is an implicit probe to set thing up for the return probe.
It could be possible for the instrumentation compiler to merge the
probes together. However, things will get complicated if multiple sets
of instrumentation (instrumentation modules) are running at the same time.
-Will
More information about the Systemtap
mailing list