Pull perf updates from Ingo Molnar: "Kernel side changes: - Ftrace is one of the last W^X violators (after this only KLP is left). These patches move it over to the generic text_poke() interface and thereby get rid of this oddity. This requires a surprising amount of surgery, by Peter Zijlstra. - x86/AMD PMUs: add support for 'Large Increment per Cycle Events' to count certain types of events that have a special, quirky hw ABI (by Kim Phillips) - kprobes fixes by Masami Hiramatsu Lots of tooling updates as well, the following subcommands were updated: annotate/report/top, c2c, clang, record, report/top TUI, sched timehist, tests; plus updates were done to the gtk ui, libperf, headers and the parser" * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (57 commits) perf/x86/amd: Add support for Large Increment per Cycle Events perf/x86/amd: Constrain Large Increment per Cycle events perf/x86/intel/rapl: Add Comet Lake support tracing: Initialize ret in syscall_enter_define_fields() perf header: Use last modification time for timestamp perf c2c: Fix return type for histogram sorting comparision functions perf beauty sockaddr: Fix augmented syscall format warning perf/ui/gtk: Fix gtk2 build perf ui gtk: Add missing zalloc object perf tools: Use %define api.pure full instead of %pure-parser libperf: Setup initial evlist::all_cpus value perf report: Fix no libunwind compiled warning break s390 issue perf tools: Support --prefix/--prefix-strip perf report: Clarify in help that --children is default tools build: Fix test-clang.cpp with Clang 8+ perf clang: Fix build with Clang 9 kprobes: Fix optimize_kprobe()/unoptimize_kprobe() cancellation logic tools lib: Fix builds when glibc contains strlcpy() perf report/top: Make 'e' visible in the help and make it toggle showing callchains perf report/top: Do not offer annotation for symbols without samples ...
Showing the changes to include/linux (2 of 128 files). Show all
Unified · Split
| @@ -849,13 +849,9 @@ extern int module_sysfs_initialized; · 848 unmodified lines | ||
| 849 | 849 | #define __MODULE_STRING(x) __stringify(x) |
| 850 | 850 | |
| 851 | 851 | #ifdef CONFIG_STRICT_MODULE_RWX |
| 852 | −extern void set_all_modules_text_rw(void); | |
| 853 | −extern void set_all_modules_text_ro(void); | |
| 854 | 852 | extern void module_enable_ro(const struct module *mod, bool after_init); |
| 855 | 853 | extern void module_disable_ro(const struct module *mod); |
| 856 | 854 | #else |
| 857 | −static inline void set_all_modules_text_rw(void) { } | |
| 858 | −static inline void set_all_modules_text_ro(void) { } | |
| 859 | 855 | static inline void module_enable_ro(const struct module *mod, bool after_init) { } |
| 860 | 856 | static inline void module_disable_ro(const struct module *mod) { } |
| 861 | 857 | #endif |
| @@ -192,6 +192,22 @@ enum trace_reg { · 191 unmodified lines | ||
| 192 | 192 | |
| 193 | 193 | struct trace_event_call; |
| 194 | 194 | |
| 195 | +#define TRACE_FUNCTION_TYPE ((const char *)~0UL) | |
| 196 | + | |
| 197 | +struct trace_event_fields { | |
| 198 | + const char *type; | |
| 199 | + union { | |
| 200 | + struct { | |
| 201 | + const char *name; | |
| 202 | + const int size; | |
| 203 | + const int align; | |
| 204 | + const int is_signed; | |
| 205 | + const int filter_type; | |
| 206 | + }; | |
| 207 | + int (*define_fields)(struct trace_event_call *); | |
| 208 | + }; | |
| 209 | +}; | |
| 210 | + | |
| 195 | 211 | struct trace_event_class { |
| 196 | 212 | const char *system; |
| 197 | 213 | void *probe; |
| @@ -200,7 +216,7 @@ struct trace_event_class { · 2 unmodified lines | ||
| 200 | 216 | #endif |
| 201 | 217 | int (*reg)(struct trace_event_call *event, |
| 202 | 218 | enum trace_reg type, void *data); |
| 203 | − int (*define_fields)(struct trace_event_call *); | |
| 219 | + struct trace_event_fields *fields_array; | |
| 204 | 220 | struct list_head *(*get_fields)(struct trace_event_call *); |
| 205 | 221 | struct list_head fields; |
| 206 | 222 | int (*raw_init)(struct trace_event_call *); |