This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: djprobes status
On Fri, 2006-09-15 at 20:59 +0200, Ingo Molnar wrote:
> a third possibility would be to generate not a jump straight into the
> trampoline, but a jump to a kprobes-controlled function:
>
> pushw $target_IP
> ret
ok, that's not enough, in this scheme we'd have to do something like:
pushl $trampoline_offset
callq $generic_handler
which is 10 bytes - quite large.
[generic_handler() would then do preempt_disable(), and it would call
the function pointer passed to it and then it would set up a
preempt_enable() call on the stack and jump to the trampoline. When the
trampoline does RET, we'd return to straight after the callq above.]
in that sense the freeze_processes()/thaw_processes() approach sounds
robust, because it would keep the "size of destruction" at the minimal 5
bytes.
Ingo