Lines Matching refs:event

5 #include "util/event.h"
51 union perf_event *event,
62 .cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK,
65 return process(tool, event, &synth_sample, machine);
139 static int perf_event__prepare_comm(union perf_event *event, pid_t pid,
147 memset(&event->comm, 0, sizeof(event->comm));
150 if (perf_event__get_comm_ids(pid, event->comm.comm,
151 sizeof(event->comm.comm),
162 event->comm.pid = *tgid;
163 event->comm.header.type = PERF_RECORD_COMM;
165 size = strlen(event->comm.comm) + 1;
167 memset(event->comm.comm + size, 0, machine->id_hdr_size);
168 event->comm.header.size = (sizeof(event->comm) -
169 (sizeof(event->comm.comm) - size) +
171 event->comm.tid = pid;
177 union perf_event *event, pid_t pid,
183 if (perf_event__prepare_comm(event, pid, machine, &tgid, &ppid) != 0)
186 if (perf_tool__process_synth_event(tool, event, machine, process) != 0)
206 union perf_event *event,
217 memset(&event->namespaces, 0, (sizeof(event->namespaces) +
221 event->namespaces.pid = tgid;
222 event->namespaces.tid = pid;
224 event->namespaces.nr_namespaces = NR_NAMESPACES;
226 ns_link_info = event->namespaces.link_info;
228 for (idx = 0; idx < event->namespaces.nr_namespaces; idx++)
232 event->namespaces.header.type = PERF_RECORD_NAMESPACES;
234 event->namespaces.header.size = (sizeof(event->namespaces) +
238 if (perf_tool__process_synth_event(tool, event, machine, process) != 0)
245 union perf_event *event,
250 memset(&event->fork, 0, sizeof(event->fork) + machine->id_hdr_size);
258 event->fork.ppid = ppid;
259 event->fork.ptid = ppid;
261 event->fork.ppid = tgid;
262 event->fork.ptid = tgid;
264 event->fork.pid = tgid;
265 event->fork.tid = pid;
266 event->fork.header.type = PERF_RECORD_FORK;
267 event->fork.header.misc = PERF_RECORD_MISC_FORK_EXEC;
269 event->fork.header.size = (sizeof(event->fork) + machine->id_hdr_size);
271 if (perf_tool__process_synth_event(tool, event, machine, process) != 0)
351 union perf_event *event,
382 event->header.type = PERF_RECORD_MMAP2;
390 event->mmap2.filename[0] = '\0';
394 &event->mmap2.start,
395 &event->mmap2.len,
396 &event->mmap2.prot,
397 &event->mmap2.flags,
398 &event->mmap2.pgoff,
399 &event->mmap2.maj,
400 &event->mmap2.min,
401 &event->mmap2.ino,
402 sizeof(event->mmap2.filename),
403 event->mmap2.filename))
415 event->mmap2.ino_generation = 0;
421 event->header.misc = PERF_RECORD_MISC_USER;
423 event->header.misc = PERF_RECORD_MISC_GUEST_USER;
425 if ((event->mmap2.prot & PROT_EXEC) == 0) {
426 if (!mmap_data || (event->mmap2.prot & PROT_READ) == 0)
429 event->header.misc |= PERF_RECORD_MISC_MMAP_DATA;
434 event->header.misc |= PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT;
436 if (!strcmp(event->mmap2.filename, ""))
437 strcpy(event->mmap2.filename, anonstr);
440 !strncmp(event->mmap2.filename, hugetlbfs_mnt,
442 strcpy(event->mmap2.filename, anonstr);
443 event->mmap2.flags |= MAP_HUGETLB;
446 size = strlen(event->mmap2.filename) + 1;
448 event->mmap2.len -= event->mmap.start;
449 event->mmap2.header.size = (sizeof(event->mmap2) -
450 (sizeof(event->mmap2.filename) - aligned_size));
451 memset(event->mmap2.filename + size, 0, machine->id_hdr_size +
453 event->mmap2.header.size += machine->id_hdr_size;
454 event->mmap2.pid = tgid;
455 event->mmap2.tid = pid;
457 if (perf_tool__process_synth_event(tool, event, machine, process) != 0) {
472 union perf_event *event,
477 size_t event_size = sizeof(event->cgroup) - sizeof(event->cgroup.path);
488 memset(&event->cgroup, 0, event_size);
490 event->cgroup.header.type = PERF_RECORD_CGROUP;
491 event->cgroup.header.size = event_size + path_len + machine->id_hdr_size;
499 event->cgroup.id = handle.cgroup_id;
500 strncpy(event->cgroup.path, path + mount_len, path_len);
501 memset(event->cgroup.path + path_len, 0, machine->id_hdr_size);
503 if (perf_tool__process_synth_event(tool, event, machine, process) < 0) {
504 pr_debug("process synth event failed\n");
512 union perf_event *event,
522 if (perf_event__synthesize_cgroup(tool, event, path, mount_len,
547 ret = perf_event__walk_cgroup_tree(tool, event, path,
563 union perf_event event;
579 if (perf_event__walk_cgroup_tree(tool, &event, cgrp_root, mount_len,
600 union perf_event *event = zalloc((sizeof(event->mmap) +
602 if (event == NULL) {
603 pr_debug("Not enough memory synthesizing mmap event "
608 event->header.type = PERF_RECORD_MMAP;
615 event->header.misc = PERF_RECORD_MISC_KERNEL;
617 event->header.misc = PERF_RECORD_MISC_GUEST_KERNEL;
626 event->mmap.header.type = PERF_RECORD_MMAP;
627 event->mmap.header.size = (sizeof(event->mmap) -
628 (sizeof(event->mmap.filename) - size));
629 memset(event->mmap.filename + size, 0, machine->id_hdr_size);
630 event->mmap.header.size += machine->id_hdr_size;
631 event->mmap.start = pos->start;
632 event->mmap.len = pos->end - pos->start;
633 event->mmap.pid = machine->pid;
635 memcpy(event->mmap.filename, pos->dso->long_name,
637 if (perf_tool__process_synth_event(tool, event, machine, process) != 0) {
643 free(event);
660 /* special case: only send one comm event using passed in pid */
718 * Send the prepared comm event
999 union perf_event *event;
1013 event = zalloc((sizeof(event->mmap) + machine->id_hdr_size));
1014 if (event == NULL) {
1015 pr_debug("Not enough memory synthesizing mmap event "
1025 event->header.misc = PERF_RECORD_MISC_KERNEL;
1027 event->header.misc = PERF_RECORD_MISC_GUEST_KERNEL;
1030 size = snprintf(event->mmap.filename, sizeof(event->mmap.filename),
1033 event->mmap.header.type = PERF_RECORD_MMAP;
1034 event->mmap.header.size = (sizeof(event->mmap) -
1035 (sizeof(event->mmap.filename) - size) + machine->id_hdr_size);
1036 event->mmap.pgoff = kmap->ref_reloc_sym->addr;
1037 event->mmap.start = map->start;
1038 event->mmap.len = map->end - event->mmap.start;
1039 event->mmap.pid = machine->pid;
1041 err = perf_tool__process_synth_event(tool, event, machine, process);
1042 free(event);
1065 union perf_event *event;
1068 size = sizeof(event->thread_map);
1069 size += threads->nr * sizeof(event->thread_map.entries[0]);
1071 event = zalloc(size);
1072 if (!event)
1075 event->header.type = PERF_RECORD_THREAD_MAP;
1076 event->header.size = size;
1077 event->thread_map.nr = threads->nr;
1080 struct perf_record_thread_map_entry *entry = &event->thread_map.entries[i];
1090 err = process(tool, event, NULL, machine);
1092 free(event);
1194 struct perf_record_cpu_map *event;
1198 event = cpu_map_data__alloc(map, &size, &type, &max);
1199 if (!event)
1202 event->header.type = PERF_RECORD_CPU_MAP;
1203 event->header.size = size;
1204 event->data.type = type;
1206 cpu_map_data__synthesize(&event->data, map, type, max);
1207 return event;
1215 struct perf_record_cpu_map *event;
1218 event = cpu_map_event__new(map);
1219 if (!event)
1222 err = process(tool, (union perf_event *) event, NULL, machine);
1224 free(event);
1233 struct perf_record_stat_config *event;
1236 size = sizeof(*event);
1237 size += (PERF_STAT_CONFIG_TERM__MAX * sizeof(event->data[0]));
1239 event = zalloc(size);
1240 if (!event)
1243 event->header.type = PERF_RECORD_STAT_CONFIG;
1244 event->header.size = size;
1245 event->nr = PERF_STAT_CONFIG_TERM__MAX;
1248 event->data[i].tag = PERF_STAT_CONFIG_TERM__##__term; \
1249 event->data[i].val = __val; \
1260 err = process(tool, (union perf_event *) event, NULL, machine);
1262 free(event);
1272 struct perf_record_stat event;
1274 event.header.type = PERF_RECORD_STAT;
1275 event.header.size = sizeof(event);
1276 event.header.misc = 0;
1278 event.id = id;
1279 event.cpu = cpu;
1280 event.thread = thread;
1281 event.val = count->val;
1282 event.ena = count->ena;
1283 event.run = count->run;
1285 return process(tool, (union perf_event *) &event, NULL, machine);
1293 struct perf_record_stat_round event;
1295 event.header.type = PERF_RECORD_STAT_ROUND;
1296 event.header.size = sizeof(event);
1297 event.header.misc = 0;
1299 event.time = evtime;
1300 event.type = type;
1302 return process(tool, (union perf_event *) &event, NULL, machine);
1421 int perf_event__synthesize_sample(union perf_event *event, u64 type, u64 read_format,
1432 array = event->sample.array;
1827 * attr event - unit, scale, name
1862 * perf.data carries event names.