All of lore.kernel.org
 help / color / mirror / Atom feed
From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
To: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@elte.hu>, Mel Gorman <mel@csn.ul.ie>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Roland McGrath <roland@redhat.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
	Oleg Nesterov <oleg@redhat.com>, Mark Wielaard <mjw@redhat.com>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Jim Keniston <jkenisto@linux.vnet.ibm.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	"Frank Ch. Eigler" <fche@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Subject: Re: [PATCH v3 10/10] perf: perf interface for uprobes.
Date: Fri, 7 May 2010 07:54:03 +0530	[thread overview]
Message-ID: <20100507022403.GH7426@linux.vnet.ibm.com> (raw)
In-Reply-To: <4BE34D1D.2020100@redhat.com>

> 
> Could you also rebase your patch on the latest tip tree? :)
> (and remove die() too)

I was aware that I have to rebase the patch to the latest tip.
However I wanted to get a working set out.
Please expect the rebased version in the next version of the posting.

> 
> > Here is a terminal snapshot of placing, using and removing a probe on a
> > process with pid 3329 (corresponding to zsh)
> > 
> > [ Probing a function in the executable using function name  ]
> > -------------------------------------------------------------
> > [root@ABCD]# perf probe -p 3329 zfree@zsh
> 
> Hmm, I'm not sure why we have to specify both of PID and exec name.
> Is that possible to give a symbol as below? (omit exec name)
> 
> # perf probe -p 3329 zfree

Yes, If the symbol name belongs to th execfile then we can omit the
execfile part. However for symbols outside the execname, the
execfile(library file) is a must(atleast for now).

> 
> > Added new event:
> >   probe:p_3329_zfree                       (on 0x446420)
> 
> Hmm, the event name should be simpler, as like as zfree_3329.
> or, we might better make a new event group for each process, as like as
> 'probe_3329:zfree'
> 

Either zfree_3329 or having a new event group for each process is
possible.

> 
> 
> Hmm, if user gave --list with -p, what happened?
> We need to check a bad combination and warn it.
> 

Currently it would ignore -p option. i.e --list overrides.
We could either warn, or error out. What do you suggest?

> >  
> > +	if (session.pid)
> > +		goto end_dwarf;
> > +
> 
> Again, it must be checked that the combination of -p option and dwarf requirement.
> The latest code has perf_probe_event_need_dwarf(), so you can check it easier.
> 

Okay, 

> [...]
> > +	else
> > +		free(pp->function);
> > +	pp->function = zalloc(sizeof(char *) * 20);
> > +	if (!pp->function)
> > +		die("Failed to allocate memory by zalloc.");
> > +	e_snprintf(pp->function, 20, "0x%llx", vaddr);
> > +}
> 
> Well, after rebasing, you'll need to remove die()s from here and
> make it returns errors. 
> 

Okay. 


> [...]
> > @@ -383,7 +450,11 @@ int synthesize_trace_kprobe_event(struct probe_point *pp)
> >  	pp->probes[0] = buf = zalloc(MAX_CMDLEN);
> >  	if (!buf)
> >  		die("Failed to allocate memory by zalloc.");
> > -	ret = e_snprintf(buf, MAX_CMDLEN, "%s+%d", pp->function, pp->offset);
> > +	if (pp->offset)
> > +		ret = e_snprintf(buf, MAX_CMDLEN, "%s+%d", pp->function,
> > +					pp->offset);
> > +	else
> > +		ret = e_snprintf(buf, MAX_CMDLEN, "%s", pp->function);
> >  	if (ret <= 0)
> >  		goto error;
> >  	len = ret;
> 
> Isn't it a cleanup ?

Can you please elaborate?

> 
> > +void add_trace_uprobe_events(struct probe_point *probes, int nr_probes,
> > +			     bool force_add, pid_t pid)
> > +{
> > +	int fd = open_uprobe_events(O_RDWR, O_APPEND);
> > +	add_trace_probe_events(fd, probes, nr_probes, force_add, pid);
> > +}
> 
> Please close fd in the function which opened it.
> 

Okay.

> 
> >  	memset(&sym, 0, sizeof(sym));
> > -	if (!self->kernel) {
> > +	if (self->kernel || symbol_conf.sort_by_name)
> > +		self->adjust_symbols = 0;
> > +	else {
> >  		self->adjust_symbols = (ehdr.e_type == ET_EXEC ||
> >  				elf_section_by_name(elf, &ehdr, &shdr,
> >  						     ".gnu.prelink_undo",
> >  						     NULL) != NULL);
> > -	} else self->adjust_symbols = 0;
> > +	}
> >  
> >  	elf_symtab__for_each_symbol(syms, nr_syms, idx, sym) {
> >  		struct symbol *f;
> 
> This one changes the symbol.c, so I think you'd better make a
> separate patch for this change.

Okay, I will separate it in the next version.
Thanks Masami for the review.

--
Thanks and Regards
Srikar

  reply	other threads:[~2010-05-07  2:24 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-06 18:01 [PATCH v3 0/10] Uprobes v3 Srikar Dronamraju
2010-05-06 18:01 ` [PATCH v3 1/10] X86 instruction analysis: Move Macro W to insn.h Srikar Dronamraju
2010-05-06 18:02 ` [PATCH v3 2/10] User Space Breakpoint Assistance Layer Srikar Dronamraju
2010-05-06 18:02 ` [PATCH v3 3/10] x86 support for User space breakpoint assistance Srikar Dronamraju
2010-05-06 18:02 ` [PATCH v3 4/10] Slot allocation for execution out of line (XOL) Srikar Dronamraju
2010-05-06 18:02 ` [PATCH v3 5/10] Uprobes Implementation Srikar Dronamraju
2010-05-06 18:02 ` [PATCH v3 6/10] x86 support for Uprobes Srikar Dronamraju
2010-05-06 18:03 ` [PATCH v3 7/10] samples: Uprobes samples Srikar Dronamraju
2010-05-06 18:03 ` [PATCH v3 8/10] Uprobes documentation Srikar Dronamraju
2010-05-06 18:03 ` [PATCH v3 9/10] trace: uprobes trace_event interface Srikar Dronamraju
2010-05-06 18:03 ` [PATCH v3 10/10] perf: perf interface for uprobes Srikar Dronamraju
2010-05-06 23:13   ` Masami Hiramatsu
2010-05-07  2:24     ` Srikar Dronamraju [this message]
2010-05-07 17:53       ` Masami Hiramatsu
2010-05-09 11:18         ` Srikar Dronamraju
2010-05-11 20:59 ` [PATCH v3 0/10] Uprobes v3 Peter Zijlstra
2010-05-12 10:25   ` Srikar Dronamraju
2010-05-12 12:13     ` Peter Zijlstra
2010-05-12 13:27       ` Ananth N Mavinakayanahalli
2010-05-12 13:39         ` Peter Zijlstra
2010-05-12 14:04           ` Ananth N Mavinakayanahalli
2010-05-12 14:46             ` Mathieu Desnoyers
2010-05-12 16:55               ` H. Peter Anvin
2010-05-12 17:59                 ` Mathieu Desnoyers
2010-05-13 12:07       ` Srikar Dronamraju
2010-05-12 10:38 ` Frederic Weisbecker
2010-05-12 13:39   ` Srikar Dronamraju
2010-05-12 14:53     ` Frederic Weisbecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100507022403.GH7426@linux.vnet.ibm.com \
    --to=srikar@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=ananth@in.ibm.com \
    --cc=fche@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jkenisto@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mel@csn.ul.ie \
    --cc=mhiramat@redhat.com \
    --cc=mingo@elte.hu \
    --cc=mjw@redhat.com \
    --cc=oleg@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=rdunlap@xenotime.net \
    --cc=roland@redhat.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.