x86_64 kprobes wart removal
Jim Keniston
jkenisto@us.ibm.com
Fri Apr 8 23:24:00 GMT 2005
On Thu, 2005-04-07 at 18:56, Roland McGrath wrote:
> > This email is for x86_64 kprobes wonks. Remember get_insn_slot() and
> > free_insn_slot()? These functions are a constant headache because they
> > can sleep.
>
> I don't understand why this is a problem. This is only {un,}register_kprobe
> that might block, not anything involved in running a probe.
True. But as new features (return probes, multiple probes per address,
performance fixups) come along, locking in the register/unregister
functions gets more delicate, and the sleepiness of get/free_insn_slot()
becomes more of a liability. I've already seen a couple of patches
where the author had to contort the code flow to deal with this
correctly.
>
> > - When it comes time to single-step an instruction, just copy the
> > instruction from the kprobe object to the executable page.
>
> Possibly an icache nightmare.
See my response to Will on this. Do you have specific concerns that
aren't addressed there?
I would appreciate it if anybody could suggest a particular combination
of factors (e.g., 1 CPU or many, 1 probe or many) that would be likely
to demonstrate the anticipated performance degradation.
Thanks for the comments.
Jim
More information about the Systemtap
mailing list