aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/ds.h
diff options
context:
space:
mode:
authorMarkus Metzger <markus.t.metzger@intel.com>2009-04-03 10:43:52 -0400
committerIngo Molnar <mingo@elte.hu>2009-04-07 07:36:36 -0400
commit017bc617657c928cb9a0c45a7a7e9f4e66695347 (patch)
tree6e9b3976517fb116119a9b7f91dfdab314bbbf5a /arch/x86/include/asm/ds.h
parent150f5164c1258e05b7dea16f29e592f354c48f34 (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.h12
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 {
234struct pebs_trace { 234struct 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 */
275extern int ds_set_pebs_reset(struct pebs_tracer *tracer, u64 value); 280extern int ds_set_pebs_reset(struct pebs_tracer *tracer,
281 unsigned int counter, u64 value);
276 282
277/* 283/*
278 * Initialization 284 * Initialization