All of lore.kernel.org
 help / color / mirror / Atom feed
From: Franck Bui-Huu <vagabon.xyz@gmail.com>
To: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: lkml <linux-kernel@vger.kernel.org>, Han Pingtian <phan@redhat.com>
Subject: Re: [PATCH 1/2] perf-tools: Fix tracepoint event type recording
Date: Wed, 26 Jan 2011 22:57:00 +0100	[thread overview]
Message-ID: <4D4098AC.4090102@gmail.com> (raw)
In-Reply-To: <20110117195034.GF2085@ghostprotocols.net>

Hello,

Sorry for my (very) late answer...

On 01/17/2011 08:50 PM, Arnaldo Carvalho de Melo wrote:
> Em Mon, Jan 17, 2011 at 07:13:11PM +0100, Franck Bui-Huu escreveu:
[...]

> 
> Please try not to do multiple, unrelated changes in a single patch, see
> below:

Well, they're not unrelated because of the place I choose to put
perf_header__push_event().

But I agree with you, placing it after parse_events() is much better.

>>
>> diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
>> index 989fa2d..35b707c 100644
>> --- a/tools/perf/util/header.c
>> +++ b/tools/perf/util/header.c
>> @@ -104,10 +104,12 @@ int perf_header__add_attr(struct perf_header *self,
>>  static int event_count;
>>  static struct perf_trace_event_type *events;
>>  
>> -int perf_header__push_event(u64 id, const char *name)
>> +int perf_header__push_event(u64 id, const char *name, size_t len)
>>  {
>> -	if (strlen(name) > MAX_EVENT_NAME)
>> +	if (len > MAX_EVENT_NAME - 1) {
>>  		pr_warning("Event %s will be truncated\n", name);
>> +		len = MAX_EVENT_NAME - 1;
>> +	}
>>  
>>  	if (!events) {
>>  		events = malloc(sizeof(struct perf_trace_event_type));
>> @@ -123,7 +125,8 @@ int perf_header__push_event(u64 id, const char *name)
>>  	}
>>  	memset(&events[event_count], 0, sizeof(struct perf_trace_event_type));
>>  	events[event_count].event_id = id;
>> -	strncpy(events[event_count].name, name, MAX_EVENT_NAME - 1);
>> +	strncpy(events[event_count].name, name, len);
>> +	events[event_count].name[len] = '\0';
> 
> Is this change related to what you describe in the changelog comment? It
> is a cleanup, can be done as a follow up patch, for perf/core.

It's not really unrelated if you place perf_header__push_event() where I
did.

BTW it's not a cleanup too, it's rather a fix since the original code is
broken if the name is truncated since the null byte is missing in this case.
[...]

> Since you're changing the point where perf_header__push_event() is
> called, consider doing it _after_ parse_events() finishes, by traversing
> the evsel_list, that way, as a bonus, later, in perf/core we can kill
> some more global variables:
> 
> static int event_count;
> static struct perf_trace_event_type *events;
> 
> These variables should be in 'struct perf_header', but anyway, this is
> for later, I'm digressing, please just try to do it after
> parse_events(), traversing the evsel_list and getting the tracepoint
> name in string form using event_name(evsel) (that also uses an static
> variagle, argh, another fix to do).
> 
> Doing it that way and excluding the strnlen cleanup, the patch should be
> much smaller.
> 
> We also untie event parsing from header handling, that are only together
> in record, not in, say, top.

Agreed.

		Franck

      parent reply	other threads:[~2011-01-26 21:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-17 18:13 [PATCH 1/2] perf-tools: Fix tracepoint event type recording Franck Bui-Huu
2011-01-17 19:50 ` Arnaldo Carvalho de Melo
2011-01-17 20:28   ` Arnaldo Carvalho de Melo
2011-01-18  8:49     ` [tip:perf/urgent] perf tools: Fix tracepoint id to string perf.data header table tip-bot for Arnaldo Carvalho de Melo
2011-01-26 21:57   ` Franck Bui-Huu [this message]

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=4D4098AC.4090102@gmail.com \
    --to=vagabon.xyz@gmail.com \
    --cc=acme@ghostprotocols.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=phan@redhat.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.