Commit 6b77df08 authored by Arun Sharma's avatar Arun Sharma Committed by Linus Torvalds

[PATCH] oprofile: ppro: need to enable/disable all the counters

Need to enable/disable all the counters instead of just counter 0.

This affects all cpus with family=6, including i386/core.  Usual symptom:
only counter 0 provides samples.  Other counters don't produce samples.
Signed-off-by: default avatarArun Sharma <arun.sharma@google.com>
Cc: Philippe Elie <phil.el@wanadoo.fr>
Cc: John Levon <levon@movementarian.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 50462062
...@@ -138,11 +138,14 @@ static int ppro_check_ctrs(struct pt_regs * const regs, ...@@ -138,11 +138,14 @@ static int ppro_check_ctrs(struct pt_regs * const regs,
static void ppro_start(struct op_msrs const * const msrs) static void ppro_start(struct op_msrs const * const msrs)
{ {
unsigned int low,high; unsigned int low,high;
int i;
if (reset_value[0]) { for (i = 0; i < NUM_COUNTERS; ++i) {
CTRL_READ(low, high, msrs, 0); if (reset_value[i]) {
CTRL_SET_ACTIVE(low); CTRL_READ(low, high, msrs, i);
CTRL_WRITE(low, high, msrs, 0); CTRL_SET_ACTIVE(low);
CTRL_WRITE(low, high, msrs, i);
}
} }
} }
...@@ -150,11 +153,14 @@ static void ppro_start(struct op_msrs const * const msrs) ...@@ -150,11 +153,14 @@ static void ppro_start(struct op_msrs const * const msrs)
static void ppro_stop(struct op_msrs const * const msrs) static void ppro_stop(struct op_msrs const * const msrs)
{ {
unsigned int low,high; unsigned int low,high;
int i;
if (reset_value[0]) { for (i = 0; i < NUM_COUNTERS; ++i) {
CTRL_READ(low, high, msrs, 0); if (!reset_value[i])
continue;
CTRL_READ(low, high, msrs, i);
CTRL_SET_INACTIVE(low); CTRL_SET_INACTIVE(low);
CTRL_WRITE(low, high, msrs, 0); CTRL_WRITE(low, high, msrs, i);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment