All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Feng Tang <feng.tang@intel.com>
Cc: mingo@elte.hu, a.p.zijlstra@chello.nl, robert.richter@amd.com,
	ak@linux.intel.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] perf script/python: Pass thread/dso name and symbol info to event handler in python
Date: Thu, 17 May 2012 12:47:26 -0300	[thread overview]
Message-ID: <20120517154726.GC2636@infradead.org> (raw)
In-Reply-To: <1337173155-25780-3-git-send-email-feng.tang@intel.com>

Em Wed, May 16, 2012 at 08:59:15PM +0800, Feng Tang escreveu:
> Signed-off-by: Feng Tang <feng.tang@intel.com>
> ---
>  .../util/scripting-engines/trace-event-python.c    |   11 ++++++++++-
>  1 files changed, 10 insertions(+), 1 deletions(-)
> 
> diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c
> index a202881..c96f5e2 100644
> --- a/tools/perf/util/scripting-engines/trace-event-python.c
> +++ b/tools/perf/util/scripting-engines/trace-event-python.c
> @@ -336,6 +336,7 @@ static void python_process_general_event(union perf_event *pevent __unused,
>  	static char handler_name[64];
>  	unsigned n = 0;
>  	void *data = sample->raw_data;
> +	struct thread *thread = al->thread;
>  
>  	t = PyTuple_New(MAX_FIELDS);
>  	if (!t)
> @@ -348,13 +349,21 @@ static void python_process_general_event(union perf_event *pevent __unused,
>  		goto exit;
>  	}
>  
> -	/* Pass 3 parameters: event_attr, perf_sample, raw data, thread name */
> +	/* Pass parameters: attr, perf_sample, raw data, thread and dso name */
>  	PyTuple_SetItem(t, n++, PyString_FromStringAndSize(
>  			(const char *)&evsel->attr, sizeof(evsel->attr)));
>  	PyTuple_SetItem(t, n++, PyString_FromStringAndSize(
>  			(const char *)sample, sizeof(*sample)));
>  	PyTuple_SetItem(t, n++, PyString_FromStringAndSize(
>  			data, sample->raw_size));
> +	PyTuple_SetItem(t, n++, PyString_FromString(thread->comm));
> +	PyTuple_SetItem(t, n++, PyString_FromString(al->map->dso->name));
> +
> +	/* Pass the resolved symbol if there is, othersize pass "Unkown" */
> +	if (al->sym)
> +		PyTuple_SetItem(t, n++, PyString_FromString(al->sym->name));
> +	else
> +		PyTuple_SetItem(t, n++, PyString_FromString("Unknown"));

Isn't this getting a little bit convoluted?

I.e. python has dictionaries, perhaps we could pass a dict instead of a
tuple, in that case we would simply not add the "symbol" key.

>  	if (_PyTuple_Resize(&t, n) == -1)
>  		Py_FatalError("error resizing Python tuple");
> -- 
> 1.7.1

  reply	other threads:[~2012-05-17 15:47 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-16 12:59 [PATCH 1/3] perf script: Add general python handler to process non-tracepoint events Feng Tang
2012-05-16 12:59 ` [PATCH 2/3] perf script: Replace "struct thread" with "struct addr_location" as a parameter for "process_event()" Feng Tang
2012-05-17 15:45   ` Arnaldo Carvalho de Melo
2012-05-17 16:08     ` David Ahern
2012-05-17 16:22       ` Arnaldo Carvalho de Melo
2012-05-30 16:10     ` David Ahern
2012-05-16 12:59 ` [PATCH 3/3] perf script/python: Pass thread/dso name and symbol info to event handler in python Feng Tang
2012-05-17 15:47   ` Arnaldo Carvalho de Melo [this message]
2012-05-18  2:55     ` Feng Tang
2012-05-18 15:38       ` Arnaldo Carvalho de Melo
2012-05-19 14:13         ` Feng Tang
2012-05-17 15:43 ` [PATCH 1/3] perf script: Add general python handler to process non-tracepoint events Arnaldo Carvalho de Melo
2012-05-18  2:48   ` Feng Tang
2012-05-18 15:34     ` Arnaldo Carvalho de Melo

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=20120517154726.GC2636@infradead.org \
    --to=acme@redhat.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=ak@linux.intel.com \
    --cc=feng.tang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=robert.richter@amd.com \
    /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.