linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: ufo19890607 <ufo19890607@gmail.com>
To: peterz@infradead.org, mingo@redhat.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	dsahern@gmail.com, namhyung@kernel.org, milian.wolff@kdab.com,
	arnaldo.melo@gmail.com, yuzhoujian@didichuxing.com
Cc: linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v3 0/4] perf script: Add script per-event-dump support
Date: Thu, 12 Oct 2017 02:23:56 +0800	[thread overview]
Message-ID: <1507746240-34638-1-git-send-email-ufo19890607@gmail.com> (raw)

From: yuzhoujian <yuzhoujian@didichuxing.com>

Introduce a new option to print trace output to files named by the 
monitored events and update perf-script documentation accordingly.

Shown below is output of perf script command with the newly introduced
option.

         $perf record -e cycles -e cs -ag -- sleep 1
         $perf script --per-event-dump
	 [ perf script: Wrote 0.051 MB perf.data-script-dump-cycles.txt (76 samples) ]
	 [ perf script: Wrote 0.012 MB perf.data-script-dump-cs.txt (69 samples) ]
         $ls
         perf.data-script-dump-cycles.txt perf.data-script-dump-cs.txt

Without per-event-dump support, drawing flamegraphs for different events
would be a very troublesome thing. You can monitor only one event at a time 
if you want to get flamegraphs for different events. Using this option, you 
can get the trace output files named by the monitored events, and could draw 
flamegraphs according to the event's name.


yuzhoujian (4):
Patch 1: Add two elements for perf_tool struct, and add three elements for
    	perf_evsel struct, and add the per-event-dump option for perf script.
Patch 2: Add fp argument to print functions
Patch 3: Replace printf with fprintf for all print functions
Patch 4: Make all print functions receive the fp argument, open and close the
    	dump_event file for each evsel, and calculate the dump_event file's size.

Changes since v2:
- Patch 1: Add the last_evsel_name for per_tool struct and three elements for perf_evsel struct.
- Patch 2: None
- Patch 3: None
- Patch 4: Remove the file_name and per_event_dump_file variables. 
	   Add the fp_selection_helper function to select the fp and open the dump file 
 for all print functions.
 	   Close the dump file for all the evsels and calculate the dump file's size at 
 the end of the perf script.
	   Solve the segmentation fault generated by perf script --per-event-dump --show-mmap-events

Changes since v1: 
- Patch 1: Remove the set of script.tool.per_event_dump variable.
- Patch 2: Add the __maybe_unused attribute for the fp argument in the second patch.
- Patch 3: remove the fp_selection_helper function for setting the fp argument.
- Patch 2: split the original second patch(Makes all those related functions receive 
 the FILE pointer) to two patches.
- Patch 4: modify the file name of per-event-dump to 
 <ORIGINAL PERF DATA FILE NAME>-script-dump-<EVENT NAME>.txt

 tools/perf/builtin-script.c | 467 +++++++++++++++++++++++++-------------------
 tools/perf/util/evsel.h     |   4 +
 tools/perf/util/session.c   |  16 +-
 tools/perf/util/tool.h      |   3 +
 4 files changed, 286 insertions(+), 204 deletions(-)

-- 
1.8.3.1

             reply	other threads:[~2017-10-11 18:23 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-11 18:23 ufo19890607 [this message]
2017-10-11 18:23 ` [PATCH v3 1/4] Add two elements for perf_tool struct, and add three elements for perf_evsel struct, and add the per-event-dump option for perf script ufo19890607
2017-10-11 18:23 ` [PATCH v3 2/4] Add fp argument to print functions ufo19890607
2017-10-17 14:01   ` Arnaldo Carvalho de Melo
     [not found]     ` <CAHCio2ggZapg7KvWOO3OonFTHq5CZ02c2sghTpP73QBJ0mi9jg@mail.gmail.com>
2017-10-18 12:22       ` Arnaldo Carvalho de Melo
2017-10-11 18:23 ` [PATCH v3 3/4] Replace printf with fprintf for all " ufo19890607
2017-10-11 18:24 ` [PATCH v3 4/4] Make all print functions receive the fp argument, open and close the dump_event file for each evsel, and calculate the dump_event file's size ufo19890607

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=1507746240-34638-1-git-send-email-ufo19890607@gmail.com \
    --to=ufo19890607@gmail.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=arnaldo.melo@gmail.com \
    --cc=dsahern@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=milian.wolff@kdab.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=yuzhoujian@didichuxing.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 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).