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 /arch/s390 | |
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 'arch/s390')
-rw-r--r-- | arch/s390/include/uapi/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/s390/include/uapi/asm/kvm_perf.h | 25 | ||||
-rw-r--r-- | arch/s390/kernel/perf_cpum_cf.c | 12 |
3 files changed, 32 insertions, 6 deletions
diff --git a/arch/s390/include/uapi/asm/Kbuild b/arch/s390/include/uapi/asm/Kbuild index 736637363d31..08fe6dad9026 100644 --- a/arch/s390/include/uapi/asm/Kbuild +++ b/arch/s390/include/uapi/asm/Kbuild | |||
@@ -16,6 +16,7 @@ header-y += ioctls.h | |||
16 | header-y += ipcbuf.h | 16 | header-y += ipcbuf.h |
17 | header-y += kvm.h | 17 | header-y += kvm.h |
18 | header-y += kvm_para.h | 18 | header-y += kvm_para.h |
19 | header-y += kvm_perf.h | ||
19 | header-y += kvm_virtio.h | 20 | header-y += kvm_virtio.h |
20 | header-y += mman.h | 21 | header-y += mman.h |
21 | header-y += monwriter.h | 22 | header-y += monwriter.h |
diff --git a/arch/s390/include/uapi/asm/kvm_perf.h b/arch/s390/include/uapi/asm/kvm_perf.h new file mode 100644 index 000000000000..397282727e21 --- /dev/null +++ b/arch/s390/include/uapi/asm/kvm_perf.h | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | * Definitions for perf-kvm on s390 | ||
3 | * | ||
4 | * Copyright 2014 IBM Corp. | ||
5 | * Author(s): Alexander Yarygin <yarygin@linux.vnet.ibm.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License (version 2 only) | ||
9 | * as published by the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | #ifndef __LINUX_KVM_PERF_S390_H | ||
13 | #define __LINUX_KVM_PERF_S390_H | ||
14 | |||
15 | #include <asm/sie.h> | ||
16 | |||
17 | #define DECODE_STR_LEN 40 | ||
18 | |||
19 | #define VCPU_ID "id" | ||
20 | |||
21 | #define KVM_ENTRY_TRACE "kvm:kvm_s390_sie_enter" | ||
22 | #define KVM_EXIT_TRACE "kvm:kvm_s390_sie_exit" | ||
23 | #define KVM_EXIT_REASON "icptcode" | ||
24 | |||
25 | #endif | ||
diff --git a/arch/s390/kernel/perf_cpum_cf.c b/arch/s390/kernel/perf_cpum_cf.c index ea75d011a6fc..d3194de7ae1e 100644 --- a/arch/s390/kernel/perf_cpum_cf.c +++ b/arch/s390/kernel/perf_cpum_cf.c | |||
@@ -411,12 +411,6 @@ static int cpumf_pmu_event_init(struct perf_event *event) | |||
411 | case PERF_TYPE_HARDWARE: | 411 | case PERF_TYPE_HARDWARE: |
412 | case PERF_TYPE_HW_CACHE: | 412 | case PERF_TYPE_HW_CACHE: |
413 | case PERF_TYPE_RAW: | 413 | case PERF_TYPE_RAW: |
414 | /* The CPU measurement counter facility does not have overflow | ||
415 | * interrupts to do sampling. Sampling must be provided by | ||
416 | * external means, for example, by timers. | ||
417 | */ | ||
418 | if (is_sampling_event(event)) | ||
419 | return -ENOENT; | ||
420 | err = __hw_perf_event_init(event); | 414 | err = __hw_perf_event_init(event); |
421 | break; | 415 | break; |
422 | default: | 416 | default: |
@@ -681,6 +675,12 @@ static int __init cpumf_pmu_init(void) | |||
681 | goto out; | 675 | goto out; |
682 | } | 676 | } |
683 | 677 | ||
678 | /* The CPU measurement counter facility does not have overflow | ||
679 | * interrupts to do sampling. Sampling must be provided by | ||
680 | * external means, for example, by timers. | ||
681 | */ | ||
682 | cpumf_pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT; | ||
683 | |||
684 | cpumf_pmu.attr_groups = cpumf_cf_event_group(); | 684 | cpumf_pmu.attr_groups = cpumf_cf_event_group(); |
685 | rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", PERF_TYPE_RAW); | 685 | rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", PERF_TYPE_RAW); |
686 | if (rc) { | 686 | if (rc) { |