Skip to content

Commit

Permalink
x86/oprofile: Moving nmi_setup_cpu_mux() in nmi_int.c
Browse files Browse the repository at this point in the history
This patch moves some code in nmi_int.c to get a single separate
multiplexing code section.

Signed-off-by: Robert Richter <robert.richter@amd.com>
  • Loading branch information
Robert Richter committed Jul 20, 2009
1 parent 6ab82f9 commit 48fb4b4
Showing 1 changed file with 19 additions and 26 deletions.
45 changes: 19 additions & 26 deletions arch/x86/oprofile/nmi_int.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,11 +130,30 @@ static int nmi_setup_mux(void)
return 1;
}

static void nmi_cpu_setup_mux(int cpu, struct op_msrs const * const msrs)
{
int i;
struct op_msr *multiplex = msrs->multiplex;

for (i = 0; i < model->num_virt_counters; ++i) {
if (counter_config[i].enabled) {
multiplex[i].saved = -(u64)counter_config[i].count;
} else {
multiplex[i].addr = 0;
multiplex[i].saved = 0;
}
}

per_cpu(switch_index, cpu) = 0;
}

#else

inline int op_x86_phys_to_virt(int phys) { return phys; }
static inline void nmi_shutdown_mux(void) { }
static inline int nmi_setup_mux(void) { return 1; }
static inline void
nmi_cpu_setup_mux(int cpu, struct op_msrs const * const msrs) { }

#endif

Expand Down Expand Up @@ -169,32 +188,6 @@ static int allocate_msrs(void)
return 1;
}

#ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX

static void nmi_cpu_setup_mux(int cpu, struct op_msrs const * const msrs)
{
int i;
struct op_msr *multiplex = msrs->multiplex;

for (i = 0; i < model->num_virt_counters; ++i) {
if (counter_config[i].enabled) {
multiplex[i].saved = -(u64)counter_config[i].count;
} else {
multiplex[i].addr = 0;
multiplex[i].saved = 0;
}
}

per_cpu(switch_index, cpu) = 0;
}

#else

static inline void
nmi_cpu_setup_mux(int cpu, struct op_msrs const * const msrs) { }

#endif

static void nmi_cpu_setup(void *dummy)
{
int cpu = smp_processor_id();
Expand Down

0 comments on commit 48fb4b4

Please sign in to comment.