linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Jiri Olsa <jolsa@kernel.org>
Cc: lkml <linux-kernel@vger.kernel.org>,
	David Ahern <dsahern@gmail.com>, Ingo Molnar <mingo@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	"Liang, Kan" <kan.liang@intel.com>
Subject: Re: [PATCH 31/52] perf stat record: Synthesize stat record data
Date: Tue, 27 Oct 2015 11:42:44 -0300	[thread overview]
Message-ID: <20151027144244.GE9405@kernel.org> (raw)
In-Reply-To: <1445784728-21732-32-git-send-email-jolsa@kernel.org>

Em Sun, Oct 25, 2015 at 03:51:47PM +0100, Jiri Olsa escreveu:
> Synthesizing needed stat record data for report/script:
>   - cpu/thread maps
>   - stat config

After this it gets a bit better, but then I expected that to specify an
event I would be able to use:

[root@zoo linux]# perf stat record -e cycles usleep 1
  Error: unknown switch `e'

 Usage: perf record [<options>] [<command>]
    or: perf record [<options>] -- <command> [<options>]

    -o, --output <file>   output file name


But I need to do it as:

[root@zoo linux]# perf stat -e cycles record usleep 1

 Performance counter stats for 'usleep 1':

            948417      cycles                                                      

       0.000749965 seconds time elapsed

[root@zoo linux]# 

--------------------------------------------------

This is confusing...

Anyway, now the perf.data file doesn't produce that many confusing
messages, just one, and the error reporting continues needing a
newline, oops just noticed another problem:

[root@zoo linux]# perf stat record usleep 1

 Performance counter stats for 'usleep 1':

          0.520959      task-clock (msec)         #    0.504 CPUs utilized          
                 1      context-switches          #    0.002 M/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
                51      page-faults               #    0.098 M/sec                  
            929738      cycles                    #    1.785 GHz                    
            625885      stalled-cycles-frontend   #   67.32% frontend cycles idle   
   <not supported>      stalled-cycles-backend   
            634514      instructions              #    0.68  insns per cycle        
                                                  #    0.99  stalled cycles per insn
            128859      branches                  #  247.350 M/sec                  
              7602      branch-misses             #    5.90% of all branches        

       0.001034675 seconds time elapsed

[root@zoo linux]# perf evlist
non matching sample_type[root@zoo linux]#

But, if I specify an event:

[root@zoo linux]# perf stat -e cycles record usleep 1

 Performance counter stats for 'usleep 1':

            876987      cycles                                                      

       0.001285050 seconds time elapsed

[root@zoo linux]# perf evlist
cycles
[root@zoo linux]# perf evlist -v
cycles: size: 112, read_format: TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING, disabled: 1, inherit: 1, enable_on_exec: 1, exclude_guest: 1
[root@zoo linux]#

-------------------------

It then works as expected, lists the event collected, no confusing message
about 'sample_type' stuff is emitted.

Ditto for 'perf report'

[root@zoo linux]# perf report --stdio
Warning:
Kernel address maps (/proc/{kallsyms,modules}) were restricted.

Check /proc/sys/kernel/kptr_restrict before running 'perf record'.

As no suitable kallsyms nor vmlinux was found, kernel samples
can't be resolved.

Samples in kernel modules can't be resolved as well.

Error:
The perf.data file has no samples!
# To display the perf.data header info, please use --header/--header-only options.
#
[root@zoo linux]# 

------------------------------------------------

I.e. when I explicitely state what events should be collected, it behaves
nicely, modulo this message about kernel address maps being restricted in
'report', so it looks like just some fix is needed to make it work like that
when no events are specified.

So, I'm creating a perf/stat branch and putting what I processed so far, with
the changelog edits and changes in some function/struct names I
partially mentioned, please try to continue from there, ok?

- Arnaldo

  reply	other threads:[~2015-10-27 14:42 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-25 14:51 [PATCHv5 00/52] perf stat: Add scripting support Jiri Olsa
2015-10-25 14:51 ` [PATCH 01/52] perf cpu_map: Add cpu_map__empty_new function Jiri Olsa
2015-10-29  9:41   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 02/52] perf stat: Cache aggregated map entries in extra cpumap Jiri Olsa
2015-10-29  9:41   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 03/52] perf tools: Add thread_map event Jiri Olsa
2015-10-26 17:42   ` Arnaldo Carvalho de Melo
2015-10-26 17:45     ` Jiri Olsa
2015-10-26 17:48     ` Arnaldo Carvalho de Melo
2015-10-26 17:55       ` Jiri Olsa
2015-10-26 17:57         ` Arnaldo Carvalho de Melo
2015-12-18  9:00   ` [tip:perf/core] perf thread_map: Add thread_map user level event tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 04/52] perf tools: Add thread_map event sythesize function Jiri Olsa
2015-12-18  9:00   ` [tip:perf/core] perf thread_map: " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 05/52] perf tools: Add thread_map__new_event function Jiri Olsa
2015-12-18  9:01   ` [tip:perf/core] perf thread_map: " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 06/52] perf tools: Add perf_event__fprintf_thread_map function Jiri Olsa
2015-12-18  9:01   ` [tip:perf/core] perf thread_map: " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 07/52] perf tools: Add cpu_map event Jiri Olsa
2015-12-18  9:01   ` [tip:perf/core] perf cpu_map: Add cpu_map user level event tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 08/52] perf tools: Add cpu_map event synthesize function Jiri Olsa
2015-12-18  9:02   ` [tip:perf/core] perf cpu_map: " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 09/52] perf tools: Add cpu_map__new_event function Jiri Olsa
2015-12-18  9:02   ` [tip:perf/core] perf cpu_map: " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 10/52] perf tools: Add perf_event__fprintf_cpu_map function Jiri Olsa
2015-12-18  9:02   ` [tip:perf/core] perf cpu_map: " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 11/52] perf tools: Add stat config event Jiri Olsa
2015-10-27 13:16   ` Arnaldo Carvalho de Melo
2015-10-27 13:30     ` Jiri Olsa
2015-10-27 13:44       ` Arnaldo Carvalho de Melo
2015-10-27 13:51         ` Jiri Olsa
2015-10-27 14:13           ` Arnaldo Carvalho de Melo
2015-12-18  9:03   ` [tip:perf/core] perf tools: Add stat config user level event tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 12/52] perf tools: Add stat config event synthesize function Jiri Olsa
2015-12-18  9:03   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 13/52] perf tools: Add stat config event read function Jiri Olsa
2015-12-18  9:03   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 14/52] perf tools: Add stat event Jiri Olsa
2015-12-18  9:04   ` [tip:perf/core] perf tools: Add stat user level event tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 15/52] perf tools: Add stat event synthesize function Jiri Olsa
2015-12-18  9:04   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 16/52] perf tools: Add stat event read function Jiri Olsa
2015-12-18  9:04   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 17/52] perf tools: Add stat round event Jiri Olsa
2015-12-18  9:05   ` [tip:perf/core] perf tools: Add stat round user level event tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 18/52] perf tools: Add stat round event synthesize function Jiri Olsa
2015-12-18  9:05   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 19/52] perf tools: Add stat events fprintf functions Jiri Olsa
2015-12-18  9:05   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 20/52] perf tools: Add event_update event Jiri Olsa
2015-12-18  9:06   ` [tip:perf/core] perf tools: Add event_update user level event tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 21/52] perf tools: Add event_update event unit type Jiri Olsa
2015-12-18  9:06   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 22/52] perf tools: Add event_update event scale type Jiri Olsa
2015-12-18  9:06   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 23/52] perf tools: Add event_update event name type Jiri Olsa
2015-12-18  9:07   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 24/52] perf tools: Add event_update event cpus type Jiri Olsa
2015-12-18  9:07   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 25/52] perf tools: Add perf_event__fprintf_event_update function Jiri Olsa
2015-12-18  9:07   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 26/52] perf report: Display newly added events in raw dump Jiri Olsa
2015-12-18  9:07   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 27/52] perf tools: Introduce stat feature Jiri Olsa
2015-12-18  9:08   ` [tip:perf/core] perf tools: Introduce stat perf.data header feature tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 28/52] perf tools: Move id_offset out of struct perf_evsel union Jiri Olsa
2015-10-29  9:40   ` [tip:perf/core] perf evsel: Move id_offset out of struct perf_evsel union member tip-bot for Jiri Olsa
2015-10-25 14:51 ` [PATCH 29/52] perf stat record: Add record command Jiri Olsa
2015-10-27 14:26   ` Arnaldo Carvalho de Melo
2015-10-25 14:51 ` [PATCH 30/52] perf stat record: Initialize record features Jiri Olsa
2015-10-25 14:51 ` [PATCH 31/52] perf stat record: Synthesize stat record data Jiri Olsa
2015-10-27 14:42   ` Arnaldo Carvalho de Melo [this message]
2015-10-28 12:15     ` Jiri Olsa
2015-10-28 13:03     ` Jiri Olsa
2015-10-28 13:04     ` Jiri Olsa
2015-10-25 14:51 ` [PATCH 32/52] perf stat record: Store events IDs in perf data file Jiri Olsa
2015-10-25 14:51 ` [PATCH 33/52] perf stat record: Add pipe support for record command Jiri Olsa
2015-10-25 14:51 ` [PATCH 34/52] perf stat record: Write stat events on record Jiri Olsa
2015-10-25 14:51 ` [PATCH 35/52] perf stat record: Write stat round " Jiri Olsa
2015-10-25 14:51 ` [PATCH 36/52] perf stat record: Do not allow record with multiple runs mode Jiri Olsa
2015-10-25 14:51 ` [PATCH 37/52] perf stat record: Synthesize event update events Jiri Olsa
2015-10-25 14:51 ` [PATCH 38/52] perf stat report: Add report command Jiri Olsa
2015-10-25 14:51 ` [PATCH 39/52] perf stat report: Process cpu/threads maps Jiri Olsa
2015-10-25 14:51 ` [PATCH 40/52] perf stat report: Process stat config event Jiri Olsa
2015-10-25 14:51 ` [PATCH 41/52] perf stat report: Add support to initialize aggr_map from file Jiri Olsa
2015-10-25 14:51 ` [PATCH 42/52] perf stat report: Process stat and stat round events Jiri Olsa
2015-10-25 14:51 ` [PATCH 43/52] perf stat report: Process event update events Jiri Olsa
2015-10-25 14:52 ` [PATCH 44/52] perf stat report: Move csv_sep initialization before report command Jiri Olsa
2015-10-25 14:52 ` [PATCH 45/52] perf stat report: Allow to override aggr_mode Jiri Olsa
2015-10-25 14:52 ` [PATCH 46/52] perf script: Process cpu/threads maps Jiri Olsa
2015-10-25 14:52 ` [PATCH 47/52] perf script: Process stat config event Jiri Olsa
2015-10-25 14:52 ` [PATCH 48/52] perf script: Add process_stat/process_stat_interval scripting interface Jiri Olsa
2015-10-25 14:52 ` [PATCH 49/52] perf script: Add stat default handlers Jiri Olsa
2015-10-25 14:52 ` [PATCH 50/52] perf script: Display stat events by default Jiri Olsa
2015-10-25 14:52 ` [PATCH 51/52] perf script: Add python support for stat events Jiri Olsa
2015-10-25 14:52 ` [PATCH 52/52] perf script: Add stat-cpi.py script Jiri Olsa
2015-10-26 17:34 ` [PATCHv5 00/52] perf stat: Add scripting support Arnaldo Carvalho de Melo
2015-10-27 14:24   ` Liang, Kan
2015-10-27 14:48     ` 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=20151027144244.GE9405@kernel.org \
    --to=acme@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=dsahern@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --subject='Re: [PATCH 31/52] perf stat record: Synthesize stat record data' \
    /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

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).