.. | .. |
---|
12 | 12 | |
---|
13 | 13 | #include <linux/perf_event.h> |
---|
14 | 14 | #include <linux/device.h> |
---|
15 | | -#include <asm/cpu_mf.h> |
---|
| 15 | +#include <asm/stacktrace.h> |
---|
16 | 16 | |
---|
17 | 17 | /* Per-CPU flags for PMU states */ |
---|
18 | 18 | #define PMU_F_RESERVED 0x1000 |
---|
.. | .. |
---|
55 | 55 | #define PERF_CPUM_SF_MAX_CTR 2 |
---|
56 | 56 | #define PERF_EVENT_CPUM_SF 0xB0000UL /* Event: Basic-sampling */ |
---|
57 | 57 | #define PERF_EVENT_CPUM_SF_DIAG 0xBD000UL /* Event: Combined-sampling */ |
---|
| 58 | +#define PERF_EVENT_CPUM_CF_DIAG 0xBC000UL /* Event: Counter sets */ |
---|
58 | 59 | #define PERF_CPUM_SF_BASIC_MODE 0x0001 /* Basic-sampling flag */ |
---|
59 | 60 | #define PERF_CPUM_SF_DIAG_MODE 0x0002 /* Diagnostic-sampling flag */ |
---|
60 | 61 | #define PERF_CPUM_SF_MODE_MASK (PERF_CPUM_SF_BASIC_MODE| \ |
---|
61 | 62 | PERF_CPUM_SF_DIAG_MODE) |
---|
62 | 63 | #define PERF_CPUM_SF_FULL_BLOCKS 0x0004 /* Process full SDBs only */ |
---|
| 64 | +#define PERF_CPUM_SF_FREQ_MODE 0x0008 /* Sampling with frequency */ |
---|
63 | 65 | |
---|
64 | 66 | #define REG_NONE 0 |
---|
65 | 67 | #define REG_OVERFLOW 1 |
---|
.. | .. |
---|
70 | 72 | #define SAMPL_FLAGS(hwc) ((hwc)->config_base) |
---|
71 | 73 | #define SAMPL_DIAG_MODE(hwc) (SAMPL_FLAGS(hwc) & PERF_CPUM_SF_DIAG_MODE) |
---|
72 | 74 | #define SDB_FULL_BLOCKS(hwc) (SAMPL_FLAGS(hwc) & PERF_CPUM_SF_FULL_BLOCKS) |
---|
| 75 | +#define SAMPLE_FREQ_MODE(hwc) (SAMPL_FLAGS(hwc) & PERF_CPUM_SF_FREQ_MODE) |
---|
| 76 | + |
---|
| 77 | +#define perf_arch_fetch_caller_regs(regs, __ip) do { \ |
---|
| 78 | + (regs)->psw.addr = (__ip); \ |
---|
| 79 | + (regs)->gprs[15] = (unsigned long)__builtin_frame_address(0) - \ |
---|
| 80 | + offsetof(struct stack_frame, back_chain); \ |
---|
| 81 | +} while (0) |
---|
73 | 82 | |
---|
74 | 83 | #endif /* _ASM_S390_PERF_EVENT_H */ |
---|