This is the mail archive of the systemtap@sources.redhat.com mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: x86_64 kprobes wart removal


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]