linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
To: David Ahern <dsahern@gmail.com>
Cc: linux-kernel@vger.kernel.org, peterz@infradead.org
Subject: Re: [PATCH] perf record: fix fallback to cpu-clock on ppc
Date: Tue, 8 May 2012 10:12:07 -0300	[thread overview]
Message-ID: <20120508131207.GG2485@infradead.org> (raw)
In-Reply-To: <1336452004-55724-1-git-send-email-dsahern@gmail.com>

Em Mon, May 07, 2012 at 10:40:04PM -0600, David Ahern escreveu:
> perf-record on PPC is not falling back to cpu-clock:
> 
> Old kernel, cannot exclude guest or host samples.
> 
>   Error: sys_perf_event_open() syscall returned with 6 (No such device or address).  /bin/dmesg may provide additional information.
> 
>   Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?
> 
> The problem is that until 2.6.37 (behavior changed with commit b0a873e)
> perf on PPC returns ENXIO when hw_perf_event_init() fails. With this
> patch we get the expected behavior:
> 
> Old kernel, cannot exclude guest or host samples.
> The cycles event is not supported, trying to fall back to cpu-clock-ticks
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.150 MB /tmp/perf.data (~6569 samples) ]

Would be good to have this documented on the spot, i.e. just before that
if.

Also, have you checked that 'perf stat' and 'perf top' works as well? We
really need to move all this logic to a central place, namely
perf_evlist__open().

For now checking if stat and top ara ok should be enough.

- Arnaldo
 
> Signed-off-by: David Ahern <dsahern@gmail.com>
> ---
>  tools/perf/builtin-record.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 42e2414..080c708 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -244,7 +244,8 @@ try_again:
>  			 * based cpu-clock-tick sw counter, which
>  			 * is always available even if no PMU support:
>  			 */
> -			if (err == ENOENT && attr->type == PERF_TYPE_HARDWARE
> +			if ((err == ENOENT || err == ENXIO)
> +					&& attr->type == PERF_TYPE_HARDWARE
>  					&& attr->config == PERF_COUNT_HW_CPU_CYCLES) {
>  
>  				if (verbose)
> -- 
> 1.7.5.4

  reply	other threads:[~2012-05-08 13:12 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-08  4:40 [PATCH] perf record: fix fallback to cpu-clock on ppc David Ahern
2012-05-08 13:12 ` Arnaldo Carvalho de Melo [this message]
2012-05-08 14:10   ` David Ahern
2012-05-09 14:56 ` Arnaldo Carvalho de Melo
2012-05-09 16:22   ` David Ahern
2012-05-09 17:16     ` 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=20120508131207.GG2485@infradead.org \
    --to=acme@ghostprotocols.net \
    --cc=dsahern@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.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 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).