| .. | .. |
|---|
| 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 */ |
|---|