linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/2] perf script: Add script per-event-dump support
@ 2017-10-25  8:53 yuzhoujian
  2017-10-25  8:53 ` [PATCH v5 1/2] Add new elements for per-event-dump option yuzhoujian
  2017-10-25  8:53 ` [PATCH v5 2/2] Add the fp_selection_helper to set the fp for print functions yuzhoujian
  0 siblings, 2 replies; 5+ messages in thread
From: yuzhoujian @ 2017-10-25  8:53 UTC (permalink / raw)
  To: peterz, mingo, alexander.shishkin, jolsa, dsahern, namhyung,
	milian.wolff, arnaldo.melo, yuzhoujian, adrian.hunter, wangnan0
  Cc: linux-perf-users, linux-kernel, acme

Introduce a new option to dump 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 new elements for per-event-dump option
Patch 2: Add the fp_selection_helper to set the fp for print functions

Changes since v4:
- Patch 1: None
- Patch 2: The fp_selection_helper will be invoked by process_event not process_sample_event 
	   Replace some printf with fprintf in process_event

Changes since v3:
- Patch 1: Remove three elements for perf_evsel struct and create the perf_script_evsel
 struct to save them.
- Patch 2: None
- Patch 3: None
- Patch 4: Free the evsel->priv by zfree().

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 | 110 ++++++++++++++++++++++++++++++++++++--------
 tools/perf/util/evsel.h     |  11 +++++
 tools/perf/util/session.c   |  19 ++++++++
 tools/perf/util/tool.h      |   2 +
 4 files changed, 122 insertions(+), 20 deletions(-)

-- 
1.8.3.1

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

end of thread, other threads:[~2017-10-26 13:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-25  8:53 [PATCH v5 0/2] perf script: Add script per-event-dump support yuzhoujian
2017-10-25  8:53 ` [PATCH v5 1/2] Add new elements for per-event-dump option yuzhoujian
2017-10-26 13:01   ` Arnaldo Carvalho de Melo
2017-10-26 13:46     ` Arnaldo Carvalho de Melo
2017-10-25  8:53 ` [PATCH v5 2/2] Add the fp_selection_helper to set the fp for print functions yuzhoujian

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