linux/tools/perf/util
David Ahern 56e6f602aa perf tool: Save cmdline from user in file header vs what is passed to record
A number of builtin commands process some user args and then pass the rest to
cmd_record. cmd_record then saves argc/argv that it receives into the header of
the perf data file. But this loses the arguments handled by the first command
-- ie., the real command line from the user. This patch saves the command line
as typed by the user rather than what was passed to cmd_record.

As an example consider the command:
$ perf kvm --guest --host --guestmount=/tmp/guest-mount record
    -fo /tmp/perf.data -ag -- sleep 10

Currently the command saved to the header is:
    cmdline : /tmp/p3.5/perf record -o perf.data.kvm -fo /tmp/perf.data -ag -- sleep 1

(ignore the duplicated -o -- the first would be yet another bug with perf-kvm).

With this patch the command line saved to the header is:
cmdline : /tmp/p3.5/perf kvm --guest --host --guestmount=/tmp/guest-mount
    record -fo /tmp/perf.data -ag -- sleep 1

v2: simplified to saving the command in parse_options per Stephane's suggestion

Signed-off-by: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1343616831-6408-1-git-send-email-dsahern@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-08-03 10:33:50 -03:00
..
include perf tools: Adding round_up/round_down macros 2012-06-29 15:25:28 -03:00
scripting-engines tools lib traceevent: Add support for __print_hex() 2012-06-29 13:28:12 -03:00
abspath.c
alias.c
annotate.c perf annotate: Prevent overflow in size calculation 2012-07-25 13:06:42 -03:00
annotate.h perf annotate: Introduce ->free() method in ins_ops 2012-05-12 13:26:20 -03:00
bitmap.c
build-id.c perf buildid-list: Work better with pipe mode 2012-05-22 13:03:54 -03:00
build-id.h
cache.h
callchain.c perf callchain: Make callchain cursors TLS 2012-05-31 10:47:12 -03:00
callchain.h perf callchain: Make callchain cursors TLS 2012-05-31 10:47:12 -03:00
cgroup.c
cgroup.h
color.c
color.h
config.c perf config: Allow '_' in config file variable names 2012-05-29 21:59:02 -03:00
cpumap.c
cpumap.h
ctype.c
debug.c perf ui: Introduce struct perf_error_ops 2012-06-19 13:06:18 -03:00
debug.h perf ui: Introduce struct perf_error_ops 2012-06-19 13:06:18 -03:00
debugfs.c
debugfs.h
dso-test-data.c perf test: Add dso data caching tests 2012-07-25 11:33:17 -03:00
dwarf-aux.c
dwarf-aux.h
environment.c
event.c
event.h perf evsel: Adopt parse_sample method from perf_event 2012-08-02 12:23:46 -03:00
evlist.c perf evsel: Adopt parse_sample method from perf_event 2012-08-02 12:23:46 -03:00
evlist.h perf evsel: Adopt parse_sample method from perf_event 2012-08-02 12:23:46 -03:00
evsel.c perf evsel: Adopt parse_sample method from perf_event 2012-08-02 12:23:46 -03:00
evsel.h perf evsel: Adopt parse_sample method from perf_event 2012-08-02 12:23:46 -03:00
exec_cmd.c
exec_cmd.h
generate-cmdlist.sh
header.c perf tool: Save cmdline from user in file header vs what is passed to record 2012-08-03 10:33:50 -03:00
header.h perf tools: rename HEADER_TRACE_INFO to HEADER_TRACING_DATA 2012-05-22 12:57:46 -03:00
help.c
help.h
hist.c perf hists: Print newline between hists callchains 2012-07-25 11:32:26 -03:00
hist.h perf tools: Add sort by src line/number 2012-06-19 13:06:18 -03:00
hweight.c
levenshtein.c
levenshtein.h
map.c perf kvm: Limit repetitive guestmount message to once per directory 2012-07-25 11:31:03 -03:00
map.h perf kvm: Fix bug resolving guest kernel syms 2012-07-25 11:30:13 -03:00
pager.c perf tools: Fix pager on minimal-install embedded systems 2012-05-30 15:10:39 -03:00
parse-events-test.c perf test: Fix parse events automated tests 2012-08-01 18:42:10 -03:00
parse-events.c perf tools: Make the breakpoint events sample period default to 1 2012-07-25 11:37:46 -03:00
parse-events.h Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core 2012-06-20 13:41:53 +02:00
parse-events.l perf tools: Split out PE_VALUE_SYM parsing token to SW and HW tokens 2012-07-05 11:29:56 -03:00
parse-events.y perf tools: Split out PE_VALUE_SYM parsing token to SW and HW tokens 2012-07-05 11:29:56 -03:00
parse-options.c perf tool: Save cmdline from user in file header vs what is passed to record 2012-08-03 10:33:50 -03:00
parse-options.h
path.c
PERF-VERSION-GEN perf tools: Make --version show kernel version instead of pull req tag 2012-05-31 11:20:59 -03:00
pmu.c perf tools: Fix generation of pmu list 2012-06-29 13:31:27 -03:00
pmu.h perf/tool: Add PMU event alias support 2012-06-18 12:13:26 +02:00
pmu.l
pmu.y
probe-event.c perf uprobes: Remove unnecessary check before strlist__delete 2012-05-31 12:08:49 -03:00
probe-event.h perf probe: Provide perf interface for uprobes 2012-05-11 13:58:17 -03:00
probe-finder.c
probe-finder.h
pstack.c
pstack.h
python-ext-sources
python.c perf evlist: Introduce perf_evlist__parse_sample 2012-08-02 11:42:57 -03:00
quote.c
quote.h
run-command.c
run-command.h
session.c perf session: Remove no longer used synthesize_sample method 2012-08-02 21:02:02 -03:00
session.h perf session: Remove no longer used synthesize_sample method 2012-08-02 21:02:02 -03:00
setup.py
sigchain.c
sigchain.h
sort.c perf tools: Add sort by src line/number 2012-06-19 13:06:18 -03:00
sort.h perf tools: Add sort by src line/number 2012-06-19 13:06:18 -03:00
strbuf.c
strbuf.h
strfilter.c
strfilter.h
string.c perf lib: Introduce rtrim 2012-06-19 13:06:19 -03:00
strlist.c
strlist.h
svghelper.c
svghelper.h
symbol.c perf symbols: Fix array sizes for binary types arrays 2012-08-01 18:42:22 -03:00
symbol.h perf test: Add dso data caching tests 2012-07-25 11:33:17 -03:00
sysfs.c
sysfs.h
target.c perf target: Fix check on buffer size 2012-08-01 18:42:54 -03:00
target.h perf target: Add uses_mmap field 2012-05-17 12:32:54 -03:00
thread_map.c perf tools: fix thread_map__new_by_pid_str() memory leak in error path 2012-05-25 11:40:59 -03:00
thread_map.h
thread.c
thread.h
tool.h
top.c perf tools: Move all users of event_name to perf_evsel__name 2012-06-19 13:06:20 -03:00
top.h
trace-event-info.c
trace-event-parse.c Merge branch 'linus' into perf/core 2012-07-18 11:17:17 +02:00
trace-event-read.c perf tools: Stop using a global trace events description list 2012-06-27 13:08:42 -03:00
trace-event-scripting.c perf tools: Stop using a global trace events description list 2012-06-27 13:08:42 -03:00
trace-event.h perf tools: Stop using a global trace events description list 2012-06-27 13:08:42 -03:00
types.h perf tools: Add union u64_swap type for swapping u64 data 2012-05-22 12:50:25 -03:00
usage.c
util.c
util.h perf lib: Introduce rtrim 2012-06-19 13:06:19 -03:00
values.c
values.h
wrapper.c
xyarray.c
xyarray.h