diff options
author | Markus Metzger <markus.t.metzger@intel.com> | 2009-04-03 10:43:52 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-04-07 07:36:36 -0400 |
commit | 017bc617657c928cb9a0c45a7a7e9f4e66695347 (patch) | |
tree | 6e9b3976517fb116119a9b7f91dfdab314bbbf5a /arch/x86/include/asm/ds.h | |
parent | 150f5164c1258e05b7dea16f29e592f354c48f34 (diff) |
x86, ds: support Core i7
Add debug store support for Core i7.
Core i7 adds a reset value for each performance counter and a new
PEBS record format.
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
Cc: roland@redhat.com
Cc: eranian@googlemail.com
Cc: oleg@redhat.com
Cc: juan.villacis@intel.com
Cc: ak@linux.jf.intel.com
LKML-Reference: <20090403144607.088997000@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/include/asm/ds.h')
-rw-r--r-- | arch/x86/include/asm/ds.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/x86/include/asm/ds.h b/arch/x86/include/asm/ds.h index 149e5208e967..70dac199b093 100644 --- a/arch/x86/include/asm/ds.h +++ b/arch/x86/include/asm/ds.h | |||
@@ -234,8 +234,12 @@ struct bts_trace { | |||
234 | struct pebs_trace { | 234 | struct pebs_trace { |
235 | struct ds_trace ds; | 235 | struct ds_trace ds; |
236 | 236 | ||
237 | /* the PEBS reset value */ | 237 | /* the number of valid counters in the below array */ |
238 | unsigned long long reset_value; | 238 | unsigned int counters; |
239 | |||
240 | #define MAX_PEBS_COUNTERS 4 | ||
241 | /* the counter reset value */ | ||
242 | unsigned long long counter_reset[MAX_PEBS_COUNTERS]; | ||
239 | }; | 243 | }; |
240 | 244 | ||
241 | 245 | ||
@@ -270,9 +274,11 @@ extern int ds_reset_pebs(struct pebs_tracer *tracer); | |||
270 | * Returns 0 on success; -Eerrno on error | 274 | * Returns 0 on success; -Eerrno on error |
271 | * | 275 | * |
272 | * tracer: the tracer handle returned from ds_request_pebs() | 276 | * tracer: the tracer handle returned from ds_request_pebs() |
277 | * counter: the index of the counter | ||
273 | * value: the new counter reset value | 278 | * value: the new counter reset value |
274 | */ | 279 | */ |
275 | extern int ds_set_pebs_reset(struct pebs_tracer *tracer, u64 value); | 280 | extern int ds_set_pebs_reset(struct pebs_tracer *tracer, |
281 | unsigned int counter, u64 value); | ||
276 | 282 | ||
277 | /* | 283 | /* |
278 | * Initialization | 284 | * Initialization |