Lines Matching refs:rec

104 static bool switch_output_signal(struct record *rec)  in switch_output_signal()  argument
106 return rec->switch_output.signal && in switch_output_signal()
110 static bool switch_output_size(struct record *rec) in switch_output_size() argument
112 return rec->switch_output.size && in switch_output_size()
114 (rec->bytes_written >= rec->switch_output.size); in switch_output_size()
117 static bool switch_output_time(struct record *rec) in switch_output_time() argument
119 return rec->switch_output.time && in switch_output_time()
123 static int record__write(struct record *rec, struct mmap *map __maybe_unused, in record__write() argument
126 struct perf_data_file *file = &rec->session->data->file; in record__write()
133 rec->bytes_written += size; in record__write()
135 if (switch_output_size(rec)) in record__write()
141 static int record__aio_enabled(struct record *rec);
142 static int record__comp_enabled(struct record *rec);
254 struct record *rec; member
277 if (record__comp_enabled(aio->rec)) { in record__aio_pushfn()
278 size = zstd_compress(aio->rec->session, aio->data + aio->size, in record__aio_pushfn()
304 static int record__aio_push(struct record *rec, struct mmap *map, off_t *off) in record__aio_push() argument
307 int trace_fd = rec->session->data->file.fd; in record__aio_push()
308 struct record_aio aio = { .rec = rec, .size = 0 }; in record__aio_push()
321 rec->samples++; in record__aio_push()
325 rec->bytes_written += aio.size; in record__aio_push()
326 if (switch_output_size(rec)) in record__aio_push()
351 static void record__aio_mmap_read_sync(struct record *rec) in record__aio_mmap_read_sync() argument
354 struct evlist *evlist = rec->evlist; in record__aio_mmap_read_sync()
357 if (!record__aio_enabled(rec)) in record__aio_mmap_read_sync()
391 static int record__aio_push(struct record *rec __maybe_unused, struct mmap *map __maybe_unused, in record__aio_push()
406 static void record__aio_mmap_read_sync(struct record *rec __maybe_unused) in record__aio_mmap_read_sync()
411 static int record__aio_enabled(struct record *rec) in record__aio_enabled() argument
413 return rec->opts.nr_cblocks > 0; in record__aio_enabled()
472 static int record__comp_enabled(struct record *rec) in record__comp_enabled() argument
474 return rec->opts.comp_level > 0; in record__comp_enabled()
482 struct record *rec = container_of(tool, struct record, tool); in process_synthesized_event() local
483 return record__write(rec, NULL, event, event->header.size); in process_synthesized_event()
488 struct record *rec = to; in record__pushfn() local
490 if (record__comp_enabled(rec)) { in record__pushfn()
491 size = zstd_compress(rec->session, map->data, perf_mmap__mmap_len(map), bf, size); in record__pushfn()
495 rec->samples++; in record__pushfn()
496 return record__write(rec, map, bf, size); in record__pushfn()
535 struct record *rec = container_of(tool, struct record, tool); in record__process_auxtrace() local
536 struct perf_data *data = &rec->data; in record__process_auxtrace()
548 err = auxtrace_index__auxtrace_event(&rec->session->auxtrace_index, in record__process_auxtrace()
559 record__write(rec, map, event, event->header.size); in record__process_auxtrace()
560 record__write(rec, map, data1, len1); in record__process_auxtrace()
562 record__write(rec, map, data2, len2); in record__process_auxtrace()
563 record__write(rec, map, &pad, padding); in record__process_auxtrace()
568 static int record__auxtrace_mmap_read(struct record *rec, in record__auxtrace_mmap_read() argument
573 ret = auxtrace_mmap__read(map, rec->itr, &rec->tool, in record__auxtrace_mmap_read()
579 rec->samples++; in record__auxtrace_mmap_read()
584 static int record__auxtrace_mmap_read_snapshot(struct record *rec, in record__auxtrace_mmap_read_snapshot() argument
589 ret = auxtrace_mmap__read_snapshot(map, rec->itr, &rec->tool, in record__auxtrace_mmap_read_snapshot()
591 rec->opts.auxtrace_snapshot_size); in record__auxtrace_mmap_read_snapshot()
596 rec->samples++; in record__auxtrace_mmap_read_snapshot()
601 static int record__auxtrace_read_snapshot_all(struct record *rec) in record__auxtrace_read_snapshot_all() argument
606 for (i = 0; i < rec->evlist->core.nr_mmaps; i++) { in record__auxtrace_read_snapshot_all()
607 struct mmap *map = &rec->evlist->mmap[i]; in record__auxtrace_read_snapshot_all()
612 if (record__auxtrace_mmap_read_snapshot(rec, map) != 0) { in record__auxtrace_read_snapshot_all()
621 static void record__read_auxtrace_snapshot(struct record *rec, bool on_exit) in record__read_auxtrace_snapshot() argument
624 if (record__auxtrace_read_snapshot_all(rec) < 0) { in record__read_auxtrace_snapshot()
627 if (auxtrace_record__snapshot_finish(rec->itr, on_exit)) in record__read_auxtrace_snapshot()
634 static int record__auxtrace_snapshot_exit(struct record *rec) in record__auxtrace_snapshot_exit() argument
640 auxtrace_record__snapshot_start(rec->itr)) in record__auxtrace_snapshot_exit()
643 record__read_auxtrace_snapshot(rec, true); in record__auxtrace_snapshot_exit()
650 static int record__auxtrace_init(struct record *rec) in record__auxtrace_init() argument
654 if (!rec->itr) { in record__auxtrace_init()
655 rec->itr = auxtrace_record__init(rec->evlist, &err); in record__auxtrace_init()
660 err = auxtrace_parse_snapshot_options(rec->itr, &rec->opts, in record__auxtrace_init()
661 rec->opts.auxtrace_snapshot_opts); in record__auxtrace_init()
665 return auxtrace_parse_filters(rec->evlist); in record__auxtrace_init()
671 int record__auxtrace_mmap_read(struct record *rec __maybe_unused, in record__auxtrace_mmap_read()
678 void record__read_auxtrace_snapshot(struct record *rec __maybe_unused, in record__read_auxtrace_snapshot()
690 int record__auxtrace_snapshot_exit(struct record *rec __maybe_unused) in record__auxtrace_snapshot_exit()
695 static int record__auxtrace_init(struct record *rec __maybe_unused) in record__auxtrace_init()
702 static int record__mmap_evlist(struct record *rec, in record__mmap_evlist() argument
705 struct record_opts *opts = &rec->opts; in record__mmap_evlist()
736 static int record__mmap(struct record *rec) in record__mmap() argument
738 return record__mmap_evlist(rec, rec->evlist); in record__mmap()
741 static int record__open(struct record *rec) in record__open() argument
745 struct evlist *evlist = rec->evlist; in record__open()
746 struct perf_session *session = rec->session; in record__open()
747 struct record_opts *opts = &rec->opts; in record__open()
811 rc = record__mmap(rec); in record__open()
827 struct record *rec = container_of(tool, struct record, tool); in process_sample_event() local
829 if (rec->evlist->first_sample_time == 0) in process_sample_event()
830 rec->evlist->first_sample_time = sample->time; in process_sample_event()
832 rec->evlist->last_sample_time = sample->time; in process_sample_event()
834 if (rec->buildid_all) in process_sample_event()
837 rec->samples++; in process_sample_event()
841 static int process_buildids(struct record *rec) in process_buildids() argument
843 struct perf_session *session = rec->session; in process_buildids()
845 if (perf_data__size(&rec->data) == 0) in process_buildids()
865 if (rec->buildid_all && !rec->timestamp_boundary) in process_buildids()
866 rec->tool.sample = NULL; in process_buildids()
905 static void record__adjust_affinity(struct record *rec, struct mmap *map) in record__adjust_affinity() argument
907 if (rec->opts.affinity != PERF_AFFINITY_SYS && in record__adjust_affinity()
908 !CPU_EQUAL(&rec->affinity_mask, &map->affinity_mask)) { in record__adjust_affinity()
909 CPU_ZERO(&rec->affinity_mask); in record__adjust_affinity()
910 CPU_OR(&rec->affinity_mask, &rec->affinity_mask, &map->affinity_mask); in record__adjust_affinity()
911 sched_setaffinity(0, sizeof(rec->affinity_mask), &rec->affinity_mask); in record__adjust_affinity()
946 static int record__mmap_read_evlist(struct record *rec, struct evlist *evlist, in record__mmap_read_evlist() argument
949 u64 bytes_written = rec->bytes_written; in record__mmap_read_evlist()
953 int trace_fd = rec->data.file.fd; in record__mmap_read_evlist()
966 if (record__aio_enabled(rec)) in record__mmap_read_evlist()
974 record__adjust_affinity(rec, map); in record__mmap_read_evlist()
979 if (!record__aio_enabled(rec)) { in record__mmap_read_evlist()
980 if (perf_mmap__push(map, rec, record__pushfn) < 0) { in record__mmap_read_evlist()
987 if (record__aio_push(rec, map, &off) < 0) { in record__mmap_read_evlist()
999 if (map->auxtrace_mmap.base && !rec->opts.auxtrace_snapshot_mode && in record__mmap_read_evlist()
1000 record__auxtrace_mmap_read(rec, map) != 0) { in record__mmap_read_evlist()
1006 if (record__aio_enabled(rec)) in record__mmap_read_evlist()
1013 if (bytes_written != rec->bytes_written) in record__mmap_read_evlist()
1014 rc = record__write(rec, NULL, &finished_round_event, sizeof(finished_round_event)); in record__mmap_read_evlist()
1022 static int record__mmap_read_all(struct record *rec, bool synch) in record__mmap_read_all() argument
1026 err = record__mmap_read_evlist(rec, rec->evlist, false, synch); in record__mmap_read_all()
1030 return record__mmap_read_evlist(rec, rec->evlist, true, synch); in record__mmap_read_all()
1033 static void record__init_features(struct record *rec) in record__init_features() argument
1035 struct perf_session *session = rec->session; in record__init_features()
1041 if (rec->no_buildid) in record__init_features()
1044 if (!have_tracepoints(&rec->evlist->core.entries)) in record__init_features()
1047 if (!rec->opts.branch_stack) in record__init_features()
1050 if (!rec->opts.full_auxtrace) in record__init_features()
1053 if (!(rec->opts.use_clockid && rec->opts.clockid_res_ns)) in record__init_features()
1057 if (!record__comp_enabled(rec)) in record__init_features()
1064 record__finish_output(struct record *rec) in record__finish_output() argument
1066 struct perf_data *data = &rec->data; in record__finish_output()
1072 rec->session->header.data_size += rec->bytes_written; in record__finish_output()
1075 if (!rec->no_buildid) { in record__finish_output()
1076 process_buildids(rec); in record__finish_output()
1078 if (rec->buildid_all) in record__finish_output()
1079 dsos__hit_all(rec->session); in record__finish_output()
1081 perf_session__write_header(rec->session, rec->evlist, fd, true); in record__finish_output()
1086 static int record__synthesize_workload(struct record *rec, bool tail) in record__synthesize_workload() argument
1091 if (rec->opts.tail_synthesize != tail) in record__synthesize_workload()
1094 thread_map = thread_map__new_by_tid(rec->evlist->workload.pid); in record__synthesize_workload()
1098 err = perf_event__synthesize_thread_map(&rec->tool, thread_map, in record__synthesize_workload()
1100 &rec->session->machines.host, in record__synthesize_workload()
1101 rec->opts.sample_address); in record__synthesize_workload()
1106 static int record__synthesize(struct record *rec, bool tail);
1109 record__switch_output(struct record *rec, bool at_exit) in record__switch_output() argument
1111 struct perf_data *data = &rec->data; in record__switch_output()
1118 record__aio_mmap_read_sync(rec); in record__switch_output()
1120 record__synthesize(rec, true); in record__switch_output()
1121 if (target__none(&rec->opts.target)) in record__switch_output()
1122 record__synthesize_workload(rec, true); in record__switch_output()
1124 rec->samples = 0; in record__switch_output()
1125 record__finish_output(rec); in record__switch_output()
1133 rec->session->header.data_offset, in record__switch_output()
1136 rec->bytes_written = 0; in record__switch_output()
1137 rec->session->header.data_size = 0; in record__switch_output()
1144 if (rec->switch_output.num_files) { in record__switch_output()
1145 int n = rec->switch_output.cur_file + 1; in record__switch_output()
1147 if (n >= rec->switch_output.num_files) in record__switch_output()
1149 rec->switch_output.cur_file = n; in record__switch_output()
1150 if (rec->switch_output.filenames[n]) { in record__switch_output()
1151 remove(rec->switch_output.filenames[n]); in record__switch_output()
1152 zfree(&rec->switch_output.filenames[n]); in record__switch_output()
1154 rec->switch_output.filenames[n] = new_filename; in record__switch_output()
1161 record__synthesize(rec, false); in record__switch_output()
1172 if (target__none(&rec->opts.target)) in record__switch_output()
1173 record__synthesize_workload(rec, false); in record__switch_output()
1209 static const struct perf_event_mmap_page *record__pick_pc(struct record *rec) in record__pick_pc() argument
1213 pc = perf_evlist__pick_pc(rec->evlist); in record__pick_pc()
1219 static int record__synthesize(struct record *rec, bool tail) in record__synthesize() argument
1221 struct perf_session *session = rec->session; in record__synthesize()
1223 struct perf_data *data = &rec->data; in record__synthesize()
1224 struct record_opts *opts = &rec->opts; in record__synthesize()
1225 struct perf_tool *tool = &rec->tool; in record__synthesize()
1229 if (rec->opts.tail_synthesize != tail) in record__synthesize()
1237 err = perf_event__synthesize_attrs(tool, rec->evlist, in record__synthesize()
1244 err = perf_event__synthesize_features(tool, session, rec->evlist, in record__synthesize()
1251 if (have_tracepoints(&rec->evlist->core.entries)) { in record__synthesize()
1260 err = perf_event__synthesize_tracing_data(tool, fd, rec->evlist, in record__synthesize()
1266 rec->bytes_written += err; in record__synthesize()
1270 err = perf_event__synth_time_conv(record__pick_pc(rec), tool, in record__synthesize()
1275 if (rec->opts.full_auxtrace) { in record__synthesize()
1276 err = perf_event__synthesize_auxtrace_info(rec->itr, tool, in record__synthesize()
1282 if (!perf_evlist__exclude_kernel(rec->evlist)) { in record__synthesize()
1301 err = perf_event__synthesize_extra_attr(&rec->tool, in record__synthesize()
1302 rec->evlist, in record__synthesize()
1308 err = perf_event__synthesize_thread_map2(&rec->tool, rec->evlist->core.threads, in record__synthesize()
1316 err = perf_event__synthesize_cpu_map(&rec->tool, rec->evlist->core.cpus, in record__synthesize()
1328 err = __machine__synthesize_threads(machine, tool, &opts->target, rec->evlist->core.threads, in record__synthesize()
1335 static int __cmd_record(struct record *rec, int argc, const char **argv) in __cmd_record() argument
1341 struct perf_tool *tool = &rec->tool; in __cmd_record()
1342 struct record_opts *opts = &rec->opts; in __cmd_record()
1343 struct perf_data *data = &rec->data; in __cmd_record()
1356 if (rec->opts.record_namespaces) in __cmd_record()
1359 if (rec->opts.auxtrace_snapshot_mode || rec->switch_output.enabled) { in __cmd_record()
1361 if (rec->opts.auxtrace_snapshot_mode) in __cmd_record()
1363 if (rec->switch_output.enabled) in __cmd_record()
1376 rec->session = session; in __cmd_record()
1378 if (zstd_init(&session->zstd_data, rec->opts.comp_level) < 0) { in __cmd_record()
1384 session->header.env.comp_level = rec->opts.comp_level; in __cmd_record()
1386 record__init_features(rec); in __cmd_record()
1388 if (rec->opts.use_clockid && rec->opts.clockid_res_ns) in __cmd_record()
1389 session->header.env.clockid_res_ns = rec->opts.clockid_res_ns; in __cmd_record()
1392 err = perf_evlist__prepare_workload(rec->evlist, &opts->target, in __cmd_record()
1408 if (data->is_pipe && rec->evlist->core.nr_entries == 1) in __cmd_record()
1409 rec->opts.sample_id = true; in __cmd_record()
1411 if (record__open(rec) != 0) { in __cmd_record()
1431 if (rec->tool.ordered_events && !perf_evlist__sample_id_all(rec->evlist)) { in __cmd_record()
1433 rec->tool.ordered_events = false; in __cmd_record()
1436 if (!rec->evlist->nr_groups) in __cmd_record()
1444 err = perf_session__write_header(session, rec->evlist, fd, false); in __cmd_record()
1449 if (!rec->no_buildid in __cmd_record()
1460 if (perf_evlist__start_sb_thread(sb_evlist, &rec->opts.target)) { in __cmd_record()
1465 err = record__synthesize(rec, false); in __cmd_record()
1469 if (rec->realtime_prio) { in __cmd_record()
1472 param.sched_priority = rec->realtime_prio; in __cmd_record()
1486 evlist__enable(rec->evlist); in __cmd_record()
1509 rec->evlist->workload.pid, in __cmd_record()
1529 rec->evlist->workload.pid, in __cmd_record()
1534 perf_evlist__start_workload(rec->evlist); in __cmd_record()
1539 evlist__enable(rec->evlist); in __cmd_record()
1546 unsigned long long hits = rec->samples; in __cmd_record()
1557 perf_evlist__toggle_bkw_mmap(rec->evlist, BKW_MMAP_DATA_PENDING); in __cmd_record()
1559 if (record__mmap_read_all(rec, false) < 0) { in __cmd_record()
1569 record__read_auxtrace_snapshot(rec, false); in __cmd_record()
1587 if (rec->evlist->bkw_mmap_state == BKW_MMAP_RUNNING) in __cmd_record()
1596 perf_evlist__toggle_bkw_mmap(rec->evlist, BKW_MMAP_RUNNING); in __cmd_record()
1602 fd = record__switch_output(rec, false); in __cmd_record()
1611 if (rec->switch_output.time) in __cmd_record()
1612 alarm(rec->switch_output.time); in __cmd_record()
1615 if (hits == rec->samples) { in __cmd_record()
1618 err = evlist__poll(rec->evlist, -1); in __cmd_record()
1627 if (evlist__filter_pollfd(rec->evlist, POLLERR | POLLHUP) == 0) in __cmd_record()
1638 evlist__disable(rec->evlist); in __cmd_record()
1647 record__auxtrace_snapshot_exit(rec); in __cmd_record()
1660 if (target__none(&rec->opts.target)) in __cmd_record()
1661 record__synthesize_workload(rec, true); in __cmd_record()
1664 record__mmap_read_all(rec, true); in __cmd_record()
1665 record__aio_mmap_read_sync(rec); in __cmd_record()
1667 if (rec->session->bytes_transferred && rec->session->bytes_compressed) { in __cmd_record()
1668 ratio = (float)rec->session->bytes_transferred/(float)rec->session->bytes_compressed; in __cmd_record()
1676 kill(rec->evlist->workload.pid, SIGTERM); in __cmd_record()
1689 record__synthesize(rec, true); in __cmd_record()
1691 rec->samples = 0; in __cmd_record()
1694 if (!rec->timestamp_filename) { in __cmd_record()
1695 record__finish_output(rec); in __cmd_record()
1697 fd = record__switch_output(rec, true); in __cmd_record()
1709 const char *postfix = rec->timestamp_filename ? in __cmd_record()
1712 if (rec->samples && !rec->opts.full_auxtrace) in __cmd_record()
1714 " (%" PRIu64 " samples)", rec->samples); in __cmd_record()
1723 rec->session->bytes_transferred / 1024.0 / 1024.0, in __cmd_record()
1798 struct record *rec = cb; in perf_record_config() local
1802 rec->no_buildid_cache = false; in perf_record_config()
1804 rec->no_buildid_cache = true; in perf_record_config()
1806 rec->no_buildid = true; in perf_record_config()
1817 rec->opts.nr_cblocks = strtol(value, NULL, 0); in perf_record_config()
1818 if (!rec->opts.nr_cblocks) in perf_record_config()
1819 rec->opts.nr_cblocks = nr_cblocks_default; in perf_record_config()
1982 static void switch_output_size_warn(struct record *rec) in switch_output_size_warn() argument
1984 u64 wakeup_size = evlist__mmap_size(rec->opts.mmap_pages); in switch_output_size_warn()
1985 struct switch_output *s = &rec->switch_output; in switch_output_size_warn()
1999 static int switch_output_setup(struct record *rec) in switch_output_setup() argument
2001 struct switch_output *s = &rec->switch_output; in switch_output_setup()
2045 rec->timestamp_filename = true; in switch_output_setup()
2048 if (s->size && !rec->opts.no_buffering) in switch_output_setup()
2049 switch_output_size_warn(rec); in switch_output_setup()
2273 struct record *rec = &record; in cmd_record() local
2299 CPU_ZERO(&rec->affinity_mask); in cmd_record()
2300 rec->opts.affinity = PERF_AFFINITY_SYS; in cmd_record()
2302 rec->evlist = evlist__new(); in cmd_record()
2303 if (rec->evlist == NULL) in cmd_record()
2306 err = perf_config(perf_record_config, rec); in cmd_record()
2316 if (!argc && target__none(&rec->opts.target)) in cmd_record()
2317 rec->opts.target.system_wide = true; in cmd_record()
2319 if (nr_cgroups && !rec->opts.target.system_wide) { in cmd_record()
2325 if (rec->opts.comp_level != 0) { in cmd_record()
2327 rec->no_buildid = true; in cmd_record()
2330 if (rec->opts.record_switch_events && in cmd_record()
2337 if (switch_output_setup(rec)) { in cmd_record()
2342 if (rec->switch_output.time) { in cmd_record()
2344 alarm(rec->switch_output.time); in cmd_record()
2347 if (rec->switch_output.num_files) { in cmd_record()
2348 rec->switch_output.filenames = calloc(sizeof(char *), in cmd_record()
2349 rec->switch_output.num_files); in cmd_record()
2350 if (!rec->switch_output.filenames) in cmd_record()
2362 err = record__auxtrace_init(rec); in cmd_record()
2369 err = bpf__setup_stdout(rec->evlist); in cmd_record()
2371 bpf__strerror_setup_stdout(rec->evlist, err, errbuf, sizeof(errbuf)); in cmd_record()
2379 if (rec->no_buildid_cache || rec->no_buildid) { in cmd_record()
2381 } else if (rec->switch_output.enabled) { in cmd_record()
2399 if (rec->no_buildid_set && !rec->no_buildid) in cmd_record()
2401 if (rec->no_buildid_cache_set && !rec->no_buildid_cache) in cmd_record()
2404 rec->no_buildid = true; in cmd_record()
2405 rec->no_buildid_cache = true; in cmd_record()
2413 if (rec->evlist->core.nr_entries == 0 && in cmd_record()
2414 __perf_evlist__add_default(rec->evlist, !record.opts.no_samples) < 0) { in cmd_record()
2419 if (rec->opts.target.tid && !rec->opts.no_inherit_set) in cmd_record()
2420 rec->opts.no_inherit = true; in cmd_record()
2422 err = target__validate(&rec->opts.target); in cmd_record()
2424 target__strerror(&rec->opts.target, err, errbuf, BUFSIZ); in cmd_record()
2428 err = target__parse_uid(&rec->opts.target); in cmd_record()
2432 target__strerror(&rec->opts.target, err, errbuf, BUFSIZ); in cmd_record()
2440 rec->opts.ignore_missing_thread = rec->opts.target.uid != UINT_MAX || rec->opts.target.pid; in cmd_record()
2443 if (perf_evlist__create_maps(rec->evlist, &rec->opts.target) < 0) in cmd_record()
2446 err = auxtrace_record__options(rec->itr, rec->evlist, &rec->opts); in cmd_record()
2455 if (rec->opts.full_auxtrace) in cmd_record()
2456 rec->buildid_all = true; in cmd_record()
2458 if (record_opts__config(&rec->opts)) { in cmd_record()
2463 if (rec->opts.nr_cblocks > nr_cblocks_max) in cmd_record()
2464 rec->opts.nr_cblocks = nr_cblocks_max; in cmd_record()
2465 pr_debug("nr_cblocks: %d\n", rec->opts.nr_cblocks); in cmd_record()
2467 pr_debug("affinity: %s\n", affinity_tags[rec->opts.affinity]); in cmd_record()
2468 pr_debug("mmap flush: %d\n", rec->opts.mmap_flush); in cmd_record()
2470 if (rec->opts.comp_level > comp_level_max) in cmd_record()
2471 rec->opts.comp_level = comp_level_max; in cmd_record()
2472 pr_debug("comp level: %d\n", rec->opts.comp_level); in cmd_record()
2476 evlist__delete(rec->evlist); in cmd_record()
2478 auxtrace_record__free(rec->itr); in cmd_record()
2484 struct record *rec = &record; in snapshot_sig_handler() local
2493 if (switch_output_signal(rec)) in snapshot_sig_handler()
2499 struct record *rec = &record; in alarm_sig_handler() local
2501 if (switch_output_time(rec)) in alarm_sig_handler()