This is the mail archive of the
systemtap@sources.redhat.com
mailing list for the systemtap project.
Re: x86_64 kprobes wart removal
- From: Jim Keniston <jkenisto at us dot ibm dot com>
- To: Roland McGrath <roland at redhat dot com>
- Cc: SystemTAP <systemtap at sources dot redhat dot com>
- Date: 08 Apr 2005 16:24:17 -0700
- Subject: Re: x86_64 kprobes wart removal
- Organization:
- References: <200504080156.j381uhXp017954@magilla.sf.frob.com>
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