diff options
author | Tejun Heo <tj@kernel.org> | 2009-10-29 09:34:13 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2009-10-29 09:34:13 -0400 |
commit | b3e9f672b6cd0f4c2982c1bcc0b3c3fb39d3b0fe (patch) | |
tree | 4aaac8850226d81df5f90240839c1d1310c0ae75 /drivers/oprofile | |
parent | 9705f69ed0a5ef593f45e618bcb3cbfdbf391f64 (diff) |
percpu: make percpu symbols in oprofile unique
This patch updates percpu related symbols in oprofile such that percpu
symbols are unique and don't clash with local symbols. This serves
two purposes of decreasing the possibility of global percpu symbol
collision and allowing dropping per_cpu__ prefix from percpu symbols.
* drivers/oprofile/cpu_buffer.c: s/cpu_buffer/op_cpu_buffer/
Partly based on Rusty Russell's "alloc_percpu: rename percpu vars
which cause name clashes" patch.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Robert Richter <robert.richter@amd.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/oprofile')
-rw-r--r-- | drivers/oprofile/cpu_buffer.c | 19 | ||||
-rw-r--r-- | drivers/oprofile/cpu_buffer.h | 4 | ||||
-rw-r--r-- | drivers/oprofile/oprofile_stats.c | 4 |
3 files changed, 13 insertions, 14 deletions
diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c index a7aae24f2889..166b67ea622f 100644 --- a/drivers/oprofile/cpu_buffer.c +++ b/drivers/oprofile/cpu_buffer.c | |||
@@ -47,7 +47,7 @@ | |||
47 | */ | 47 | */ |
48 | static struct ring_buffer *op_ring_buffer_read; | 48 | static struct ring_buffer *op_ring_buffer_read; |
49 | static struct ring_buffer *op_ring_buffer_write; | 49 | static struct ring_buffer *op_ring_buffer_write; |
50 | DEFINE_PER_CPU(struct oprofile_cpu_buffer, cpu_buffer); | 50 | DEFINE_PER_CPU(struct oprofile_cpu_buffer, op_cpu_buffer); |
51 | 51 | ||
52 | static void wq_sync_buffer(struct work_struct *work); | 52 | static void wq_sync_buffer(struct work_struct *work); |
53 | 53 | ||
@@ -61,8 +61,7 @@ unsigned long oprofile_get_cpu_buffer_size(void) | |||
61 | 61 | ||
62 | void oprofile_cpu_buffer_inc_smpl_lost(void) | 62 | void oprofile_cpu_buffer_inc_smpl_lost(void) |
63 | { | 63 | { |
64 | struct oprofile_cpu_buffer *cpu_buf | 64 | struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(op_cpu_buffer); |
65 | = &__get_cpu_var(cpu_buffer); | ||
66 | 65 | ||
67 | cpu_buf->sample_lost_overflow++; | 66 | cpu_buf->sample_lost_overflow++; |
68 | } | 67 | } |
@@ -95,7 +94,7 @@ int alloc_cpu_buffers(void) | |||
95 | goto fail; | 94 | goto fail; |
96 | 95 | ||
97 | for_each_possible_cpu(i) { | 96 | for_each_possible_cpu(i) { |
98 | struct oprofile_cpu_buffer *b = &per_cpu(cpu_buffer, i); | 97 | struct oprofile_cpu_buffer *b = &per_cpu(op_cpu_buffer, i); |
99 | 98 | ||
100 | b->last_task = NULL; | 99 | b->last_task = NULL; |
101 | b->last_is_kernel = -1; | 100 | b->last_is_kernel = -1; |
@@ -122,7 +121,7 @@ void start_cpu_work(void) | |||
122 | work_enabled = 1; | 121 | work_enabled = 1; |
123 | 122 | ||
124 | for_each_online_cpu(i) { | 123 | for_each_online_cpu(i) { |
125 | struct oprofile_cpu_buffer *b = &per_cpu(cpu_buffer, i); | 124 | struct oprofile_cpu_buffer *b = &per_cpu(op_cpu_buffer, i); |
126 | 125 | ||
127 | /* | 126 | /* |
128 | * Spread the work by 1 jiffy per cpu so they dont all | 127 | * Spread the work by 1 jiffy per cpu so they dont all |
@@ -139,7 +138,7 @@ void end_cpu_work(void) | |||
139 | work_enabled = 0; | 138 | work_enabled = 0; |
140 | 139 | ||
141 | for_each_online_cpu(i) { | 140 | for_each_online_cpu(i) { |
142 | struct oprofile_cpu_buffer *b = &per_cpu(cpu_buffer, i); | 141 | struct oprofile_cpu_buffer *b = &per_cpu(op_cpu_buffer, i); |
143 | 142 | ||
144 | cancel_delayed_work(&b->work); | 143 | cancel_delayed_work(&b->work); |
145 | } | 144 | } |
@@ -330,7 +329,7 @@ static inline void | |||
330 | __oprofile_add_ext_sample(unsigned long pc, struct pt_regs * const regs, | 329 | __oprofile_add_ext_sample(unsigned long pc, struct pt_regs * const regs, |
331 | unsigned long event, int is_kernel) | 330 | unsigned long event, int is_kernel) |
332 | { | 331 | { |
333 | struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(cpu_buffer); | 332 | struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(op_cpu_buffer); |
334 | unsigned long backtrace = oprofile_backtrace_depth; | 333 | unsigned long backtrace = oprofile_backtrace_depth; |
335 | 334 | ||
336 | /* | 335 | /* |
@@ -375,7 +374,7 @@ oprofile_write_reserve(struct op_entry *entry, struct pt_regs * const regs, | |||
375 | { | 374 | { |
376 | struct op_sample *sample; | 375 | struct op_sample *sample; |
377 | int is_kernel = !user_mode(regs); | 376 | int is_kernel = !user_mode(regs); |
378 | struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(cpu_buffer); | 377 | struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(op_cpu_buffer); |
379 | 378 | ||
380 | cpu_buf->sample_received++; | 379 | cpu_buf->sample_received++; |
381 | 380 | ||
@@ -430,13 +429,13 @@ int oprofile_write_commit(struct op_entry *entry) | |||
430 | 429 | ||
431 | void oprofile_add_pc(unsigned long pc, int is_kernel, unsigned long event) | 430 | void oprofile_add_pc(unsigned long pc, int is_kernel, unsigned long event) |
432 | { | 431 | { |
433 | struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(cpu_buffer); | 432 | struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(op_cpu_buffer); |
434 | log_sample(cpu_buf, pc, 0, is_kernel, event); | 433 | log_sample(cpu_buf, pc, 0, is_kernel, event); |
435 | } | 434 | } |
436 | 435 | ||
437 | void oprofile_add_trace(unsigned long pc) | 436 | void oprofile_add_trace(unsigned long pc) |
438 | { | 437 | { |
439 | struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(cpu_buffer); | 438 | struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(op_cpu_buffer); |
440 | 439 | ||
441 | if (!cpu_buf->tracing) | 440 | if (!cpu_buf->tracing) |
442 | return; | 441 | return; |
diff --git a/drivers/oprofile/cpu_buffer.h b/drivers/oprofile/cpu_buffer.h index 272995d20293..68ea16ab645f 100644 --- a/drivers/oprofile/cpu_buffer.h +++ b/drivers/oprofile/cpu_buffer.h | |||
@@ -50,7 +50,7 @@ struct oprofile_cpu_buffer { | |||
50 | struct delayed_work work; | 50 | struct delayed_work work; |
51 | }; | 51 | }; |
52 | 52 | ||
53 | DECLARE_PER_CPU(struct oprofile_cpu_buffer, cpu_buffer); | 53 | DECLARE_PER_CPU(struct oprofile_cpu_buffer, op_cpu_buffer); |
54 | 54 | ||
55 | /* | 55 | /* |
56 | * Resets the cpu buffer to a sane state. | 56 | * Resets the cpu buffer to a sane state. |
@@ -60,7 +60,7 @@ DECLARE_PER_CPU(struct oprofile_cpu_buffer, cpu_buffer); | |||
60 | */ | 60 | */ |
61 | static inline void op_cpu_buffer_reset(int cpu) | 61 | static inline void op_cpu_buffer_reset(int cpu) |
62 | { | 62 | { |
63 | struct oprofile_cpu_buffer *cpu_buf = &per_cpu(cpu_buffer, cpu); | 63 | struct oprofile_cpu_buffer *cpu_buf = &per_cpu(op_cpu_buffer, cpu); |
64 | 64 | ||
65 | cpu_buf->last_is_kernel = -1; | 65 | cpu_buf->last_is_kernel = -1; |
66 | cpu_buf->last_task = NULL; | 66 | cpu_buf->last_task = NULL; |
diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c index 61689e814d46..917d28ebeacd 100644 --- a/drivers/oprofile/oprofile_stats.c +++ b/drivers/oprofile/oprofile_stats.c | |||
@@ -23,7 +23,7 @@ void oprofile_reset_stats(void) | |||
23 | int i; | 23 | int i; |
24 | 24 | ||
25 | for_each_possible_cpu(i) { | 25 | for_each_possible_cpu(i) { |
26 | cpu_buf = &per_cpu(cpu_buffer, i); | 26 | cpu_buf = &per_cpu(op_cpu_buffer, i); |
27 | cpu_buf->sample_received = 0; | 27 | cpu_buf->sample_received = 0; |
28 | cpu_buf->sample_lost_overflow = 0; | 28 | cpu_buf->sample_lost_overflow = 0; |
29 | cpu_buf->backtrace_aborted = 0; | 29 | cpu_buf->backtrace_aborted = 0; |
@@ -51,7 +51,7 @@ void oprofile_create_stats_files(struct super_block *sb, struct dentry *root) | |||
51 | return; | 51 | return; |
52 | 52 | ||
53 | for_each_possible_cpu(i) { | 53 | for_each_possible_cpu(i) { |
54 | cpu_buf = &per_cpu(cpu_buffer, i); | 54 | cpu_buf = &per_cpu(op_cpu_buffer, i); |
55 | snprintf(buf, 10, "cpu%d", i); | 55 | snprintf(buf, 10, "cpu%d", i); |
56 | cpudir = oprofilefs_mkdir(sb, dir, buf); | 56 | cpudir = oprofilefs_mkdir(sb, dir, buf); |
57 | 57 | ||