• Home
  • Raw
  • Download

Lines Matching full:event

14 #include "event.h"
92 union perf_event *event, in perf_tool__process_synth_event() argument
103 .cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK, in perf_tool__process_synth_event()
106 return process(tool, event, &synth_sample, machine); in perf_tool__process_synth_event()
183 static int perf_event__prepare_comm(union perf_event *event, pid_t pid, in perf_event__prepare_comm() argument
191 memset(&event->comm, 0, sizeof(event->comm)); in perf_event__prepare_comm()
194 if (perf_event__get_comm_ids(pid, event->comm.comm, in perf_event__prepare_comm()
195 sizeof(event->comm.comm), in perf_event__prepare_comm()
206 event->comm.pid = *tgid; in perf_event__prepare_comm()
207 event->comm.header.type = PERF_RECORD_COMM; in perf_event__prepare_comm()
209 size = strlen(event->comm.comm) + 1; in perf_event__prepare_comm()
211 memset(event->comm.comm + size, 0, machine->id_hdr_size); in perf_event__prepare_comm()
212 event->comm.header.size = (sizeof(event->comm) - in perf_event__prepare_comm()
213 (sizeof(event->comm.comm) - size) + in perf_event__prepare_comm()
215 event->comm.tid = pid; in perf_event__prepare_comm()
221 union perf_event *event, pid_t pid, in perf_event__synthesize_comm() argument
227 if (perf_event__prepare_comm(event, pid, machine, &tgid, &ppid) != 0) in perf_event__synthesize_comm()
230 if (perf_tool__process_synth_event(tool, event, machine, process) != 0) in perf_event__synthesize_comm()
250 union perf_event *event, in perf_event__synthesize_namespaces() argument
261 memset(&event->namespaces, 0, (sizeof(event->namespaces) + in perf_event__synthesize_namespaces()
265 event->namespaces.pid = tgid; in perf_event__synthesize_namespaces()
266 event->namespaces.tid = pid; in perf_event__synthesize_namespaces()
268 event->namespaces.nr_namespaces = NR_NAMESPACES; in perf_event__synthesize_namespaces()
270 ns_link_info = event->namespaces.link_info; in perf_event__synthesize_namespaces()
272 for (idx = 0; idx < event->namespaces.nr_namespaces; idx++) in perf_event__synthesize_namespaces()
276 event->namespaces.header.type = PERF_RECORD_NAMESPACES; in perf_event__synthesize_namespaces()
278 event->namespaces.header.size = (sizeof(event->namespaces) + in perf_event__synthesize_namespaces()
282 if (perf_tool__process_synth_event(tool, event, machine, process) != 0) in perf_event__synthesize_namespaces()
289 union perf_event *event, in perf_event__synthesize_fork() argument
294 memset(&event->fork, 0, sizeof(event->fork) + machine->id_hdr_size); in perf_event__synthesize_fork()
302 event->fork.ppid = ppid; in perf_event__synthesize_fork()
303 event->fork.ptid = ppid; in perf_event__synthesize_fork()
305 event->fork.ppid = tgid; in perf_event__synthesize_fork()
306 event->fork.ptid = tgid; in perf_event__synthesize_fork()
308 event->fork.pid = tgid; in perf_event__synthesize_fork()
309 event->fork.tid = pid; in perf_event__synthesize_fork()
310 event->fork.header.type = PERF_RECORD_FORK; in perf_event__synthesize_fork()
312 event->fork.header.size = (sizeof(event->fork) + machine->id_hdr_size); in perf_event__synthesize_fork()
314 if (perf_tool__process_synth_event(tool, event, machine, process) != 0) in perf_event__synthesize_fork()
321 union perf_event *event, in perf_event__synthesize_mmap_events() argument
352 event->header.type = PERF_RECORD_MMAP2; in perf_event__synthesize_mmap_events()
381 &event->mmap2.start, &event->mmap2.len, prot, in perf_event__synthesize_mmap_events()
382 &event->mmap2.pgoff, &event->mmap2.maj, in perf_event__synthesize_mmap_events()
383 &event->mmap2.min, in perf_event__synthesize_mmap_events()
392 event->mmap2.ino = (u64)ino; in perf_event__synthesize_mmap_events()
398 event->header.misc = PERF_RECORD_MISC_USER; in perf_event__synthesize_mmap_events()
400 event->header.misc = PERF_RECORD_MISC_GUEST_USER; in perf_event__synthesize_mmap_events()
403 event->mmap2.prot = 0; in perf_event__synthesize_mmap_events()
404 event->mmap2.flags = 0; in perf_event__synthesize_mmap_events()
406 event->mmap2.prot |= PROT_READ; in perf_event__synthesize_mmap_events()
408 event->mmap2.prot |= PROT_WRITE; in perf_event__synthesize_mmap_events()
410 event->mmap2.prot |= PROT_EXEC; in perf_event__synthesize_mmap_events()
413 event->mmap2.flags |= MAP_SHARED; in perf_event__synthesize_mmap_events()
415 event->mmap2.flags |= MAP_PRIVATE; in perf_event__synthesize_mmap_events()
421 event->header.misc |= PERF_RECORD_MISC_MMAP_DATA; in perf_event__synthesize_mmap_events()
426 event->header.misc |= PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT; in perf_event__synthesize_mmap_events()
434 event->mmap2.flags |= MAP_HUGETLB; in perf_event__synthesize_mmap_events()
438 memcpy(event->mmap2.filename, execname, size); in perf_event__synthesize_mmap_events()
440 event->mmap2.len -= event->mmap.start; in perf_event__synthesize_mmap_events()
441 event->mmap2.header.size = (sizeof(event->mmap2) - in perf_event__synthesize_mmap_events()
442 (sizeof(event->mmap2.filename) - size)); in perf_event__synthesize_mmap_events()
443 memset(event->mmap2.filename + size, 0, machine->id_hdr_size); in perf_event__synthesize_mmap_events()
444 event->mmap2.header.size += machine->id_hdr_size; in perf_event__synthesize_mmap_events()
445 event->mmap2.pid = tgid; in perf_event__synthesize_mmap_events()
446 event->mmap2.tid = pid; in perf_event__synthesize_mmap_events()
448 if (perf_tool__process_synth_event(tool, event, machine, process) != 0) { in perf_event__synthesize_mmap_events()
468 union perf_event *event = zalloc((sizeof(event->mmap) + in perf_event__synthesize_modules() local
470 if (event == NULL) { in perf_event__synthesize_modules()
471 pr_debug("Not enough memory synthesizing mmap event " in perf_event__synthesize_modules()
476 event->header.type = PERF_RECORD_MMAP; in perf_event__synthesize_modules()
483 event->header.misc = PERF_RECORD_MISC_KERNEL; in perf_event__synthesize_modules()
485 event->header.misc = PERF_RECORD_MISC_GUEST_KERNEL; in perf_event__synthesize_modules()
494 event->mmap.header.type = PERF_RECORD_MMAP; in perf_event__synthesize_modules()
495 event->mmap.header.size = (sizeof(event->mmap) - in perf_event__synthesize_modules()
496 (sizeof(event->mmap.filename) - size)); in perf_event__synthesize_modules()
497 memset(event->mmap.filename + size, 0, machine->id_hdr_size); in perf_event__synthesize_modules()
498 event->mmap.header.size += machine->id_hdr_size; in perf_event__synthesize_modules()
499 event->mmap.start = pos->start; in perf_event__synthesize_modules()
500 event->mmap.len = pos->end - pos->start; in perf_event__synthesize_modules()
501 event->mmap.pid = machine->pid; in perf_event__synthesize_modules()
503 memcpy(event->mmap.filename, pos->dso->long_name, in perf_event__synthesize_modules()
505 if (perf_tool__process_synth_event(tool, event, machine, process) != 0) { in perf_event__synthesize_modules()
511 free(event); in perf_event__synthesize_modules()
532 /* special case: only send one comm event using passed in pid */ in __event__synthesize_thread()
591 * Send the prepared comm event in __event__synthesize_thread()
913 union perf_event *event; in __perf_event__synthesize_kernel_mmap() local
925 event = zalloc((sizeof(event->mmap) + machine->id_hdr_size)); in __perf_event__synthesize_kernel_mmap()
926 if (event == NULL) { in __perf_event__synthesize_kernel_mmap()
927 pr_debug("Not enough memory synthesizing mmap event " in __perf_event__synthesize_kernel_mmap()
937 event->header.misc = PERF_RECORD_MISC_KERNEL; in __perf_event__synthesize_kernel_mmap()
939 event->header.misc = PERF_RECORD_MISC_GUEST_KERNEL; in __perf_event__synthesize_kernel_mmap()
943 size = snprintf(event->mmap.filename, sizeof(event->mmap.filename), in __perf_event__synthesize_kernel_mmap()
946 event->mmap.header.type = PERF_RECORD_MMAP; in __perf_event__synthesize_kernel_mmap()
947 event->mmap.header.size = (sizeof(event->mmap) - in __perf_event__synthesize_kernel_mmap()
948 (sizeof(event->mmap.filename) - size) + machine->id_hdr_size); in __perf_event__synthesize_kernel_mmap()
949 event->mmap.pgoff = kmap->ref_reloc_sym->addr; in __perf_event__synthesize_kernel_mmap()
950 event->mmap.start = map->start; in __perf_event__synthesize_kernel_mmap()
951 event->mmap.len = map->end - event->mmap.start; in __perf_event__synthesize_kernel_mmap()
952 event->mmap.pid = machine->pid; in __perf_event__synthesize_kernel_mmap()
954 err = perf_tool__process_synth_event(tool, event, machine, process); in __perf_event__synthesize_kernel_mmap()
955 free(event); in __perf_event__synthesize_kernel_mmap()
978 union perf_event *event; in perf_event__synthesize_thread_map2() local
981 size = sizeof(event->thread_map); in perf_event__synthesize_thread_map2()
982 size += threads->nr * sizeof(event->thread_map.entries[0]); in perf_event__synthesize_thread_map2()
984 event = zalloc(size); in perf_event__synthesize_thread_map2()
985 if (!event) in perf_event__synthesize_thread_map2()
988 event->header.type = PERF_RECORD_THREAD_MAP; in perf_event__synthesize_thread_map2()
989 event->header.size = size; in perf_event__synthesize_thread_map2()
990 event->thread_map.nr = threads->nr; in perf_event__synthesize_thread_map2()
993 struct thread_map_event_entry *entry = &event->thread_map.entries[i]; in perf_event__synthesize_thread_map2()
1003 err = process(tool, event, NULL, machine); in perf_event__synthesize_thread_map2()
1005 free(event); in perf_event__synthesize_thread_map2()
1107 struct cpu_map_event *event; in cpu_map_event__new() local
1111 event = cpu_map_data__alloc(map, &size, &type, &max); in cpu_map_event__new()
1112 if (!event) in cpu_map_event__new()
1115 event->header.type = PERF_RECORD_CPU_MAP; in cpu_map_event__new()
1116 event->header.size = size; in cpu_map_event__new()
1117 event->data.type = type; in cpu_map_event__new()
1119 cpu_map_data__synthesize(&event->data, map, type, max); in cpu_map_event__new()
1120 return event; in cpu_map_event__new()
1128 struct cpu_map_event *event; in perf_event__synthesize_cpu_map() local
1131 event = cpu_map_event__new(map); in perf_event__synthesize_cpu_map()
1132 if (!event) in perf_event__synthesize_cpu_map()
1135 err = process(tool, (union perf_event *) event, NULL, machine); in perf_event__synthesize_cpu_map()
1137 free(event); in perf_event__synthesize_cpu_map()
1146 struct stat_config_event *event; in perf_event__synthesize_stat_config() local
1149 size = sizeof(*event); in perf_event__synthesize_stat_config()
1150 size += (PERF_STAT_CONFIG_TERM__MAX * sizeof(event->data[0])); in perf_event__synthesize_stat_config()
1152 event = zalloc(size); in perf_event__synthesize_stat_config()
1153 if (!event) in perf_event__synthesize_stat_config()
1156 event->header.type = PERF_RECORD_STAT_CONFIG; in perf_event__synthesize_stat_config()
1157 event->header.size = size; in perf_event__synthesize_stat_config()
1158 event->nr = PERF_STAT_CONFIG_TERM__MAX; in perf_event__synthesize_stat_config()
1161 event->data[i].tag = PERF_STAT_CONFIG_TERM__##__term; \ in perf_event__synthesize_stat_config()
1162 event->data[i].val = __val; \ in perf_event__synthesize_stat_config()
1173 err = process(tool, (union perf_event *) event, NULL, machine); in perf_event__synthesize_stat_config()
1175 free(event); in perf_event__synthesize_stat_config()
1185 struct stat_event event; in perf_event__synthesize_stat() local
1187 event.header.type = PERF_RECORD_STAT; in perf_event__synthesize_stat()
1188 event.header.size = sizeof(event); in perf_event__synthesize_stat()
1189 event.header.misc = 0; in perf_event__synthesize_stat()
1191 event.id = id; in perf_event__synthesize_stat()
1192 event.cpu = cpu; in perf_event__synthesize_stat()
1193 event.thread = thread; in perf_event__synthesize_stat()
1194 event.val = count->val; in perf_event__synthesize_stat()
1195 event.ena = count->ena; in perf_event__synthesize_stat()
1196 event.run = count->run; in perf_event__synthesize_stat()
1198 return process(tool, (union perf_event *) &event, NULL, machine); in perf_event__synthesize_stat()
1206 struct stat_round_event event; in perf_event__synthesize_stat_round() local
1208 event.header.type = PERF_RECORD_STAT_ROUND; in perf_event__synthesize_stat_round()
1209 event.header.size = sizeof(event); in perf_event__synthesize_stat_round()
1210 event.header.misc = 0; in perf_event__synthesize_stat_round()
1212 event.time = evtime; in perf_event__synthesize_stat_round()
1213 event.type = type; in perf_event__synthesize_stat_round()
1215 return process(tool, (union perf_event *) &event, NULL, machine); in perf_event__synthesize_stat_round()
1219 struct stat_config_event *event) in perf_event__read_stat_config() argument
1223 for (i = 0; i < event->nr; i++) { in perf_event__read_stat_config()
1225 switch (event->data[i].tag) { in perf_event__read_stat_config()
1228 config->__val = event->data[i].val; \ in perf_event__read_stat_config()
1237 event->data[i].tag); in perf_event__read_stat_config()
1242 size_t perf_event__fprintf_comm(union perf_event *event, FILE *fp) in perf_event__fprintf_comm() argument
1246 if (event->header.misc & PERF_RECORD_MISC_COMM_EXEC) in perf_event__fprintf_comm()
1251 return fprintf(fp, "%s: %s:%d/%d\n", s, event->comm.comm, event->comm.pid, event->comm.tid); in perf_event__fprintf_comm()
1254 size_t perf_event__fprintf_namespaces(union perf_event *event, FILE *fp) in perf_event__fprintf_namespaces() argument
1260 ns_link_info = event->namespaces.link_info; in perf_event__fprintf_namespaces()
1261 nr_namespaces = event->namespaces.nr_namespaces; in perf_event__fprintf_namespaces()
1264 event->namespaces.pid, in perf_event__fprintf_namespaces()
1265 event->namespaces.tid, in perf_event__fprintf_namespaces()
1282 union perf_event *event, in perf_event__process_comm() argument
1286 return machine__process_comm_event(machine, event, sample); in perf_event__process_comm()
1290 union perf_event *event, in perf_event__process_namespaces() argument
1294 return machine__process_namespaces_event(machine, event, sample); in perf_event__process_namespaces()
1298 union perf_event *event, in perf_event__process_lost() argument
1302 return machine__process_lost_event(machine, event, sample); in perf_event__process_lost()
1306 union perf_event *event, in perf_event__process_aux() argument
1310 return machine__process_aux_event(machine, event); in perf_event__process_aux()
1314 union perf_event *event, in perf_event__process_itrace_start() argument
1318 return machine__process_itrace_start_event(machine, event); in perf_event__process_itrace_start()
1322 union perf_event *event, in perf_event__process_lost_samples() argument
1326 return machine__process_lost_samples_event(machine, event, sample); in perf_event__process_lost_samples()
1330 union perf_event *event, in perf_event__process_switch() argument
1334 return machine__process_switch_event(machine, event); in perf_event__process_switch()
1337 size_t perf_event__fprintf_mmap(union perf_event *event, FILE *fp) in perf_event__fprintf_mmap() argument
1340 event->mmap.pid, event->mmap.tid, event->mmap.start, in perf_event__fprintf_mmap()
1341 event->mmap.len, event->mmap.pgoff, in perf_event__fprintf_mmap()
1342 (event->header.misc & PERF_RECORD_MISC_MMAP_DATA) ? 'r' : 'x', in perf_event__fprintf_mmap()
1343 event->mmap.filename); in perf_event__fprintf_mmap()
1346 size_t perf_event__fprintf_mmap2(union perf_event *event, FILE *fp) in perf_event__fprintf_mmap2() argument
1350 event->mmap2.pid, event->mmap2.tid, event->mmap2.start, in perf_event__fprintf_mmap2()
1351 event->mmap2.len, event->mmap2.pgoff, event->mmap2.maj, in perf_event__fprintf_mmap2()
1352 event->mmap2.min, event->mmap2.ino, in perf_event__fprintf_mmap2()
1353 event->mmap2.ino_generation, in perf_event__fprintf_mmap2()
1354 (event->mmap2.prot & PROT_READ) ? 'r' : '-', in perf_event__fprintf_mmap2()
1355 (event->mmap2.prot & PROT_WRITE) ? 'w' : '-', in perf_event__fprintf_mmap2()
1356 (event->mmap2.prot & PROT_EXEC) ? 'x' : '-', in perf_event__fprintf_mmap2()
1357 (event->mmap2.flags & MAP_SHARED) ? 's' : 'p', in perf_event__fprintf_mmap2()
1358 event->mmap2.filename); in perf_event__fprintf_mmap2()
1361 size_t perf_event__fprintf_thread_map(union perf_event *event, FILE *fp) in perf_event__fprintf_thread_map() argument
1363 struct thread_map *threads = thread_map__new_event(&event->thread_map); in perf_event__fprintf_thread_map()
1371 ret += fprintf(fp, "failed to get threads from event\n"); in perf_event__fprintf_thread_map()
1377 size_t perf_event__fprintf_cpu_map(union perf_event *event, FILE *fp) in perf_event__fprintf_cpu_map() argument
1379 struct cpu_map *cpus = cpu_map__new_data(&event->cpu_map.data); in perf_event__fprintf_cpu_map()
1387 ret += fprintf(fp, "failed to get cpumap from event\n"); in perf_event__fprintf_cpu_map()
1394 union perf_event *event, in perf_event__process_mmap() argument
1398 return machine__process_mmap_event(machine, event, sample); in perf_event__process_mmap()
1402 union perf_event *event, in perf_event__process_mmap2() argument
1406 return machine__process_mmap2_event(machine, event, sample); in perf_event__process_mmap2()
1409 size_t perf_event__fprintf_task(union perf_event *event, FILE *fp) in perf_event__fprintf_task() argument
1412 event->fork.pid, event->fork.tid, in perf_event__fprintf_task()
1413 event->fork.ppid, event->fork.ptid); in perf_event__fprintf_task()
1417 union perf_event *event, in perf_event__process_fork() argument
1421 return machine__process_fork_event(machine, event, sample); in perf_event__process_fork()
1425 union perf_event *event, in perf_event__process_exit() argument
1429 return machine__process_exit_event(machine, event, sample); in perf_event__process_exit()
1432 size_t perf_event__fprintf_aux(union perf_event *event, FILE *fp) in perf_event__fprintf_aux() argument
1435 event->aux.aux_offset, event->aux.aux_size, in perf_event__fprintf_aux()
1436 event->aux.flags, in perf_event__fprintf_aux()
1437 event->aux.flags & PERF_AUX_FLAG_TRUNCATED ? "T" : "", in perf_event__fprintf_aux()
1438 event->aux.flags & PERF_AUX_FLAG_OVERWRITE ? "O" : "", in perf_event__fprintf_aux()
1439 event->aux.flags & PERF_AUX_FLAG_PARTIAL ? "P" : ""); in perf_event__fprintf_aux()
1442 size_t perf_event__fprintf_itrace_start(union perf_event *event, FILE *fp) in perf_event__fprintf_itrace_start() argument
1445 event->itrace_start.pid, event->itrace_start.tid); in perf_event__fprintf_itrace_start()
1448 size_t perf_event__fprintf_switch(union perf_event *event, FILE *fp) in perf_event__fprintf_switch() argument
1450 bool out = event->header.misc & PERF_RECORD_MISC_SWITCH_OUT; in perf_event__fprintf_switch()
1452 !(event->header.misc & PERF_RECORD_MISC_SWITCH_OUT_PREEMPT) ? in perf_event__fprintf_switch()
1455 if (event->header.type == PERF_RECORD_SWITCH) in perf_event__fprintf_switch()
1460 event->context_switch.next_prev_pid, in perf_event__fprintf_switch()
1461 event->context_switch.next_prev_tid); in perf_event__fprintf_switch()
1464 static size_t perf_event__fprintf_lost(union perf_event *event, FILE *fp) in perf_event__fprintf_lost() argument
1466 return fprintf(fp, " lost %" PRIu64 "\n", event->lost.lost); in perf_event__fprintf_lost()
1469 size_t perf_event__fprintf(union perf_event *event, FILE *fp) in perf_event__fprintf() argument
1472 perf_event__name(event->header.type)); in perf_event__fprintf()
1474 switch (event->header.type) { in perf_event__fprintf()
1476 ret += perf_event__fprintf_comm(event, fp); in perf_event__fprintf()
1480 ret += perf_event__fprintf_task(event, fp); in perf_event__fprintf()
1483 ret += perf_event__fprintf_mmap(event, fp); in perf_event__fprintf()
1486 ret += perf_event__fprintf_namespaces(event, fp); in perf_event__fprintf()
1489 ret += perf_event__fprintf_mmap2(event, fp); in perf_event__fprintf()
1492 ret += perf_event__fprintf_aux(event, fp); in perf_event__fprintf()
1495 ret += perf_event__fprintf_itrace_start(event, fp); in perf_event__fprintf()
1499 ret += perf_event__fprintf_switch(event, fp); in perf_event__fprintf()
1502 ret += perf_event__fprintf_lost(event, fp); in perf_event__fprintf()
1512 union perf_event *event, in perf_event__process() argument
1516 return machine__process_event(machine, event, sample); in perf_event__process()