Skip to content

Commit

Permalink
oprofile: Adding switch counter to oprofile statistic variables
Browse files Browse the repository at this point in the history
This patch moves the multiplexing switch counter from x86 code to
common oprofile statistic variables. Now the value will be available
and usable for all architectures. The initialization and
incrementation also moved to common code.

Signed-off-by: Robert Richter <robert.richter@amd.com>
  • Loading branch information
Robert Richter committed Jul 20, 2009
1 parent 4d015f7 commit 1b294f5
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 16 deletions.
7 changes: 0 additions & 7 deletions arch/x86/oprofile/nmi_int.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,6 @@ static DEFINE_PER_CPU(unsigned long, saved_lvtpc);
/* 0 == registered but off, 1 == registered and on */
static int nmi_enabled = 0;


#ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX
extern atomic_t multiplex_counter;
#endif

struct op_counter_config counter_config[OP_MAX_COUNTER];

/* common functions */
Expand Down Expand Up @@ -253,8 +248,6 @@ static int nmi_switch_event(void)

on_each_cpu(nmi_cpu_switch, NULL, 1);

atomic_inc(&multiplex_counter);

return 0;
}

Expand Down
7 changes: 5 additions & 2 deletions drivers/oprofile/oprof.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,11 @@ static void stop_switch_worker(void)

static void switch_worker(struct work_struct *work)
{
if (!oprofile_ops.switch_events())
start_switch_worker();
if (oprofile_ops.switch_events())
return;

atomic_inc(&oprofile_stats.multiplex_counter);
start_switch_worker();
}

/* User inputs in ms, converts to jiffies */
Expand Down
9 changes: 2 additions & 7 deletions drivers/oprofile/oprofile_stats.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
#include "cpu_buffer.h"

struct oprofile_stat_struct oprofile_stats;
#ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX
atomic_t multiplex_counter;
#endif

void oprofile_reset_stats(void)
{
Expand All @@ -37,9 +34,7 @@ void oprofile_reset_stats(void)
atomic_set(&oprofile_stats.sample_lost_no_mapping, 0);
atomic_set(&oprofile_stats.event_lost_overflow, 0);
atomic_set(&oprofile_stats.bt_lost_no_mapping, 0);
#ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX
atomic_set(&multiplex_counter, 0);
#endif
atomic_set(&oprofile_stats.multiplex_counter, 0);
}


Expand Down Expand Up @@ -84,6 +79,6 @@ void oprofile_create_stats_files(struct super_block *sb, struct dentry *root)
&oprofile_stats.bt_lost_no_mapping);
#ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX
oprofilefs_create_ro_atomic(sb, dir, "multiplex_counter",
&multiplex_counter);
&oprofile_stats.multiplex_counter);
#endif
}
1 change: 1 addition & 0 deletions drivers/oprofile/oprofile_stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ struct oprofile_stat_struct {
atomic_t sample_lost_no_mapping;
atomic_t bt_lost_no_mapping;
atomic_t event_lost_overflow;
atomic_t multiplex_counter;
};

extern struct oprofile_stat_struct oprofile_stats;
Expand Down

0 comments on commit 1b294f5

Please sign in to comment.