Lines Matching refs:atoms
66 struct sched_atom **atoms; member
370 task->atoms = realloc(task->atoms, size); in get_new_event()
371 BUG_ON(!task->atoms); in get_new_event()
373 task->atoms[idx] = event; in get_new_event()
383 return task->atoms[task->nr_events - 1]; in last_event()
647 perf_sched__process_event(sched, this_task->atoms[i]); in thread_func()
971 struct work_atoms *atoms; in thread_atoms_search() local
974 atoms = container_of(node, struct work_atoms, node); in thread_atoms_search()
976 cmp = thread_lat_cmp(sort_list, &key, atoms); in thread_atoms_search()
982 BUG_ON(thread != atoms->thread); in thread_atoms_search()
983 return atoms; in thread_atoms_search()
1019 struct work_atoms *atoms = zalloc(sizeof(*atoms)); in thread_atoms_insert() local
1020 if (!atoms) { in thread_atoms_insert()
1025 atoms->thread = thread__get(thread); in thread_atoms_insert()
1026 INIT_LIST_HEAD(&atoms->work_list); in thread_atoms_insert()
1027 __thread_latency_insert(&sched->atom_root, atoms, &sched->cmp_pid); in thread_atoms_insert()
1039 add_sched_out_event(struct work_atoms *atoms, in add_sched_out_event() argument
1056 list_add_tail(&atom->list, &atoms->work_list); in add_sched_out_event()
1061 add_runtime_event(struct work_atoms *atoms, u64 delta, in add_runtime_event() argument
1066 BUG_ON(list_empty(&atoms->work_list)); in add_runtime_event()
1068 atom = list_entry(atoms->work_list.prev, struct work_atom, list); in add_runtime_event()
1071 atoms->total_runtime += delta; in add_runtime_event()
1075 add_sched_in_event(struct work_atoms *atoms, u64 timestamp) in add_sched_in_event() argument
1080 if (list_empty(&atoms->work_list)) in add_sched_in_event()
1083 atom = list_entry(atoms->work_list.prev, struct work_atom, list); in add_sched_in_event()
1097 atoms->total_lat += delta; in add_sched_in_event()
1098 if (delta > atoms->max_lat) { in add_sched_in_event()
1099 atoms->max_lat = delta; in add_sched_in_event()
1100 atoms->max_lat_start = atom->wake_up_time; in add_sched_in_event()
1101 atoms->max_lat_end = timestamp; in add_sched_in_event()
1103 atoms->nb_atoms++; in add_sched_in_event()
1184 struct work_atoms *atoms = thread_atoms_search(&sched->atom_root, thread, &sched->cmp_pid); in latency_runtime_event() local
1192 if (!atoms) { in latency_runtime_event()
1195 atoms = thread_atoms_search(&sched->atom_root, thread, &sched->cmp_pid); in latency_runtime_event()
1196 if (!atoms) { in latency_runtime_event()
1200 if (add_sched_out_event(atoms, 'R', timestamp)) in latency_runtime_event()
1204 add_runtime_event(atoms, runtime, timestamp); in latency_runtime_event()
1217 struct work_atoms *atoms; in latency_wakeup_event() local
1226 atoms = thread_atoms_search(&sched->atom_root, wakee, &sched->cmp_pid); in latency_wakeup_event()
1227 if (!atoms) { in latency_wakeup_event()
1230 atoms = thread_atoms_search(&sched->atom_root, wakee, &sched->cmp_pid); in latency_wakeup_event()
1231 if (!atoms) { in latency_wakeup_event()
1235 if (add_sched_out_event(atoms, 'S', timestamp)) in latency_wakeup_event()
1239 BUG_ON(list_empty(&atoms->work_list)); in latency_wakeup_event()
1241 atom = list_entry(atoms->work_list.prev, struct work_atom, list); in latency_wakeup_event()
1279 struct work_atoms *atoms; in latency_migrate_task_event() local
1293 atoms = thread_atoms_search(&sched->atom_root, migrant, &sched->cmp_pid); in latency_migrate_task_event()
1294 if (!atoms) { in latency_migrate_task_event()
1298 atoms = thread_atoms_search(&sched->atom_root, migrant, &sched->cmp_pid); in latency_migrate_task_event()
1299 if (!atoms) { in latency_migrate_task_event()
1303 if (add_sched_out_event(atoms, 'R', timestamp)) in latency_migrate_task_event()
1307 BUG_ON(list_empty(&atoms->work_list)); in latency_migrate_task_event()
1309 atom = list_entry(atoms->work_list.prev, struct work_atom, list); in latency_migrate_task_event()