diff options
author | Andi Kleen <ak@linux.intel.com> | 2008-09-29 16:23:33 -0400 |
---|---|---|
committer | Robert Richter <robert.richter@amd.com> | 2008-10-13 13:25:11 -0400 |
commit | 59512900baab03c5629f2ff5efad1d5d4e682ece (patch) | |
tree | 163b3e53191902400ac167a902f368d7d8b7b49e /arch/x86 | |
parent | b99170288421c79f0c2efa8b33e26e65f4bb7fb8 (diff) |
oprofile: discover counters for op ppro too
Discover number of counters for all family 6 models even when not
in arch perfmon mode.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Robert Richter <robert.richter@amd.com>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/oprofile/op_model_ppro.c | 8 | ||||
-rw-r--r-- | arch/x86/oprofile/op_x86_model.h | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c index 12e207a67f1b..f5a226823e94 100644 --- a/arch/x86/oprofile/op_model_ppro.c +++ b/arch/x86/oprofile/op_model_ppro.c | |||
@@ -200,9 +200,9 @@ static void ppro_shutdown(struct op_msrs const * const msrs) | |||
200 | } | 200 | } |
201 | 201 | ||
202 | 202 | ||
203 | struct op_x86_model_spec const op_ppro_spec = { | 203 | struct op_x86_model_spec op_ppro_spec = { |
204 | .num_counters = 2, | 204 | .num_counters = 2, /* can be overriden */ |
205 | .num_controls = 2, | 205 | .num_controls = 2, /* dito */ |
206 | .fill_in_addresses = &ppro_fill_in_addresses, | 206 | .fill_in_addresses = &ppro_fill_in_addresses, |
207 | .setup_ctrs = &ppro_setup_ctrs, | 207 | .setup_ctrs = &ppro_setup_ctrs, |
208 | .check_ctrs = &ppro_check_ctrs, | 208 | .check_ctrs = &ppro_check_ctrs, |
@@ -238,6 +238,8 @@ void arch_perfmon_setup_counters(void) | |||
238 | 238 | ||
239 | op_arch_perfmon_spec.num_counters = num_counters; | 239 | op_arch_perfmon_spec.num_counters = num_counters; |
240 | op_arch_perfmon_spec.num_controls = num_counters; | 240 | op_arch_perfmon_spec.num_controls = num_counters; |
241 | op_ppro_spec.num_counters = num_counters; | ||
242 | op_ppro_spec.num_controls = num_counters; | ||
241 | } | 243 | } |
242 | 244 | ||
243 | struct op_x86_model_spec op_arch_perfmon_spec = { | 245 | struct op_x86_model_spec op_arch_perfmon_spec = { |
diff --git a/arch/x86/oprofile/op_x86_model.h b/arch/x86/oprofile/op_x86_model.h index 0b601893a4df..596de7a5559d 100644 --- a/arch/x86/oprofile/op_x86_model.h +++ b/arch/x86/oprofile/op_x86_model.h | |||
@@ -45,7 +45,7 @@ struct op_x86_model_spec { | |||
45 | void (*shutdown)(struct op_msrs const * const msrs); | 45 | void (*shutdown)(struct op_msrs const * const msrs); |
46 | }; | 46 | }; |
47 | 47 | ||
48 | extern struct op_x86_model_spec const op_ppro_spec; | 48 | extern struct op_x86_model_spec op_ppro_spec; |
49 | extern struct op_x86_model_spec const op_p4_spec; | 49 | extern struct op_x86_model_spec const op_p4_spec; |
50 | extern struct op_x86_model_spec const op_p4_ht2_spec; | 50 | extern struct op_x86_model_spec const op_p4_ht2_spec; |
51 | extern struct op_x86_model_spec const op_amd_spec; | 51 | extern struct op_x86_model_spec const op_amd_spec; |