~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/perf/util/event.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/perf/util/event.h (Version linux-6.12-rc7) and /tools/perf/util/event.h (Version linux-5.14.21)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef __PERF_RECORD_H                             2 #ifndef __PERF_RECORD_H
  3 #define __PERF_RECORD_H                             3 #define __PERF_RECORD_H
  4 /*                                                  4 /*
  5  * The linux/stddef.h isn't need here, but is       5  * The linux/stddef.h isn't need here, but is needed for __always_inline used
  6  * in files included from uapi/linux/perf_even      6  * in files included from uapi/linux/perf_event.h such as
  7  * /usr/include/linux/swab.h and /usr/include/      7  * /usr/include/linux/swab.h and /usr/include/linux/byteorder/little_endian.h,
  8  * detected in at least musl libc, used in Alp      8  * detected in at least musl libc, used in Alpine Linux. -acme
  9  */                                                 9  */
 10 #include <stdio.h>                                 10 #include <stdio.h>
 11 #include <linux/stddef.h>                          11 #include <linux/stddef.h>
 12 #include <perf/event.h>                            12 #include <perf/event.h>
 13 #include <linux/types.h>                           13 #include <linux/types.h>
 14                                                    14 
                                                   >>  15 #include "perf_regs.h"
                                                   >>  16 
 15 struct dso;                                        17 struct dso;
 16 struct machine;                                    18 struct machine;
 17 struct perf_event_attr;                            19 struct perf_event_attr;
 18 struct perf_sample;                            << 
 19                                                    20 
 20 #ifdef __LP64__                                    21 #ifdef __LP64__
 21 /*                                                 22 /*
 22  * /usr/include/inttypes.h uses just 'lu' for      23  * /usr/include/inttypes.h uses just 'lu' for PRIu64, but we end up defining
 23  * __u64 as long long unsigned int, and then -     24  * __u64 as long long unsigned int, and then -Werror=format= kicks in and
 24  * complains of the mismatched types, so use t     25  * complains of the mismatched types, so use these two special extra PRI
 25  * macros to overcome that.                        26  * macros to overcome that.
 26  */                                                27  */
 27 #define PRI_lu64 "l" PRIu64                        28 #define PRI_lu64 "l" PRIu64
 28 #define PRI_lx64 "l" PRIx64                        29 #define PRI_lx64 "l" PRIx64
 29 #define PRI_ld64 "l" PRId64                        30 #define PRI_ld64 "l" PRId64
 30 #else                                              31 #else
 31 #define PRI_lu64 PRIu64                            32 #define PRI_lu64 PRIu64
 32 #define PRI_lx64 PRIx64                            33 #define PRI_lx64 PRIx64
 33 #define PRI_ld64 PRId64                            34 #define PRI_ld64 PRId64
 34 #endif                                             35 #endif
 35                                                    36 
 36 #define PERF_SAMPLE_MASK                           37 #define PERF_SAMPLE_MASK                                \
 37         (PERF_SAMPLE_IP | PERF_SAMPLE_TID |        38         (PERF_SAMPLE_IP | PERF_SAMPLE_TID |             \
 38          PERF_SAMPLE_TIME | PERF_SAMPLE_ADDR |     39          PERF_SAMPLE_TIME | PERF_SAMPLE_ADDR |          \
 39         PERF_SAMPLE_ID | PERF_SAMPLE_STREAM_ID     40         PERF_SAMPLE_ID | PERF_SAMPLE_STREAM_ID |        \
 40          PERF_SAMPLE_CPU | PERF_SAMPLE_PERIOD      41          PERF_SAMPLE_CPU | PERF_SAMPLE_PERIOD |         \
 41          PERF_SAMPLE_IDENTIFIER)                   42          PERF_SAMPLE_IDENTIFIER)
 42                                                    43 
 43 /* perf sample has 16 bits size limit */           44 /* perf sample has 16 bits size limit */
 44 #define PERF_SAMPLE_MAX_SIZE (1 << 16)             45 #define PERF_SAMPLE_MAX_SIZE (1 << 16)
 45                                                    46 
                                                   >>  47 struct regs_dump {
                                                   >>  48         u64 abi;
                                                   >>  49         u64 mask;
                                                   >>  50         u64 *regs;
                                                   >>  51 
                                                   >>  52         /* Cached values/mask filled by first register access. */
                                                   >>  53         u64 cache_regs[PERF_REGS_MAX];
                                                   >>  54         u64 cache_mask;
                                                   >>  55 };
                                                   >>  56 
                                                   >>  57 struct stack_dump {
                                                   >>  58         u16 offset;
                                                   >>  59         u64 size;
                                                   >>  60         char *data;
                                                   >>  61 };
                                                   >>  62 
                                                   >>  63 struct sample_read_value {
                                                   >>  64         u64 value;
                                                   >>  65         u64 id;
                                                   >>  66 };
                                                   >>  67 
                                                   >>  68 struct sample_read {
                                                   >>  69         u64 time_enabled;
                                                   >>  70         u64 time_running;
                                                   >>  71         union {
                                                   >>  72                 struct {
                                                   >>  73                         u64 nr;
                                                   >>  74                         struct sample_read_value *values;
                                                   >>  75                 } group;
                                                   >>  76                 struct sample_read_value one;
                                                   >>  77         };
                                                   >>  78 };
                                                   >>  79 
 46 struct ip_callchain {                              80 struct ip_callchain {
 47         u64 nr;                                    81         u64 nr;
 48         u64 ips[];                                 82         u64 ips[];
 49 };                                                 83 };
 50                                                    84 
 51 struct branch_stack;                               85 struct branch_stack;
 52                                                    86 
 53 enum {                                             87 enum {
 54         PERF_IP_FLAG_BRANCH             = 1ULL     88         PERF_IP_FLAG_BRANCH             = 1ULL << 0,
 55         PERF_IP_FLAG_CALL               = 1ULL     89         PERF_IP_FLAG_CALL               = 1ULL << 1,
 56         PERF_IP_FLAG_RETURN             = 1ULL     90         PERF_IP_FLAG_RETURN             = 1ULL << 2,
 57         PERF_IP_FLAG_CONDITIONAL        = 1ULL     91         PERF_IP_FLAG_CONDITIONAL        = 1ULL << 3,
 58         PERF_IP_FLAG_SYSCALLRET         = 1ULL     92         PERF_IP_FLAG_SYSCALLRET         = 1ULL << 4,
 59         PERF_IP_FLAG_ASYNC              = 1ULL     93         PERF_IP_FLAG_ASYNC              = 1ULL << 5,
 60         PERF_IP_FLAG_INTERRUPT          = 1ULL     94         PERF_IP_FLAG_INTERRUPT          = 1ULL << 6,
 61         PERF_IP_FLAG_TX_ABORT           = 1ULL     95         PERF_IP_FLAG_TX_ABORT           = 1ULL << 7,
 62         PERF_IP_FLAG_TRACE_BEGIN        = 1ULL     96         PERF_IP_FLAG_TRACE_BEGIN        = 1ULL << 8,
 63         PERF_IP_FLAG_TRACE_END          = 1ULL     97         PERF_IP_FLAG_TRACE_END          = 1ULL << 9,
 64         PERF_IP_FLAG_IN_TX              = 1ULL     98         PERF_IP_FLAG_IN_TX              = 1ULL << 10,
 65         PERF_IP_FLAG_VMENTRY            = 1ULL     99         PERF_IP_FLAG_VMENTRY            = 1ULL << 11,
 66         PERF_IP_FLAG_VMEXIT             = 1ULL    100         PERF_IP_FLAG_VMEXIT             = 1ULL << 12,
 67         PERF_IP_FLAG_INTR_DISABLE       = 1ULL << 
 68         PERF_IP_FLAG_INTR_TOGGLE        = 1ULL << 
 69 };                                                101 };
 70                                                   102 
 71 #define PERF_IP_FLAG_CHARS "bcrosyiABExghDt"   !! 103 #define PERF_IP_FLAG_CHARS "bcrosyiABExgh"
 72                                                   104 
 73 #define PERF_BRANCH_MASK                (\        105 #define PERF_BRANCH_MASK                (\
 74         PERF_IP_FLAG_BRANCH             |\        106         PERF_IP_FLAG_BRANCH             |\
 75         PERF_IP_FLAG_CALL               |\        107         PERF_IP_FLAG_CALL               |\
 76         PERF_IP_FLAG_RETURN             |\        108         PERF_IP_FLAG_RETURN             |\
 77         PERF_IP_FLAG_CONDITIONAL        |\        109         PERF_IP_FLAG_CONDITIONAL        |\
 78         PERF_IP_FLAG_SYSCALLRET         |\        110         PERF_IP_FLAG_SYSCALLRET         |\
 79         PERF_IP_FLAG_ASYNC              |\        111         PERF_IP_FLAG_ASYNC              |\
 80         PERF_IP_FLAG_INTERRUPT          |\        112         PERF_IP_FLAG_INTERRUPT          |\
 81         PERF_IP_FLAG_TX_ABORT           |\        113         PERF_IP_FLAG_TX_ABORT           |\
 82         PERF_IP_FLAG_TRACE_BEGIN        |\        114         PERF_IP_FLAG_TRACE_BEGIN        |\
 83         PERF_IP_FLAG_TRACE_END          |\        115         PERF_IP_FLAG_TRACE_END          |\
 84         PERF_IP_FLAG_VMENTRY            |\        116         PERF_IP_FLAG_VMENTRY            |\
 85         PERF_IP_FLAG_VMEXIT)                      117         PERF_IP_FLAG_VMEXIT)
 86                                                   118 
                                                   >> 119 #define MAX_INSN 16
                                                   >> 120 
                                                   >> 121 struct aux_sample {
                                                   >> 122         u64 size;
                                                   >> 123         void *data;
                                                   >> 124 };
                                                   >> 125 
                                                   >> 126 struct perf_sample {
                                                   >> 127         u64 ip;
                                                   >> 128         u32 pid, tid;
                                                   >> 129         u64 time;
                                                   >> 130         u64 addr;
                                                   >> 131         u64 id;
                                                   >> 132         u64 stream_id;
                                                   >> 133         u64 period;
                                                   >> 134         u64 weight;
                                                   >> 135         u64 transaction;
                                                   >> 136         u64 insn_cnt;
                                                   >> 137         u64 cyc_cnt;
                                                   >> 138         u32 cpu;
                                                   >> 139         u32 raw_size;
                                                   >> 140         u64 data_src;
                                                   >> 141         u64 phys_addr;
                                                   >> 142         u64 data_page_size;
                                                   >> 143         u64 code_page_size;
                                                   >> 144         u64 cgroup;
                                                   >> 145         u32 flags;
                                                   >> 146         u16 insn_len;
                                                   >> 147         u8  cpumode;
                                                   >> 148         u16 misc;
                                                   >> 149         u16 ins_lat;
                                                   >> 150         u16 p_stage_cyc;
                                                   >> 151         bool no_hw_idx;         /* No hw_idx collected in branch_stack */
                                                   >> 152         char insn[MAX_INSN];
                                                   >> 153         void *raw_data;
                                                   >> 154         struct ip_callchain *callchain;
                                                   >> 155         struct branch_stack *branch_stack;
                                                   >> 156         struct regs_dump  user_regs;
                                                   >> 157         struct regs_dump  intr_regs;
                                                   >> 158         struct stack_dump user_stack;
                                                   >> 159         struct sample_read read;
                                                   >> 160         struct aux_sample aux_sample;
                                                   >> 161 };
                                                   >> 162 
 87 #define PERF_MEM_DATA_SRC_NONE \                  163 #define PERF_MEM_DATA_SRC_NONE \
 88         (PERF_MEM_S(OP, NA) |\                    164         (PERF_MEM_S(OP, NA) |\
 89          PERF_MEM_S(LVL, NA) |\                   165          PERF_MEM_S(LVL, NA) |\
 90          PERF_MEM_S(SNOOP, NA) |\                 166          PERF_MEM_S(SNOOP, NA) |\
 91          PERF_MEM_S(LOCK, NA) |\                  167          PERF_MEM_S(LOCK, NA) |\
 92          PERF_MEM_S(TLB, NA) |\                !! 168          PERF_MEM_S(TLB, NA))
 93          PERF_MEM_S(LVLNUM, NA))               << 
 94                                                   169 
 95 /* Attribute type for custom synthesized event    170 /* Attribute type for custom synthesized events */
 96 #define PERF_TYPE_SYNTH         (INT_MAX + 1U)    171 #define PERF_TYPE_SYNTH         (INT_MAX + 1U)
 97                                                   172 
 98 /* Attribute config for custom synthesized eve    173 /* Attribute config for custom synthesized events */
 99 enum perf_synth_id {                              174 enum perf_synth_id {
100         PERF_SYNTH_INTEL_PTWRITE,                 175         PERF_SYNTH_INTEL_PTWRITE,
101         PERF_SYNTH_INTEL_MWAIT,                   176         PERF_SYNTH_INTEL_MWAIT,
102         PERF_SYNTH_INTEL_PWRE,                    177         PERF_SYNTH_INTEL_PWRE,
103         PERF_SYNTH_INTEL_EXSTOP,                  178         PERF_SYNTH_INTEL_EXSTOP,
104         PERF_SYNTH_INTEL_PWRX,                    179         PERF_SYNTH_INTEL_PWRX,
105         PERF_SYNTH_INTEL_CBR,                     180         PERF_SYNTH_INTEL_CBR,
106         PERF_SYNTH_INTEL_PSB,                     181         PERF_SYNTH_INTEL_PSB,
107         PERF_SYNTH_INTEL_EVT,                  << 
108         PERF_SYNTH_INTEL_IFLAG_CHG,            << 
109 };                                                182 };
110                                                   183 
111 /*                                                184 /*
112  * Raw data formats for synthesized events. No    185  * Raw data formats for synthesized events. Note that 4 bytes of padding are
113  * present to match the 'size' member of PERF_    186  * present to match the 'size' member of PERF_SAMPLE_RAW data which is always
114  * 8-byte aligned. That means we must derefere    187  * 8-byte aligned. That means we must dereference raw_data with an offset of 4.
115  * Refer perf_sample__synth_ptr() and perf_syn    188  * Refer perf_sample__synth_ptr() and perf_synth__raw_data().  It also means the
116  * structure sizes are 4 bytes bigger than the    189  * structure sizes are 4 bytes bigger than the raw_size, refer
117  * perf_synth__raw_size().                        190  * perf_synth__raw_size().
118  */                                               191  */
119                                                   192 
120 struct perf_synth_intel_ptwrite {                 193 struct perf_synth_intel_ptwrite {
121         u32 padding;                              194         u32 padding;
122         union {                                   195         union {
123                 struct {                          196                 struct {
124                         u32     ip                197                         u32     ip              :  1,
125                                 reserved          198                                 reserved        : 31;
126                 };                                199                 };
127                 u32     flags;                    200                 u32     flags;
128         };                                        201         };
129         u64     payload;                          202         u64     payload;
130 };                                                203 };
131                                                   204 
132 struct perf_synth_intel_mwait {                   205 struct perf_synth_intel_mwait {
133         u32 padding;                              206         u32 padding;
134         u32 reserved;                             207         u32 reserved;
135         union {                                   208         union {
136                 struct {                          209                 struct {
137                         u64     hints             210                         u64     hints           :  8,
138                                 reserved1         211                                 reserved1       : 24,
139                                 extensions        212                                 extensions      :  2,
140                                 reserved2         213                                 reserved2       : 30;
141                 };                                214                 };
142                 u64     payload;                  215                 u64     payload;
143         };                                        216         };
144 };                                                217 };
145                                                   218 
146 struct perf_synth_intel_pwre {                    219 struct perf_synth_intel_pwre {
147         u32 padding;                              220         u32 padding;
148         u32 reserved;                             221         u32 reserved;
149         union {                                   222         union {
150                 struct {                          223                 struct {
151                         u64     reserved1         224                         u64     reserved1       :  7,
152                                 hw                225                                 hw              :  1,
153                                 subcstate         226                                 subcstate       :  4,
154                                 cstate            227                                 cstate          :  4,
155                                 reserved2         228                                 reserved2       : 48;
156                 };                                229                 };
157                 u64     payload;                  230                 u64     payload;
158         };                                        231         };
159 };                                                232 };
160                                                   233 
161 struct perf_synth_intel_exstop {                  234 struct perf_synth_intel_exstop {
162         u32 padding;                              235         u32 padding;
163         union {                                   236         union {
164                 struct {                          237                 struct {
165                         u32     ip                238                         u32     ip              :  1,
166                                 reserved          239                                 reserved        : 31;
167                 };                                240                 };
168                 u32     flags;                    241                 u32     flags;
169         };                                        242         };
170 };                                                243 };
171                                                   244 
172 struct perf_synth_intel_pwrx {                    245 struct perf_synth_intel_pwrx {
173         u32 padding;                              246         u32 padding;
174         u32 reserved;                             247         u32 reserved;
175         union {                                   248         union {
176                 struct {                          249                 struct {
177                         u64     deepest_cstate    250                         u64     deepest_cstate  :  4,
178                                 last_cstate       251                                 last_cstate     :  4,
179                                 wake_reason       252                                 wake_reason     :  4,
180                                 reserved1         253                                 reserved1       : 52;
181                 };                                254                 };
182                 u64     payload;                  255                 u64     payload;
183         };                                        256         };
184 };                                                257 };
185                                                   258 
186 struct perf_synth_intel_cbr {                     259 struct perf_synth_intel_cbr {
187         u32 padding;                              260         u32 padding;
188         union {                                   261         union {
189                 struct {                          262                 struct {
190                         u32     cbr               263                         u32     cbr             :  8,
191                                 reserved1         264                                 reserved1       :  8,
192                                 max_nonturbo      265                                 max_nonturbo    :  8,
193                                 reserved2         266                                 reserved2       :  8;
194                 };                                267                 };
195                 u32     flags;                    268                 u32     flags;
196         };                                        269         };
197         u32 freq;                                 270         u32 freq;
198         u32 reserved3;                            271         u32 reserved3;
199 };                                                272 };
200                                                   273 
201 struct perf_synth_intel_psb {                     274 struct perf_synth_intel_psb {
202         u32 padding;                              275         u32 padding;
203         u32 reserved;                             276         u32 reserved;
204         u64 offset;                               277         u64 offset;
205 };                                                278 };
206                                                   279 
207 struct perf_synth_intel_evd {                  !! 280 /*
208         union {                                !! 281  * raw_data is always 4 bytes from an 8-byte boundary, so subtract 4 to get
209                 struct {                       !! 282  * 8-byte alignment.
210                         u8      evd_type;      !! 283  */
211                         u8      reserved[7];   !! 284 static inline void *perf_sample__synth_ptr(struct perf_sample *sample)
212                 };                             !! 285 {
213                 u64     et;                    !! 286         return sample->raw_data - 4;
214         };                                     !! 287 }
215         u64     payload;                       << 
216 };                                             << 
217                                                << 
218 /* Intel PT Event Trace */                     << 
219 struct perf_synth_intel_evt {                  << 
220         u32 padding;                           << 
221         union {                                << 
222                 struct {                       << 
223                         u32     type           << 
224                                 reserved       << 
225                                 ip             << 
226                                 vector         << 
227                                 evd_cnt        << 
228                 };                             << 
229                 u32     cfe;                   << 
230         };                                     << 
231         struct perf_synth_intel_evd evd[0];    << 
232 };                                             << 
233                                                << 
234 struct perf_synth_intel_iflag_chg {            << 
235         u32 padding;                           << 
236         union {                                << 
237                 struct {                       << 
238                         u32     iflag          << 
239                                 via_branch     << 
240                 };                             << 
241                 u32     flags;                 << 
242         };                                     << 
243         u64     branch_ip; /* If via_branch */ << 
244 };                                             << 
245                                                   288 
246 static inline void *perf_synth__raw_data(void     289 static inline void *perf_synth__raw_data(void *p)
247 {                                                 290 {
248         return p + 4;                             291         return p + 4;
249 }                                                 292 }
250                                                   293 
251 #define perf_synth__raw_size(d) (sizeof(d) - 4    294 #define perf_synth__raw_size(d) (sizeof(d) - 4)
252                                                   295 
253 #define perf_sample__bad_synth_size(s, d) ((s)    296 #define perf_sample__bad_synth_size(s, d) ((s)->raw_size < sizeof(d) - 4)
254                                                   297 
255 enum {                                            298 enum {
256         PERF_STAT_ROUND_TYPE__INTERVAL  = 0,      299         PERF_STAT_ROUND_TYPE__INTERVAL  = 0,
257         PERF_STAT_ROUND_TYPE__FINAL     = 1,      300         PERF_STAT_ROUND_TYPE__FINAL     = 1,
258 };                                                301 };
259                                                   302 
260 void perf_event__print_totals(void);              303 void perf_event__print_totals(void);
261                                                   304 
262 struct perf_cpu_map;                              305 struct perf_cpu_map;
263 struct perf_record_stat_config;                   306 struct perf_record_stat_config;
264 struct perf_stat_config;                          307 struct perf_stat_config;
265 struct perf_tool;                                 308 struct perf_tool;
266                                                   309 
267 void perf_event__read_stat_config(struct perf_    310 void perf_event__read_stat_config(struct perf_stat_config *config,
268                                   struct perf_    311                                   struct perf_record_stat_config *event);
269                                                   312 
270 int perf_event__process_comm(const struct perf !! 313 int perf_event__process_comm(struct perf_tool *tool,
271                              union perf_event     314                              union perf_event *event,
272                              struct perf_sampl    315                              struct perf_sample *sample,
273                              struct machine *m    316                              struct machine *machine);
274 int perf_event__process_lost(const struct perf !! 317 int perf_event__process_lost(struct perf_tool *tool,
275                              union perf_event     318                              union perf_event *event,
276                              struct perf_sampl    319                              struct perf_sample *sample,
277                              struct machine *m    320                              struct machine *machine);
278 int perf_event__process_lost_samples(const str !! 321 int perf_event__process_lost_samples(struct perf_tool *tool,
279                                      union per    322                                      union perf_event *event,
280                                      struct pe    323                                      struct perf_sample *sample,
281                                      struct ma    324                                      struct machine *machine);
282 int perf_event__process_aux(const struct perf_ !! 325 int perf_event__process_aux(struct perf_tool *tool,
283                             union perf_event *    326                             union perf_event *event,
284                             struct perf_sample    327                             struct perf_sample *sample,
285                             struct machine *ma    328                             struct machine *machine);
286 int perf_event__process_itrace_start(const str !! 329 int perf_event__process_itrace_start(struct perf_tool *tool,
287                                      union per    330                                      union perf_event *event,
288                                      struct pe    331                                      struct perf_sample *sample,
289                                      struct ma    332                                      struct machine *machine);
290 int perf_event__process_aux_output_hw_id(const !! 333 int perf_event__process_switch(struct perf_tool *tool,
291                                          union << 
292                                          struc << 
293                                          struc << 
294 int perf_event__process_switch(const struct pe << 
295                                union perf_even    334                                union perf_event *event,
296                                struct perf_sam    335                                struct perf_sample *sample,
297                                struct machine     336                                struct machine *machine);
298 int perf_event__process_namespaces(const struc !! 337 int perf_event__process_namespaces(struct perf_tool *tool,
299                                    union perf_    338                                    union perf_event *event,
300                                    struct perf    339                                    struct perf_sample *sample,
301                                    struct mach    340                                    struct machine *machine);
302 int perf_event__process_cgroup(const struct pe !! 341 int perf_event__process_cgroup(struct perf_tool *tool,
303                                union perf_even    342                                union perf_event *event,
304                                struct perf_sam    343                                struct perf_sample *sample,
305                                struct machine     344                                struct machine *machine);
306 int perf_event__process_mmap(const struct perf !! 345 int perf_event__process_mmap(struct perf_tool *tool,
307                              union perf_event     346                              union perf_event *event,
308                              struct perf_sampl    347                              struct perf_sample *sample,
309                              struct machine *m    348                              struct machine *machine);
310 int perf_event__process_mmap2(const struct per !! 349 int perf_event__process_mmap2(struct perf_tool *tool,
311                              union perf_event     350                              union perf_event *event,
312                              struct perf_sampl    351                              struct perf_sample *sample,
313                              struct machine *m    352                              struct machine *machine);
314 int perf_event__process_fork(const struct perf !! 353 int perf_event__process_fork(struct perf_tool *tool,
315                              union perf_event     354                              union perf_event *event,
316                              struct perf_sampl    355                              struct perf_sample *sample,
317                              struct machine *m    356                              struct machine *machine);
318 int perf_event__process_exit(const struct perf !! 357 int perf_event__process_exit(struct perf_tool *tool,
319                              union perf_event     358                              union perf_event *event,
320                              struct perf_sampl    359                              struct perf_sample *sample,
321                              struct machine *m    360                              struct machine *machine);
322 int perf_event__exit_del_thread(const struct p !! 361 int perf_event__process_ksymbol(struct perf_tool *tool,
323                                 union perf_eve    362                                 union perf_event *event,
324                                 struct perf_sa    363                                 struct perf_sample *sample,
325                                 struct machine    364                                 struct machine *machine);
326 int perf_event__process_ksymbol(const struct p !! 365 int perf_event__process_bpf(struct perf_tool *tool,
327                                 union perf_eve << 
328                                 struct perf_sa << 
329                                 struct machine << 
330 int perf_event__process_bpf(const struct perf_ << 
331                             union perf_event *    366                             union perf_event *event,
332                             struct perf_sample    367                             struct perf_sample *sample,
333                             struct machine *ma    368                             struct machine *machine);
334 int perf_event__process_text_poke(const struct !! 369 int perf_event__process_text_poke(struct perf_tool *tool,
335                                   union perf_e    370                                   union perf_event *event,
336                                   struct perf_    371                                   struct perf_sample *sample,
337                                   struct machi    372                                   struct machine *machine);
338 int perf_event__process(const struct perf_tool !! 373 int perf_event__process(struct perf_tool *tool,
339                         union perf_event *even    374                         union perf_event *event,
340                         struct perf_sample *sa    375                         struct perf_sample *sample,
341                         struct machine *machin    376                         struct machine *machine);
342                                                   377 
                                                   >> 378 struct addr_location;
                                                   >> 379 
                                                   >> 380 int machine__resolve(struct machine *machine, struct addr_location *al,
                                                   >> 381                      struct perf_sample *sample);
                                                   >> 382 
                                                   >> 383 void addr_location__put(struct addr_location *al);
                                                   >> 384 
                                                   >> 385 struct thread;
                                                   >> 386 
343 bool is_bts_event(struct perf_event_attr *attr    387 bool is_bts_event(struct perf_event_attr *attr);
344 bool sample_addr_correlates_sym(struct perf_ev    388 bool sample_addr_correlates_sym(struct perf_event_attr *attr);
                                                   >> 389 void thread__resolve(struct thread *thread, struct addr_location *al,
                                                   >> 390                      struct perf_sample *sample);
345                                                   391 
346 const char *perf_event__name(unsigned int id);    392 const char *perf_event__name(unsigned int id);
347                                                   393 
348 size_t perf_event__fprintf_comm(union perf_eve    394 size_t perf_event__fprintf_comm(union perf_event *event, FILE *fp);
349 size_t perf_event__fprintf_mmap(union perf_eve    395 size_t perf_event__fprintf_mmap(union perf_event *event, FILE *fp);
350 size_t perf_event__fprintf_mmap2(union perf_ev    396 size_t perf_event__fprintf_mmap2(union perf_event *event, FILE *fp);
351 size_t perf_event__fprintf_task(union perf_eve    397 size_t perf_event__fprintf_task(union perf_event *event, FILE *fp);
352 size_t perf_event__fprintf_aux(union perf_even    398 size_t perf_event__fprintf_aux(union perf_event *event, FILE *fp);
353 size_t perf_event__fprintf_itrace_start(union     399 size_t perf_event__fprintf_itrace_start(union perf_event *event, FILE *fp);
354 size_t perf_event__fprintf_aux_output_hw_id(un << 
355 size_t perf_event__fprintf_switch(union perf_e    400 size_t perf_event__fprintf_switch(union perf_event *event, FILE *fp);
356 size_t perf_event__fprintf_thread_map(union pe    401 size_t perf_event__fprintf_thread_map(union perf_event *event, FILE *fp);
357 size_t perf_event__fprintf_cpu_map(union perf_    402 size_t perf_event__fprintf_cpu_map(union perf_event *event, FILE *fp);
358 size_t perf_event__fprintf_namespaces(union pe    403 size_t perf_event__fprintf_namespaces(union perf_event *event, FILE *fp);
359 size_t perf_event__fprintf_cgroup(union perf_e    404 size_t perf_event__fprintf_cgroup(union perf_event *event, FILE *fp);
360 size_t perf_event__fprintf_ksymbol(union perf_    405 size_t perf_event__fprintf_ksymbol(union perf_event *event, FILE *fp);
361 size_t perf_event__fprintf_bpf(union perf_even    406 size_t perf_event__fprintf_bpf(union perf_event *event, FILE *fp);
362 size_t perf_event__fprintf_text_poke(union per    407 size_t perf_event__fprintf_text_poke(union perf_event *event, struct machine *machine,FILE *fp);
363 size_t perf_event__fprintf(union perf_event *e    408 size_t perf_event__fprintf(union perf_event *event, struct machine *machine, FILE *fp);
364                                                   409 
365 int kallsyms__get_function_start(const char *k    410 int kallsyms__get_function_start(const char *kallsyms_filename,
366                                  const char *s    411                                  const char *symbol_name, u64 *addr);
367 int kallsyms__get_symbol_start(const char *kal !! 412 
368                                const char *sym !! 413 void *cpu_map_data__alloc(struct perf_cpu_map *map, size_t *size, u16 *type, int *max);
                                                   >> 414 void  cpu_map_data__synthesize(struct perf_record_cpu_map_data *data, struct perf_cpu_map *map,
                                                   >> 415                                u16 type, int max);
369                                                   416 
370 void event_attr_init(struct perf_event_attr *a    417 void event_attr_init(struct perf_event_attr *attr);
371                                                   418 
372 int perf_event_paranoid(void);                    419 int perf_event_paranoid(void);
373 bool perf_event_paranoid_check(int max_level);    420 bool perf_event_paranoid_check(int max_level);
374                                                   421 
375 extern int sysctl_perf_event_max_stack;           422 extern int sysctl_perf_event_max_stack;
376 extern int sysctl_perf_event_max_contexts_per_    423 extern int sysctl_perf_event_max_contexts_per_stack;
377 extern unsigned int proc_map_timeout;             424 extern unsigned int proc_map_timeout;
378                                                   425 
379 #define PAGE_SIZE_NAME_LEN      32                426 #define PAGE_SIZE_NAME_LEN      32
380 char *get_page_size_name(u64 size, char *str);    427 char *get_page_size_name(u64 size, char *str);
381                                                   428 
382 void arch_perf_parse_sample_weight(struct perf    429 void arch_perf_parse_sample_weight(struct perf_sample *data, const __u64 *array, u64 type);
383 void arch_perf_synthesize_sample_weight(const     430 void arch_perf_synthesize_sample_weight(const struct perf_sample *data, __u64 *array, u64 type);
384 const char *arch_perf_header_entry(const char     431 const char *arch_perf_header_entry(const char *se_header);
385 int arch_support_sort_key(const char *sort_key    432 int arch_support_sort_key(const char *sort_key);
386                                                << 
387 static inline bool perf_event_header__cpumode_ << 
388 {                                              << 
389         return cpumode == PERF_RECORD_MISC_GUE << 
390                cpumode == PERF_RECORD_MISC_GUE << 
391 }                                              << 
392                                                << 
393 static inline bool perf_event_header__misc_is_ << 
394 {                                              << 
395         return perf_event_header__cpumode_is_g << 
396 }                                              << 
397                                                << 
398 static inline bool perf_event_header__is_guest << 
399 {                                              << 
400         return perf_event_header__misc_is_gues << 
401 }                                              << 
402                                                << 
403 static inline bool perf_event__is_guest(const  << 
404 {                                              << 
405         return perf_event_header__is_guest(&ev << 
406 }                                              << 
407                                                   433 
408 #endif /* __PERF_RECORD_H */                      434 #endif /* __PERF_RECORD_H */
409                                                   435 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php