~ [ 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 (Architecture mips) and /tools/perf/util/event.h (Architecture sparc64)


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

~ [ 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