aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/oprofile
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/oprofile')
-rw-r--r--drivers/oprofile/oprof.c7
-rw-r--r--drivers/oprofile/oprofile_stats.c9
-rw-r--r--drivers/oprofile/oprofile_stats.h1
3 files changed, 8 insertions, 9 deletions
diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
index a48294a8ebe8..dc8a0428260d 100644
--- a/drivers/oprofile/oprof.c
+++ b/drivers/oprofile/oprof.c
@@ -107,8 +107,11 @@ static void stop_switch_worker(void)
107 107
108static void switch_worker(struct work_struct *work) 108static void switch_worker(struct work_struct *work)
109{ 109{
110 if (!oprofile_ops.switch_events()) 110 if (oprofile_ops.switch_events())
111 start_switch_worker(); 111 return;
112
113 atomic_inc(&oprofile_stats.multiplex_counter);
114 start_switch_worker();
112} 115}
113 116
114/* User inputs in ms, converts to jiffies */ 117/* User inputs in ms, converts to jiffies */
diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c
index 77a57a6792f6..61689e814d46 100644
--- a/drivers/oprofile/oprofile_stats.c
+++ b/drivers/oprofile/oprofile_stats.c
@@ -16,9 +16,6 @@
16#include "cpu_buffer.h" 16#include "cpu_buffer.h"
17 17
18struct oprofile_stat_struct oprofile_stats; 18struct oprofile_stat_struct oprofile_stats;
19#ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX
20atomic_t multiplex_counter;
21#endif
22 19
23void oprofile_reset_stats(void) 20void oprofile_reset_stats(void)
24{ 21{
@@ -37,9 +34,7 @@ void oprofile_reset_stats(void)
37 atomic_set(&oprofile_stats.sample_lost_no_mapping, 0); 34 atomic_set(&oprofile_stats.sample_lost_no_mapping, 0);
38 atomic_set(&oprofile_stats.event_lost_overflow, 0); 35 atomic_set(&oprofile_stats.event_lost_overflow, 0);
39 atomic_set(&oprofile_stats.bt_lost_no_mapping, 0); 36 atomic_set(&oprofile_stats.bt_lost_no_mapping, 0);
40#ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX 37 atomic_set(&oprofile_stats.multiplex_counter, 0);
41 atomic_set(&multiplex_counter, 0);
42#endif
43} 38}
44 39
45 40
@@ -84,6 +79,6 @@ void oprofile_create_stats_files(struct super_block *sb, struct dentry *root)
84 &oprofile_stats.bt_lost_no_mapping); 79 &oprofile_stats.bt_lost_no_mapping);
85#ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX 80#ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX
86 oprofilefs_create_ro_atomic(sb, dir, "multiplex_counter", 81 oprofilefs_create_ro_atomic(sb, dir, "multiplex_counter",
87 &multiplex_counter); 82 &oprofile_stats.multiplex_counter);
88#endif 83#endif
89} 84}
diff --git a/drivers/oprofile/oprofile_stats.h b/drivers/oprofile/oprofile_stats.h
index 3da0d08dc1f9..0b54e46c3c14 100644
--- a/drivers/oprofile/oprofile_stats.h
+++ b/drivers/oprofile/oprofile_stats.h
@@ -17,6 +17,7 @@ struct oprofile_stat_struct {
17 atomic_t sample_lost_no_mapping; 17 atomic_t sample_lost_no_mapping;
18 atomic_t bt_lost_no_mapping; 18 atomic_t bt_lost_no_mapping;
19 atomic_t event_lost_overflow; 19 atomic_t event_lost_overflow;
20 atomic_t multiplex_counter;
20}; 21};
21 22
22extern struct oprofile_stat_struct oprofile_stats; 23extern struct oprofile_stat_struct oprofile_stats;