This is the mail archive of the
mailing list for the systemtap project.
Re: BZ#2421 - removing duplicate probe handlers
On Wed, 2006-08-02 at 16:03 +0800, Li Guanglei wrote:
> David Smith åé:
> > On Fri, 2006-07-21 at 14:13 -0500, David Smith wrote:
> > [...]
> > I've been working on this and here's an update.
> > I made a stab at removing duplicate functions. I cheated and just
> > hashed the args/body of functions to do comparisons. All duplicate
> > functions are redirected to the first copy found. A patch is attached.
> > I'd appreciate any code comments.
> Hi David,
> I tried this stap script:
> probe kernel.function("sys_read"), kernel.function("sys_write")
> but stap will still generate duplicated handlers after applying your
> enter_probe_896 and probe_896 are exactly a copy of enter_probe_897
> and probe_897. It seems to me that this patch will determine if a
> function is duplicated with another function by hashing its function
> names and arguments. So semantic_pass_opt5 will think that
> enter_probe_896 and enter_probe_897 are different and didn't optimize
> for it. If so, maybe we have to do this optimization a little earlier,
> say, in semantic_pass_symbols() before calling
> semantic_pass_optimize(). Am I right?
> - Guanglei
You are correct, the patch currently doesn't try to do probe merging at
all, because of the conceptual problems I listed. What it does do is
remove duplicate functions. So this script:
printf("return is %d", $return)
will only end up with 1 function to get the value of $return instead of
Red Hat, Inc.