|
@@ -85,13 +85,15 @@ struct amd_nb {
|
|
|
* Flags PEBS can handle without an PMI.
|
|
|
*
|
|
|
* TID can only be handled by flushing at context switch.
|
|
|
+ * REGS_USER can be handled for events limited to ring 3.
|
|
|
*
|
|
|
*/
|
|
|
#define PEBS_FREERUNNING_FLAGS \
|
|
|
(PERF_SAMPLE_IP | PERF_SAMPLE_TID | PERF_SAMPLE_ADDR | \
|
|
|
PERF_SAMPLE_ID | PERF_SAMPLE_CPU | PERF_SAMPLE_STREAM_ID | \
|
|
|
PERF_SAMPLE_DATA_SRC | PERF_SAMPLE_IDENTIFIER | \
|
|
|
- PERF_SAMPLE_TRANSACTION | PERF_SAMPLE_PHYS_ADDR)
|
|
|
+ PERF_SAMPLE_TRANSACTION | PERF_SAMPLE_PHYS_ADDR | \
|
|
|
+ PERF_SAMPLE_REGS_INTR | PERF_SAMPLE_REGS_USER)
|
|
|
|
|
|
/*
|
|
|
* A debug store configuration.
|
|
@@ -110,6 +112,26 @@ struct debug_store {
|
|
|
u64 pebs_event_reset[MAX_PEBS_EVENTS];
|
|
|
};
|
|
|
|
|
|
+#define PEBS_REGS \
|
|
|
+ (PERF_REG_X86_AX | \
|
|
|
+ PERF_REG_X86_BX | \
|
|
|
+ PERF_REG_X86_CX | \
|
|
|
+ PERF_REG_X86_DX | \
|
|
|
+ PERF_REG_X86_DI | \
|
|
|
+ PERF_REG_X86_SI | \
|
|
|
+ PERF_REG_X86_SP | \
|
|
|
+ PERF_REG_X86_BP | \
|
|
|
+ PERF_REG_X86_IP | \
|
|
|
+ PERF_REG_X86_FLAGS | \
|
|
|
+ PERF_REG_X86_R8 | \
|
|
|
+ PERF_REG_X86_R9 | \
|
|
|
+ PERF_REG_X86_R10 | \
|
|
|
+ PERF_REG_X86_R11 | \
|
|
|
+ PERF_REG_X86_R12 | \
|
|
|
+ PERF_REG_X86_R13 | \
|
|
|
+ PERF_REG_X86_R14 | \
|
|
|
+ PERF_REG_X86_R15)
|
|
|
+
|
|
|
/*
|
|
|
* Per register state.
|
|
|
*/
|