diff options
| author | Ingo Molnar <[email protected]> | 2018-11-22 06:52:50 +0000 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2018-11-22 06:52:50 +0000 |
| commit | e8e94fce14658defc659021a50d4253a681d02e7 (patch) | |
| tree | 3bcf4cb6a63adcce82a56931f05e001726d886b5 /tools/perf/builtin-script.c | |
| parent | Merge tag 'perf-urgent-for-mingo-4.20-20181121' of git://git.kernel.org/pub/s... (diff) | |
| parent | perf pmu: Move *_cpuid_str() weak functions to header.c (diff) | |
| download | kernel-e8e94fce14658defc659021a50d4253a681d02e7.tar.gz kernel-e8e94fce14658defc659021a50d4253a681d02e7.zip | |
Merge tag 'perf-core-for-mingo-4.21-20181122' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
- Start using BPF maps in 'perf trace' for filters in the augmented syscalls
code, keeping the existing code for tracepoint filters so that we can switch
back and forth while getting everything BPFied (Arnaldo Carvalho de Melo)
- Suppress potential format-truncation warning in the PMU code (Ben Hutchings)
- Introduce 'perf bench epoll', with "wait" and "ctl" benchmarks (Davidlohr Bueso)
- Fix slowness due to -ffunction-section, do it by sorting the maps by name, so
avoiding the using rb_first/next to traverse all entries looking for a map name,
that with --ffunction-section gets to thousands of maps (Eric Saint-Etienne)
- Separate jvmti cmlr check (Jiri Olsa)
- Allow using the stepping when figuring out which JSON files to use for a x86
processor, so that Cascadelake server can be support, which has the same
cpuid as some other processor, being different only in the stepping (Kan Liang)
- Share code and output format for uregs and iregs 'perf script' output (Milian Wolff)
- Use perf_evsel__is_clocki() for clock events in 'perf stat' (Ravi Bangoria)
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'tools/perf/builtin-script.c')
| -rw-r--r-- | tools/perf/builtin-script.c | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index b5bc85bd0bbe..04913136bac9 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -566,44 +566,40 @@ out: return 0; } -static int perf_sample__fprintf_iregs(struct perf_sample *sample, - struct perf_event_attr *attr, FILE *fp) +static int perf_sample__fprintf_regs(struct regs_dump *regs, uint64_t mask, + FILE *fp +) { - struct regs_dump *regs = &sample->intr_regs; - uint64_t mask = attr->sample_regs_intr; unsigned i = 0, r; int printed = 0; - if (!regs) + if (!regs || !regs->regs) return 0; + printed += fprintf(fp, " ABI:%" PRIu64 " ", regs->abi); + for_each_set_bit(r, (unsigned long *) &mask, sizeof(mask) * 8) { u64 val = regs->regs[i++]; printed += fprintf(fp, "%5s:0x%"PRIx64" ", perf_reg_name(r), val); } + fprintf(fp, "\n"); + return printed; } -static int perf_sample__fprintf_uregs(struct perf_sample *sample, +static int perf_sample__fprintf_iregs(struct perf_sample *sample, struct perf_event_attr *attr, FILE *fp) { - struct regs_dump *regs = &sample->user_regs; - uint64_t mask = attr->sample_regs_user; - unsigned i = 0, r; - int printed = 0; - - if (!regs || !regs->regs) - return 0; - - printed += fprintf(fp, " ABI:%" PRIu64 " ", regs->abi); - - for_each_set_bit(r, (unsigned long *) &mask, sizeof(mask) * 8) { - u64 val = regs->regs[i++]; - printed += fprintf(fp, "%5s:0x%"PRIx64" ", perf_reg_name(r), val); - } + return perf_sample__fprintf_regs(&sample->intr_regs, + attr->sample_regs_intr, fp); +} - return printed; +static int perf_sample__fprintf_uregs(struct perf_sample *sample, + struct perf_event_attr *attr, FILE *fp) +{ + return perf_sample__fprintf_regs(&sample->user_regs, + attr->sample_regs_user, fp); } static int perf_sample__fprintf_start(struct perf_sample *sample, |
