Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Ingo Molnar: "Misc kernel and tooling fixes" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: tools lib traceevent: Fix conversion of pointer to integer of different size perf/trace: Properly use u64 to hold event_id perf: Remove fragile swevent hlist optimization ftrace, perf: Avoid infinite event generation loop tools lib traceevent: Fix use of multiple options in processing field perf header: Fix possible memory leaks in process_group_desc() perf header: Fix bogus group name perf tools: Tag thread comm as overriden
This commit is contained in:
@@ -248,6 +248,9 @@ struct ftrace_event_call {
|
||||
#ifdef CONFIG_PERF_EVENTS
|
||||
int perf_refcount;
|
||||
struct hlist_head __percpu *perf_events;
|
||||
|
||||
int (*perf_perm)(struct ftrace_event_call *,
|
||||
struct perf_event *);
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -317,6 +320,19 @@ struct ftrace_event_file {
|
||||
} \
|
||||
early_initcall(trace_init_flags_##name);
|
||||
|
||||
#define __TRACE_EVENT_PERF_PERM(name, expr...) \
|
||||
static int perf_perm_##name(struct ftrace_event_call *tp_event, \
|
||||
struct perf_event *p_event) \
|
||||
{ \
|
||||
return ({ expr; }); \
|
||||
} \
|
||||
static int __init trace_init_perf_perm_##name(void) \
|
||||
{ \
|
||||
event_##name.perf_perm = &perf_perm_##name; \
|
||||
return 0; \
|
||||
} \
|
||||
early_initcall(trace_init_perf_perm_##name);
|
||||
|
||||
#define PERF_MAX_TRACE_SIZE 2048
|
||||
|
||||
#define MAX_FILTER_STR_VAL 256 /* Should handle KSYM_SYMBOL_LEN */
|
||||
|
||||
@@ -267,6 +267,8 @@ static inline void tracepoint_synchronize_unregister(void)
|
||||
|
||||
#define TRACE_EVENT_FLAGS(event, flag)
|
||||
|
||||
#define TRACE_EVENT_PERF_PERM(event, expr...)
|
||||
|
||||
#endif /* DECLARE_TRACE */
|
||||
|
||||
#ifndef TRACE_EVENT
|
||||
@@ -399,4 +401,6 @@ static inline void tracepoint_synchronize_unregister(void)
|
||||
|
||||
#define TRACE_EVENT_FLAGS(event, flag)
|
||||
|
||||
#define TRACE_EVENT_PERF_PERM(event, expr...)
|
||||
|
||||
#endif /* ifdef TRACE_EVENT (see note above) */
|
||||
|
||||
Reference in New Issue
Block a user