diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-22 14:10:36 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-22 14:10:36 -0400 |
| commit | 2eafeb6a415864bc4c59df79151cf40f6ac74b9e (patch) | |
| tree | 331ee730275276aebbda5dd278a97c941067d5fd /include | |
| parent | 16d286e656250859946786de0df0fb01f8f241bc (diff) | |
| parent | 6e0f17be0361444862637e8986c8c1a3b3f8dcf8 (diff) | |
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf events changes from Ingo Molnar:
"- kernel side:
- Intel uncore PMU support for Nehalem and Sandy Bridge CPUs, we
support both the events available via the MSR and via the PCI
access space.
- various uprobes cleanups and restructurings
- PMU driver quirks by microcode version and required x86 microcode
loader cleanups/robustization
- various tracing robustness updates
- static keys: remove obsolete static_branch()
- tooling side:
- GTK browser improvements
- perf report browser: support screenshots to file
- more automated tests
- perf kvm improvements
- perf bench refinements
- build environment improvements
- pipe mode improvements
- libtraceevent updates, we have now hopefully merged most bits with
the out of tree forked code base
... and many other goodies."
* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (138 commits)
tracing: Check for allocation failure in __tracing_open()
perf/x86: Fix intel_perfmon_event_mapformatting
jump label: Remove static_branch()
tracepoint: Use static_key_false(), since static_branch() is deprecated
perf/x86: Uncore filter support for SandyBridge-EP
perf/x86: Detect number of instances of uncore CBox
perf/x86: Fix event constraint for SandyBridge-EP C-Box
perf/x86: Use 0xff as pseudo code for fixed uncore event
perf/x86: Save a few bytes in 'struct x86_pmu'
perf/x86: Add a microcode revision check for SNB-PEBS
perf/x86: Improve debug output in check_hw_exists()
perf/x86/amd: Unify AMD's generic and family 15h pmus
perf/x86: Move Intel specific code to intel_pmu_init()
perf/x86: Rename Intel specific macros
perf/x86: Fix USER/KERNEL tagging of samples
perf tools: Split event symbols arrays to hw and sw parts
perf tools: Split out PE_VALUE_SYM parsing token to SW and HW tokens
perf tools: Add empty rule for new line in event syntax parsing
perf test: Use ARRAY_SIZE in parse events tests
tools lib traceevent: Cleanup realloc use
...
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/ftrace_event.h | 5 | ||||
| -rw-r--r-- | include/linux/jump_label.h | 17 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 11 | ||||
| -rw-r--r-- | include/linux/perf_event.h | 3 | ||||
| -rw-r--r-- | include/linux/sched.h | 1 | ||||
| -rw-r--r-- | include/linux/tracepoint.h | 2 | ||||
| -rw-r--r-- | include/trace/ftrace.h | 1 |
7 files changed, 21 insertions, 19 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index 176a939d1547..af961d6f7ab1 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h | |||
| @@ -65,7 +65,7 @@ struct trace_iterator { | |||
| 65 | void *private; | 65 | void *private; |
| 66 | int cpu_file; | 66 | int cpu_file; |
| 67 | struct mutex mutex; | 67 | struct mutex mutex; |
| 68 | struct ring_buffer_iter *buffer_iter[NR_CPUS]; | 68 | struct ring_buffer_iter **buffer_iter; |
| 69 | unsigned long iter_flags; | 69 | unsigned long iter_flags; |
| 70 | 70 | ||
| 71 | /* trace_seq for __print_flags() and __print_symbolic() etc. */ | 71 | /* trace_seq for __print_flags() and __print_symbolic() etc. */ |
| @@ -207,6 +207,9 @@ struct ftrace_event_call { | |||
| 207 | * bit 1: enabled | 207 | * bit 1: enabled |
| 208 | * bit 2: filter_active | 208 | * bit 2: filter_active |
| 209 | * bit 3: enabled cmd record | 209 | * bit 3: enabled cmd record |
| 210 | * bit 4: allow trace by non root (cap any) | ||
| 211 | * bit 5: failed to apply filter | ||
| 212 | * bit 6: ftrace internal event (do not enable) | ||
| 210 | * | 213 | * |
| 211 | * Changes to flags must hold the event_mutex. | 214 | * Changes to flags must hold the event_mutex. |
| 212 | * | 215 | * |
diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h index c513a40510f5..0976fc46d1e0 100644 --- a/include/linux/jump_label.h +++ b/include/linux/jump_label.h | |||
| @@ -42,8 +42,7 @@ | |||
| 42 | * allowed. | 42 | * allowed. |
| 43 | * | 43 | * |
| 44 | * Not initializing the key (static data is initialized to 0s anyway) is the | 44 | * Not initializing the key (static data is initialized to 0s anyway) is the |
| 45 | * same as using STATIC_KEY_INIT_FALSE and static_key_false() is | 45 | * same as using STATIC_KEY_INIT_FALSE. |
| 46 | * equivalent with static_branch(). | ||
| 47 | * | 46 | * |
| 48 | */ | 47 | */ |
| 49 | 48 | ||
| @@ -107,12 +106,6 @@ static __always_inline bool static_key_true(struct static_key *key) | |||
| 107 | return !static_key_false(key); | 106 | return !static_key_false(key); |
| 108 | } | 107 | } |
| 109 | 108 | ||
| 110 | /* Deprecated. Please use 'static_key_false() instead. */ | ||
| 111 | static __always_inline bool static_branch(struct static_key *key) | ||
| 112 | { | ||
| 113 | return arch_static_branch(key); | ||
| 114 | } | ||
| 115 | |||
| 116 | extern struct jump_entry __start___jump_table[]; | 109 | extern struct jump_entry __start___jump_table[]; |
| 117 | extern struct jump_entry __stop___jump_table[]; | 110 | extern struct jump_entry __stop___jump_table[]; |
| 118 | 111 | ||
| @@ -166,14 +159,6 @@ static __always_inline bool static_key_true(struct static_key *key) | |||
| 166 | return false; | 159 | return false; |
| 167 | } | 160 | } |
| 168 | 161 | ||
| 169 | /* Deprecated. Please use 'static_key_false() instead. */ | ||
| 170 | static __always_inline bool static_branch(struct static_key *key) | ||
| 171 | { | ||
| 172 | if (unlikely(atomic_read(&key->enabled)) > 0) | ||
| 173 | return true; | ||
| 174 | return false; | ||
| 175 | } | ||
| 176 | |||
| 177 | static inline void static_key_slow_inc(struct static_key *key) | 162 | static inline void static_key_slow_inc(struct static_key *key) |
| 178 | { | 163 | { |
| 179 | atomic_inc(&key->enabled); | 164 | atomic_inc(&key->enabled); |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index ab741b0d0074..5f187026b812 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -2755,6 +2755,17 @@ | |||
| 2755 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB7 0x3c27 | 2755 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB7 0x3c27 |
| 2756 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB8 0x3c2e | 2756 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB8 0x3c2e |
| 2757 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB9 0x3c2f | 2757 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB9 0x3c2f |
| 2758 | #define PCI_DEVICE_ID_INTEL_UNC_HA 0x3c46 | ||
| 2759 | #define PCI_DEVICE_ID_INTEL_UNC_IMC0 0x3cb0 | ||
| 2760 | #define PCI_DEVICE_ID_INTEL_UNC_IMC1 0x3cb1 | ||
| 2761 | #define PCI_DEVICE_ID_INTEL_UNC_IMC2 0x3cb4 | ||
| 2762 | #define PCI_DEVICE_ID_INTEL_UNC_IMC3 0x3cb5 | ||
| 2763 | #define PCI_DEVICE_ID_INTEL_UNC_QPI0 0x3c41 | ||
| 2764 | #define PCI_DEVICE_ID_INTEL_UNC_QPI1 0x3c42 | ||
| 2765 | #define PCI_DEVICE_ID_INTEL_UNC_R2PCIE 0x3c43 | ||
| 2766 | #define PCI_DEVICE_ID_INTEL_UNC_R3QPI0 0x3c44 | ||
| 2767 | #define PCI_DEVICE_ID_INTEL_UNC_R3QPI1 0x3c45 | ||
| 2768 | #define PCI_DEVICE_ID_INTEL_JAKETOWN_UBOX 0x3ce0 | ||
| 2758 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f | 2769 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f |
| 2759 | #define PCI_DEVICE_ID_INTEL_5100_16 0x65f0 | 2770 | #define PCI_DEVICE_ID_INTEL_5100_16 0x65f0 |
| 2760 | #define PCI_DEVICE_ID_INTEL_5100_21 0x65f5 | 2771 | #define PCI_DEVICE_ID_INTEL_5100_21 0x65f5 |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 45db49f64bb4..76c5c8b724a7 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -677,6 +677,7 @@ struct hw_perf_event { | |||
| 677 | u64 last_tag; | 677 | u64 last_tag; |
| 678 | unsigned long config_base; | 678 | unsigned long config_base; |
| 679 | unsigned long event_base; | 679 | unsigned long event_base; |
| 680 | int event_base_rdpmc; | ||
| 680 | int idx; | 681 | int idx; |
| 681 | int last_cpu; | 682 | int last_cpu; |
| 682 | 683 | ||
| @@ -1106,6 +1107,8 @@ perf_event_create_kernel_counter(struct perf_event_attr *attr, | |||
| 1106 | struct task_struct *task, | 1107 | struct task_struct *task, |
| 1107 | perf_overflow_handler_t callback, | 1108 | perf_overflow_handler_t callback, |
| 1108 | void *context); | 1109 | void *context); |
| 1110 | extern void perf_pmu_migrate_context(struct pmu *pmu, | ||
| 1111 | int src_cpu, int dst_cpu); | ||
| 1109 | extern u64 perf_event_read_value(struct perf_event *event, | 1112 | extern u64 perf_event_read_value(struct perf_event *event, |
| 1110 | u64 *enabled, u64 *running); | 1113 | u64 *enabled, u64 *running); |
| 1111 | 1114 | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index 4a1f493e0fef..64d9df5c3a49 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -1581,7 +1581,6 @@ struct task_struct { | |||
| 1581 | #endif | 1581 | #endif |
| 1582 | #ifdef CONFIG_UPROBES | 1582 | #ifdef CONFIG_UPROBES |
| 1583 | struct uprobe_task *utask; | 1583 | struct uprobe_task *utask; |
| 1584 | int uprobe_srcu_id; | ||
| 1585 | #endif | 1584 | #endif |
| 1586 | }; | 1585 | }; |
| 1587 | 1586 | ||
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h index bd96ecd0e05c..802de56c41e8 100644 --- a/include/linux/tracepoint.h +++ b/include/linux/tracepoint.h | |||
| @@ -153,7 +153,7 @@ static inline void tracepoint_synchronize_unregister(void) | |||
| 153 | } \ | 153 | } \ |
| 154 | static inline void trace_##name##_rcuidle(proto) \ | 154 | static inline void trace_##name##_rcuidle(proto) \ |
| 155 | { \ | 155 | { \ |
| 156 | if (static_branch(&__tracepoint_##name.key)) \ | 156 | if (static_key_false(&__tracepoint_##name.key)) \ |
| 157 | __DO_TRACE(&__tracepoint_##name, \ | 157 | __DO_TRACE(&__tracepoint_##name, \ |
| 158 | TP_PROTO(data_proto), \ | 158 | TP_PROTO(data_proto), \ |
| 159 | TP_ARGS(data_args), \ | 159 | TP_ARGS(data_args), \ |
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 769724944fc6..c6bc2faaf261 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
| @@ -571,6 +571,7 @@ static inline void ftrace_test_probe_##call(void) \ | |||
| 571 | 571 | ||
| 572 | #undef __print_flags | 572 | #undef __print_flags |
| 573 | #undef __print_symbolic | 573 | #undef __print_symbolic |
| 574 | #undef __print_hex | ||
| 574 | #undef __get_dynamic_array | 575 | #undef __get_dynamic_array |
| 575 | #undef __get_str | 576 | #undef __get_str |
| 576 | 577 | ||
