[RFC] Design + prototype: Multiple kprobes at an address - take 2
William Cohen
wcohen@redhat.com
Wed Apr 6 16:10:00 GMT 2005
Frank Ch. Eigler wrote:
> Hi -
>
>
> On Wed, Apr 06, 2005 at 10:48:21AM -0400, Ananth N Mavinakayanahalli wrote:
>
>>[...]
>>2.5.3 Fault handlers
>>
>>Fault handlers are called in sequence until one of them handles
>>the fault (returns non zero). Once a fault is handled, no other
>>handlers are called.
>
>
> I still don't think this is a very useful characteristic. Can you
> imagine a usage scenario where it might be useful?
>
>
>>NOTE:
>>
>>a. Fault handlers are meant not just to handle faults during
>> the execution of the handlers, but also in cases when we fault
>> while single-stepping out of line. This is the most common case
>> with user-space probes [...]
>
>
> What can a custom kprobes fault handler do if a user-level instruction
> causes a fault? How is it any more or less recoverable from the point
> of view of the user program, or the kernel, than if the kprobe was on
> a kernel instruction instead?
>
>
>>b. In case we fault while executing a handler, only that kprobe's
>> fault handler should be invoked. This design doesn't yet do
>> that.
>>[...]
>
>
> The aggr_pre_handler / aggr_post_handler functions could find the
> appropriate current fault_handler within their internal loops, and put
> it in a place where aggr_fault_handler can find it.
The current solution for fault handlers would only work if all the fault
handlers are the same.
Would it be worthwhile to have a per cpu variable with a pointer to the
current kprobe being executed? If fault occurs, the variable could be
examined to determine which fault handler to run.
-Will
More information about the Systemtap
mailing list