diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-04 19:09:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-04 19:09:53 -0400 |
commit | ef35ad26f8ff44d2c93e29952cdb336bda729d9d (patch) | |
tree | e2921072b9f4d820b18d6e5bc489b64ef2068668 /tools/perf/util/trace-event-info.c | |
parent | 8efb90cf1e80129fad197b916714e1d01ee183d2 (diff) | |
parent | f9b9f812235d53f774a083e88a5a23b517a69752 (diff) |
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf changes from Ingo Molnar:
"Kernel side changes:
- Consolidate the PMU interrupt-disabled code amongst architectures
(Vince Weaver)
- misc fixes
Tooling changes (new features, user visible changes):
- Add support for pagefault tracing in 'trace', please see multiple
examples in the changeset messages (Stanislav Fomichev).
- Add pagefault statistics in 'trace' (Stanislav Fomichev)
- Add header for columns in 'top' and 'report' TUI browsers (Jiri
Olsa)
- Add pagefault statistics in 'trace' (Stanislav Fomichev)
- Add IO mode into timechart command (Stanislav Fomichev)
- Fallback to syscalls:* when raw_syscalls:* is not available in the
perl and python perf scripts. (Daniel Bristot de Oliveira)
- Add --repeat global option to 'perf bench' to be used in benchmarks
such as the existing 'futex' one, that was modified to use it
instead of a local option. (Davidlohr Bueso)
- Fix fd -> pathname resolution in 'trace', be it using /proc or a
vfs_getname probe point. (Arnaldo Carvalho de Melo)
- Add suggestion of how to set perf_event_paranoid sysctl, to help
non-root users trying tools like 'trace' to get a working
environment. (Arnaldo Carvalho de Melo)
- Updates from trace-cmd for traceevent plugin_kvm plus args cleanup
(Steven Rostedt, Jan Kiszka)
- Support S/390 in 'perf kvm stat' (Alexander Yarygin)
Tooling infrastructure changes:
- Allow reserving a row for header purposes in the hists browser
(Arnaldo Carvalho de Melo)
- Various fixes and prep work related to supporting Intel PT (Adrian
Hunter)
- Introduce multiple debug variables control (Jiri Olsa)
- Add callchain and additional sample information for python scripts
(Joseph Schuchart)
- More prep work to support Intel PT: (Adrian Hunter)
- Polishing 'script' BTS output
- 'inject' can specify --kallsym
- VDSO is per machine, not a global var
- Expose data addr lookup functions previously private to 'script'
- Large mmap fixes in events processing
- Include standard stringify macros in power pc code (Sukadev
Bhattiprolu)
Tooling cleanups:
- Convert open coded equivalents to asprintf() (Andy Shevchenko)
- Remove needless reassignments in 'trace' (Arnaldo Carvalho de Melo)
- Cache the is_exit syscall test in 'trace) (Arnaldo Carvalho de
Melo)
- No need to reimplement err() in 'perf bench sched-messaging', drop
barf(). (Davidlohr Bueso).
- Remove ev_name argument from perf_evsel__hists_browse, can be
obtained from the other parameters. (Jiri Olsa)
Tooling fixes:
- Fix memory leak in the 'sched-messaging' perf bench test.
(Davidlohr Bueso)
- The -o and -n 'perf bench mem' options are mutually exclusive, emit
error when both are specified. (Davidlohr Bueso)
- Fix scrollbar refresh row index in the ui browser, problem exposed
now that headers will be added and will be allowed to be switched
on/off. (Jiri Olsa)
- Handle the num array type in python properly (Sebastian Andrzej
Siewior)
- Fix wrong condition for allocation failure (Jiri Olsa)
- Adjust callchain based on DWARF debug info on powerpc (Sukadev
Bhattiprolu)
- Fix a risk for doing free on uninitialized pointer in traceevent
lib (Rickard Strandqvist)
- Update attr test with PERF_FLAG_FD_CLOEXEC flag (Jiri Olsa)
- Enable close-on-exec flag on perf file descriptor (Yann Droneaud)
- Fix build on gcc 4.4.7 (Arnaldo Carvalho de Melo)
- Event ordering fixes (Jiri Olsa)"
* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (123 commits)
Revert "perf tools: Fix jump label always changing during tracing"
perf tools: Fix perf usage string leftover
perf: Check permission only for parent tracepoint event
perf record: Store PERF_RECORD_FINISHED_ROUND only for nonempty rounds
perf record: Always force PERF_RECORD_FINISHED_ROUND event
perf inject: Add --kallsyms parameter
perf tools: Expose 'addr' functions so they can be reused
perf session: Fix accounting of ordered samples queue
perf powerpc: Include util/util.h and remove stringify macros
perf tools: Fix build on gcc 4.4.7
perf tools: Add thread parameter to vdso__dso_findnew()
perf tools: Add dso__type()
perf tools: Separate the VDSO map name from the VDSO dso name
perf tools: Add vdso__new()
perf machine: Fix the lifetime of the VDSO temporary file
perf tools: Group VDSO global variables into a structure
perf session: Add ability to skip 4GiB or more
perf session: Add ability to 'skip' a non-piped event stream
perf tools: Pass machine to vdso__dso_findnew()
perf tools: Add dso__data_size()
...
Diffstat (limited to 'tools/perf/util/trace-event-info.c')
-rw-r--r-- | tools/perf/util/trace-event-info.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c index 7e6fcfe8b438..eb72716017ac 100644 --- a/tools/perf/util/trace-event-info.c +++ b/tools/perf/util/trace-event-info.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include "trace-event.h" | 40 | #include "trace-event.h" |
41 | #include <api/fs/debugfs.h> | 41 | #include <api/fs/debugfs.h> |
42 | #include "evsel.h" | 42 | #include "evsel.h" |
43 | #include "debug.h" | ||
43 | 44 | ||
44 | #define VERSION "0.5" | 45 | #define VERSION "0.5" |
45 | 46 | ||
@@ -191,12 +192,10 @@ static int copy_event_system(const char *sys, struct tracepoint_path *tps) | |||
191 | strcmp(dent->d_name, "..") == 0 || | 192 | strcmp(dent->d_name, "..") == 0 || |
192 | !name_in_tp_list(dent->d_name, tps)) | 193 | !name_in_tp_list(dent->d_name, tps)) |
193 | continue; | 194 | continue; |
194 | format = malloc(strlen(sys) + strlen(dent->d_name) + 10); | 195 | if (asprintf(&format, "%s/%s/format", sys, dent->d_name) < 0) { |
195 | if (!format) { | ||
196 | err = -ENOMEM; | 196 | err = -ENOMEM; |
197 | goto out; | 197 | goto out; |
198 | } | 198 | } |
199 | sprintf(format, "%s/%s/format", sys, dent->d_name); | ||
200 | ret = stat(format, &st); | 199 | ret = stat(format, &st); |
201 | free(format); | 200 | free(format); |
202 | if (ret < 0) | 201 | if (ret < 0) |
@@ -217,12 +216,10 @@ static int copy_event_system(const char *sys, struct tracepoint_path *tps) | |||
217 | strcmp(dent->d_name, "..") == 0 || | 216 | strcmp(dent->d_name, "..") == 0 || |
218 | !name_in_tp_list(dent->d_name, tps)) | 217 | !name_in_tp_list(dent->d_name, tps)) |
219 | continue; | 218 | continue; |
220 | format = malloc(strlen(sys) + strlen(dent->d_name) + 10); | 219 | if (asprintf(&format, "%s/%s/format", sys, dent->d_name) < 0) { |
221 | if (!format) { | ||
222 | err = -ENOMEM; | 220 | err = -ENOMEM; |
223 | goto out; | 221 | goto out; |
224 | } | 222 | } |
225 | sprintf(format, "%s/%s/format", sys, dent->d_name); | ||
226 | ret = stat(format, &st); | 223 | ret = stat(format, &st); |
227 | 224 | ||
228 | if (ret >= 0) { | 225 | if (ret >= 0) { |
@@ -317,12 +314,10 @@ static int record_event_files(struct tracepoint_path *tps) | |||
317 | strcmp(dent->d_name, "ftrace") == 0 || | 314 | strcmp(dent->d_name, "ftrace") == 0 || |
318 | !system_in_tp_list(dent->d_name, tps)) | 315 | !system_in_tp_list(dent->d_name, tps)) |
319 | continue; | 316 | continue; |
320 | sys = malloc(strlen(path) + strlen(dent->d_name) + 2); | 317 | if (asprintf(&sys, "%s/%s", path, dent->d_name) < 0) { |
321 | if (!sys) { | ||
322 | err = -ENOMEM; | 318 | err = -ENOMEM; |
323 | goto out; | 319 | goto out; |
324 | } | 320 | } |
325 | sprintf(sys, "%s/%s", path, dent->d_name); | ||
326 | ret = stat(sys, &st); | 321 | ret = stat(sys, &st); |
327 | if (ret >= 0) { | 322 | if (ret >= 0) { |
328 | ssize_t size = strlen(dent->d_name) + 1; | 323 | ssize_t size = strlen(dent->d_name) + 1; |