linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] perf-tools: Don't assume there's no attr info if no sample ids is provided
@ 2010-11-30 11:50 Franck Bui-Huu
  2010-11-30 13:53 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 2+ messages in thread
From: Franck Bui-Huu @ 2010-11-30 11:50 UTC (permalink / raw)
  To: linux-perf-users

From: Franck Bui-Huu <fbuihuu@gmail.com>

This primarily fixes perf-report, which didn't report the correct type
of event if perf-record was called to record one event different from
'cycles':

  $ perf record -e instructions true
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.007 MB perf.data (~295 samples) ]

  $ perf report | head -n1
    # Events: 7  cycles

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
 tools/perf/util/header.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index d7e67b1..64a85ba 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -946,11 +946,16 @@ perf_header__find_attr(u64 id, struct perf_header *header)
 
 	/*
 	 * We set id to -1 if the data file doesn't contain sample
-	 * ids. Check for this and avoid walking through the entire
-	 * list of ids which may be large.
+	 * ids. This can happen when the data file contains one type
+	 * of event and in that case, the header can still store the
+	 * event attribute information. Check for this and avoid
+	 * walking through the entire list of ids which may be large.
 	 */
-	if (id == -1ULL)
+	if (id == -1ULL) {
+		if (header->attrs > 0)
+			return &header->attr[0]->attr;
 		return NULL;
+	}
 
 	for (i = 0; i < header->attrs; i++) {
 		struct perf_header_attr *attr = header->attr[i];
-- 
1.7.3.2

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] perf-tools: Don't assume there's no attr info if no sample ids is provided
  2010-11-30 11:50 [PATCH] perf-tools: Don't assume there's no attr info if no sample ids is provided Franck Bui-Huu
@ 2010-11-30 13:53 ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 2+ messages in thread
From: Arnaldo Carvalho de Melo @ 2010-11-30 13:53 UTC (permalink / raw)
  To: Franck Bui-Huu; +Cc: linux-perf-users

Em Tue, Nov 30, 2010 at 12:50:14PM +0100, Franck Bui-Huu escreveu:
> From: Franck Bui-Huu <fbuihuu@gmail.com>
> 
> This primarily fixes perf-report, which didn't report the correct type
> of event if perf-record was called to record one event different from
> 'cycles':
> 
>   $ perf record -e instructions true
>     [ perf record: Woken up 1 times to write data ]
>     [ perf record: Captured and wrote 0.007 MB perf.data (~295 samples) ]
> 
>   $ perf report | head -n1
>     # Events: 7  cycles
> 
> Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
> ---
>  tools/perf/util/header.c |   11 ++++++++---
>  1 files changed, 8 insertions(+), 3 deletions(-)


Please CC lkml when submitting patches.

Thanks a lot, applied to my perf/urgent branch.

- Arnaldo
 
> diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> index d7e67b1..64a85ba 100644
> --- a/tools/perf/util/header.c
> +++ b/tools/perf/util/header.c
> @@ -946,11 +946,16 @@ perf_header__find_attr(u64 id, struct perf_header *header)
>  
>  	/*
>  	 * We set id to -1 if the data file doesn't contain sample
> -	 * ids. Check for this and avoid walking through the entire
> -	 * list of ids which may be large.
> +	 * ids. This can happen when the data file contains one type
> +	 * of event and in that case, the header can still store the
> +	 * event attribute information. Check for this and avoid
> +	 * walking through the entire list of ids which may be large.
>  	 */
> -	if (id == -1ULL)
> +	if (id == -1ULL) {
> +		if (header->attrs > 0)
> +			return &header->attr[0]->attr;
>  		return NULL;
> +	}
>  
>  	for (i = 0; i < header->attrs; i++) {
>  		struct perf_header_attr *attr = header->attr[i];
> -- 
> 1.7.3.2
> --
> To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-11-30 13:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-30 11:50 [PATCH] perf-tools: Don't assume there's no attr info if no sample ids is provided Franck Bui-Huu
2010-11-30 13:53 ` Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).