Commit 6016ee13 authored by Namhyung Kim's avatar Namhyung Kim Committed by Frederic Weisbecker

perf, tracing: add missing __percpu markups

ftrace_event_call->perf_events, perf_trace_buf,
fgraph_data->cpu_data and some local variables are percpu pointers
missing __percpu markups. Add them.
Signed-off-by: default avatarNamhyung Kim <namhyung@gmail.com>
Acked-by: default avatarTejun Heo <tj@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Stephane Eranian <eranian@google.com>
LKML-Reference: <1281498479-28551-1-git-send-email-namhyung@gmail.com>
Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
parent 7ae07ea3
...@@ -191,8 +191,8 @@ struct ftrace_event_call { ...@@ -191,8 +191,8 @@ struct ftrace_event_call {
unsigned int flags; unsigned int flags;
#ifdef CONFIG_PERF_EVENTS #ifdef CONFIG_PERF_EVENTS
int perf_refcount; int perf_refcount;
struct hlist_head *perf_events; struct hlist_head __percpu *perf_events;
#endif #endif
}; };
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <linux/kprobes.h> #include <linux/kprobes.h>
#include "trace.h" #include "trace.h"
static char *perf_trace_buf[PERF_NR_CONTEXTS]; static char __percpu *perf_trace_buf[PERF_NR_CONTEXTS];
/* /*
* Force it to be aligned to unsigned long to avoid misaligned accesses * Force it to be aligned to unsigned long to avoid misaligned accesses
...@@ -24,7 +24,7 @@ static int total_ref_count; ...@@ -24,7 +24,7 @@ static int total_ref_count;
static int perf_trace_event_init(struct ftrace_event_call *tp_event, static int perf_trace_event_init(struct ftrace_event_call *tp_event,
struct perf_event *p_event) struct perf_event *p_event)
{ {
struct hlist_head *list; struct hlist_head __percpu *list;
int ret = -ENOMEM; int ret = -ENOMEM;
int cpu; int cpu;
...@@ -42,11 +42,11 @@ static int perf_trace_event_init(struct ftrace_event_call *tp_event, ...@@ -42,11 +42,11 @@ static int perf_trace_event_init(struct ftrace_event_call *tp_event,
tp_event->perf_events = list; tp_event->perf_events = list;
if (!total_ref_count) { if (!total_ref_count) {
char *buf; char __percpu *buf;
int i; int i;
for (i = 0; i < PERF_NR_CONTEXTS; i++) { for (i = 0; i < PERF_NR_CONTEXTS; i++) {
buf = (char *)alloc_percpu(perf_trace_t); buf = (char __percpu *)alloc_percpu(perf_trace_t);
if (!buf) if (!buf)
goto fail; goto fail;
...@@ -102,13 +102,14 @@ int perf_trace_init(struct perf_event *p_event) ...@@ -102,13 +102,14 @@ int perf_trace_init(struct perf_event *p_event)
int perf_trace_enable(struct perf_event *p_event) int perf_trace_enable(struct perf_event *p_event)
{ {
struct ftrace_event_call *tp_event = p_event->tp_event; struct ftrace_event_call *tp_event = p_event->tp_event;
struct hlist_head __percpu *pcpu_list;
struct hlist_head *list; struct hlist_head *list;
list = tp_event->perf_events; pcpu_list = tp_event->perf_events;
if (WARN_ON_ONCE(!list)) if (WARN_ON_ONCE(!pcpu_list))
return -EINVAL; return -EINVAL;
list = this_cpu_ptr(list); list = this_cpu_ptr(pcpu_list);
hlist_add_head_rcu(&p_event->hlist_entry, list); hlist_add_head_rcu(&p_event->hlist_entry, list);
return 0; return 0;
......
...@@ -23,7 +23,7 @@ struct fgraph_cpu_data { ...@@ -23,7 +23,7 @@ struct fgraph_cpu_data {
}; };
struct fgraph_data { struct fgraph_data {
struct fgraph_cpu_data *cpu_data; struct fgraph_cpu_data __percpu *cpu_data;
/* Place to preserve last processed entry. */ /* Place to preserve last processed entry. */
struct ftrace_graph_ent_entry ent; struct ftrace_graph_ent_entry ent;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment