summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/init_task.h13
-rw-r--r--include/linux/perf_counter.h4
-rw-r--r--include/linux/sched.h6
3 files changed, 5 insertions, 18 deletions
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 503afaa0afa7..d87247d2641f 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -108,18 +108,6 @@ extern struct group_info init_groups;
extern struct cred init_cred;
-#ifdef CONFIG_PERF_COUNTERS
-# define INIT_PERF_COUNTERS(tsk) \
- .perf_counter_ctx.counter_list = \
- LIST_HEAD_INIT(tsk.perf_counter_ctx.counter_list), \
- .perf_counter_ctx.event_list = \
- LIST_HEAD_INIT(tsk.perf_counter_ctx.event_list), \
- .perf_counter_ctx.lock = \
- __SPIN_LOCK_UNLOCKED(tsk.perf_counter_ctx.lock),
-#else
-# define INIT_PERF_COUNTERS(tsk)
-#endif
-
/*
* INIT_TASK is used to set up the first task table, touch at
* your own risk!. Base=0, limit=0x1fffff (=2MB)
@@ -183,7 +171,6 @@ extern struct cred init_cred;
}, \
.dirties = INIT_PROP_LOCAL_SINGLE(dirties), \
INIT_IDS \
- INIT_PERF_COUNTERS(tsk) \
INIT_TRACE_IRQFLAGS \
INIT_LOCKDEP \
INIT_FTRACE_GRAPH \
diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h
index f612941ef46e..071309005468 100644
--- a/include/linux/perf_counter.h
+++ b/include/linux/perf_counter.h
@@ -449,7 +449,6 @@ struct perf_counter {
struct hw_perf_counter hw;
struct perf_counter_context *ctx;
- struct task_struct *task;
struct file *filp;
struct perf_counter *parent;
@@ -498,7 +497,6 @@ struct perf_counter {
* Used as a container for task counters and CPU counters as well:
*/
struct perf_counter_context {
-#ifdef CONFIG_PERF_COUNTERS
/*
* Protect the states of the counters in the list,
* nr_active, and the list:
@@ -516,6 +514,7 @@ struct perf_counter_context {
int nr_counters;
int nr_active;
int is_active;
+ atomic_t refcount;
struct task_struct *task;
/*
@@ -523,7 +522,6 @@ struct perf_counter_context {
*/
u64 time;
u64 timestamp;
-#endif
};
/**
diff --git a/include/linux/sched.h b/include/linux/sched.h
index ff59d1231519..9714d450f417 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -71,7 +71,6 @@ struct sched_param {
#include <linux/path.h>
#include <linux/compiler.h>
#include <linux/completion.h>
-#include <linux/perf_counter.h>
#include <linux/pid.h>
#include <linux/percpu.h>
#include <linux/topology.h>
@@ -99,6 +98,7 @@ struct robust_list_head;
struct bio;
struct bts_tracer;
struct fs_struct;
+struct perf_counter_context;
/*
* List of flags we want to share for kernel threads,
@@ -1387,7 +1387,9 @@ struct task_struct {
struct list_head pi_state_list;
struct futex_pi_state *pi_state_cache;
#endif
- struct perf_counter_context perf_counter_ctx;
+#ifdef CONFIG_PERF_COUNTERS
+ struct perf_counter_context *perf_counter_ctxp;
+#endif
#ifdef CONFIG_NUMA
struct mempolicy *mempolicy;
short il_next;