Lines Matching refs:params
131 struct timerlat_params *params = tool->params; in timerlat_top_update() local
135 if (params->output_divisor) in timerlat_top_update()
136 latency = latency / params->output_divisor; in timerlat_top_update()
167 struct timerlat_params *params; in timerlat_top_handler() local
173 params = top->params; in timerlat_top_handler()
175 if (!params->aa_only) { in timerlat_top_handler()
258 static void timerlat_top_header(struct timerlat_params *params, struct osnoise_tool *top) in timerlat_top_header() argument
265 if (params->pretty_output) in timerlat_top_header()
269 if (params->user_data) in timerlat_top_header()
272 if (params->pretty_output) in timerlat_top_header()
277 params->output_divisor == 1 ? "ns" : "us", in timerlat_top_header()
278 params->output_divisor == 1 ? "ns" : "us"); in timerlat_top_header()
280 if (params->user_data) { in timerlat_top_header()
282 params->output_divisor == 1 ? "ns" : "us"); in timerlat_top_header()
286 if (params->pretty_output) in timerlat_top_header()
290 if (params->user_data) in timerlat_top_header()
293 if (params->pretty_output) in timerlat_top_header()
306 struct timerlat_params *params = top->params; in timerlat_top_print() local
341 if (!params->user_data) { in timerlat_top_print()
366 struct timerlat_params *params = top->params; in timerlat_top_print_sum() local
383 if (params->user_data) in timerlat_top_print_sum()
408 if (!params->user_data) { in timerlat_top_print_sum()
439 timerlat_print_stats(struct timerlat_params *params, struct osnoise_tool *top) in timerlat_print_stats() argument
446 if (params->aa_only) in timerlat_print_stats()
452 if (!params->quiet) in timerlat_print_stats()
457 timerlat_top_header(params, top); in timerlat_print_stats()
460 if (params->cpus && !CPU_ISSET(i, ¶ms->monitored_cpus)) in timerlat_print_stats()
545 struct timerlat_params *params; in timerlat_top_parse_args() local
552 params = calloc(1, sizeof(*params)); in timerlat_top_parse_args()
553 if (!params) in timerlat_top_parse_args()
556 actions_init(¶ms->threshold_actions); in timerlat_top_parse_args()
557 actions_init(¶ms->end_actions); in timerlat_top_parse_args()
560 params->dma_latency = -1; in timerlat_top_parse_args()
563 params->deepest_idle_state = -2; in timerlat_top_parse_args()
566 params->output_divisor = 1000; in timerlat_top_parse_args()
569 params->mode = TRACING_MODE_BPF; in timerlat_top_parse_args()
621 params->stop_total_us = auto_thresh; in timerlat_top_parse_args()
622 params->stop_us = auto_thresh; in timerlat_top_parse_args()
625 params->print_stack = auto_thresh; in timerlat_top_parse_args()
636 params->stop_total_us = auto_thresh; in timerlat_top_parse_args()
637 params->stop_us = auto_thresh; in timerlat_top_parse_args()
640 params->print_stack = auto_thresh; in timerlat_top_parse_args()
643 params->aa_only = 1; in timerlat_top_parse_args()
646 retval = parse_cpu_set(optarg, ¶ms->monitored_cpus); in timerlat_top_parse_args()
649 params->cpus = optarg; in timerlat_top_parse_args()
652 params->cgroup = 1; in timerlat_top_parse_args()
655 params->cgroup_name = NULL; in timerlat_top_parse_args()
658 params->cgroup_name = ++optarg; in timerlat_top_parse_args()
665 params->duration = parse_seconds_duration(optarg); in timerlat_top_parse_args()
666 if (!params->duration) in timerlat_top_parse_args()
676 if (params->events) in timerlat_top_parse_args()
677 tevent->next = params->events; in timerlat_top_parse_args()
678 params->events = tevent; in timerlat_top_parse_args()
685 params->hk_cpus = 1; in timerlat_top_parse_args()
686 retval = parse_cpu_set(optarg, ¶ms->hk_cpu_set); in timerlat_top_parse_args()
693 params->stop_us = get_llong_from_str(optarg); in timerlat_top_parse_args()
696 params->kernel_workload = true; in timerlat_top_parse_args()
699 params->output_divisor = 1; in timerlat_top_parse_args()
702 params->timerlat_period_us = get_llong_from_str(optarg); in timerlat_top_parse_args()
703 if (params->timerlat_period_us > 1000000) in timerlat_top_parse_args()
707 retval = parse_prio(optarg, ¶ms->sched_param); in timerlat_top_parse_args()
710 params->set_sched = 1; in timerlat_top_parse_args()
713 params->quiet = 1; in timerlat_top_parse_args()
716 params->print_stack = get_llong_from_str(optarg); in timerlat_top_parse_args()
719 params->stop_total_us = get_llong_from_str(optarg); in timerlat_top_parse_args()
733 params->user_workload = true; in timerlat_top_parse_args()
736 params->user_data = true; in timerlat_top_parse_args()
739 if (params->events) { in timerlat_top_parse_args()
740 retval = trace_event_add_trigger(params->events, optarg); in timerlat_top_parse_args()
750 if (params->events) { in timerlat_top_parse_args()
751 retval = trace_event_add_filter(params->events, optarg); in timerlat_top_parse_args()
761 params->dma_latency = get_llong_from_str(optarg); in timerlat_top_parse_args()
762 if (params->dma_latency < 0 || params->dma_latency > 10000) { in timerlat_top_parse_args()
768 params->no_aa = 1; in timerlat_top_parse_args()
771 params->dump_tasks = 1; in timerlat_top_parse_args()
774 params->warmup = get_llong_from_str(optarg); in timerlat_top_parse_args()
777 params->buffer_size = get_llong_from_str(optarg); in timerlat_top_parse_args()
780 params->deepest_idle_state = get_llong_from_str(optarg); in timerlat_top_parse_args()
783 retval = actions_parse(¶ms->threshold_actions, optarg); in timerlat_top_parse_args()
790 retval = actions_parse(¶ms->end_actions, optarg); in timerlat_top_parse_args()
802 actions_add_trace_output(¶ms->threshold_actions, trace_output); in timerlat_top_parse_args()
812 if (!params->stop_us && !params->stop_total_us) in timerlat_top_parse_args()
813 params->no_aa = 1; in timerlat_top_parse_args()
815 if (params->no_aa && params->aa_only) in timerlat_top_parse_args()
818 if (params->kernel_workload && params->user_workload) in timerlat_top_parse_args()
825 if (params->mode == TRACING_MODE_BPF && in timerlat_top_parse_args()
826 (params->threshold_actions.present[ACTION_TRACE_OUTPUT] || in timerlat_top_parse_args()
827 params->end_actions.present[ACTION_TRACE_OUTPUT] || !params->no_aa)) in timerlat_top_parse_args()
828 params->mode = TRACING_MODE_MIXED; in timerlat_top_parse_args()
830 return params; in timerlat_top_parse_args()
837 timerlat_top_apply_config(struct osnoise_tool *top, struct timerlat_params *params) in timerlat_top_apply_config() argument
841 retval = timerlat_apply_config(top, params); in timerlat_top_apply_config()
845 if (isatty(STDOUT_FILENO) && !params->quiet) in timerlat_top_apply_config()
846 params->pretty_output = 1; in timerlat_top_apply_config()
858 *timerlat_init_top(struct timerlat_params *params) in timerlat_init_top() argument
873 top->params = params; in timerlat_init_top()
906 timerlat_top_set_signals(struct timerlat_params *params) in timerlat_top_set_signals() argument
909 if (params->duration) { in timerlat_top_set_signals()
911 alarm(params->duration); in timerlat_top_set_signals()
922 struct timerlat_params *params, in timerlat_top_main_loop() argument
929 sleep(params->sleep_time); in timerlat_top_main_loop()
931 if (params->aa_only && !osnoise_trace_is_off(top, record)) in timerlat_top_main_loop()
945 if (!params->quiet) in timerlat_top_main_loop()
946 timerlat_print_stats(params, top); in timerlat_top_main_loop()
949 actions_perform(¶ms->threshold_actions); in timerlat_top_main_loop()
951 if (!params->threshold_actions.continue_flag) in timerlat_top_main_loop()
958 if (!params->no_aa) in timerlat_top_main_loop()
964 if (params->user_workload) { in timerlat_top_main_loop()
982 struct timerlat_params *params, in timerlat_top_bpf_main_loop() argument
987 if (params->aa_only) { in timerlat_top_bpf_main_loop()
995 wait_retval = timerlat_bpf_wait(params->quiet ? -1 : params->sleep_time); in timerlat_top_bpf_main_loop()
1003 if (!params->quiet) in timerlat_top_bpf_main_loop()
1004 timerlat_print_stats(params, top); in timerlat_top_bpf_main_loop()
1008 actions_perform(¶ms->threshold_actions); in timerlat_top_bpf_main_loop()
1010 if (!params->threshold_actions.continue_flag) in timerlat_top_bpf_main_loop()
1017 if (!params->no_aa) in timerlat_top_bpf_main_loop()
1023 if (params->user_workload) { in timerlat_top_bpf_main_loop()
1036 struct timerlat_params *params; in timerlat_top_main() local
1049 params = timerlat_top_parse_args(argc, argv); in timerlat_top_main()
1050 if (!params) in timerlat_top_main()
1053 top = timerlat_init_top(params); in timerlat_top_main()
1073 params->mode = TRACING_MODE_TRACEFS; in timerlat_top_main()
1076 params->mode = TRACING_MODE_TRACEFS; in timerlat_top_main()
1078 retval = timerlat_bpf_init(params); in timerlat_top_main()
1081 params->mode = TRACING_MODE_TRACEFS; in timerlat_top_main()
1085 retval = timerlat_top_apply_config(top, params); in timerlat_top_main()
1097 if (params->set_sched) { in timerlat_top_main()
1098 retval = set_comm_sched_attr("timerlat/", ¶ms->sched_param); in timerlat_top_main()
1105 if (params->cgroup && !params->user_data) { in timerlat_top_main()
1106 retval = set_comm_cgroup("timerlat/", params->cgroup_name); in timerlat_top_main()
1113 if (params->dma_latency >= 0) { in timerlat_top_main()
1114 dma_latency_fd = set_cpu_dma_latency(params->dma_latency); in timerlat_top_main()
1121 if (params->deepest_idle_state >= -1) { in timerlat_top_main()
1130 if (params->cpus && !CPU_ISSET(i, ¶ms->monitored_cpus)) in timerlat_top_main()
1136 if (set_deepest_cpu_idle_state(i, params->deepest_idle_state) < 0) { in timerlat_top_main()
1143 if (params->threshold_actions.present[ACTION_TRACE_OUTPUT] || in timerlat_top_main()
1144 params->end_actions.present[ACTION_TRACE_OUTPUT]) { in timerlat_top_main()
1150 params->threshold_actions.trace_output_inst = record->trace.inst; in timerlat_top_main()
1151 params->end_actions.trace_output_inst = record->trace.inst; in timerlat_top_main()
1153 if (params->events) { in timerlat_top_main()
1154 retval = trace_events_enable(&record->trace, params->events); in timerlat_top_main()
1159 if (params->buffer_size > 0) { in timerlat_top_main()
1160 retval = trace_set_buffer_size(&record->trace, params->buffer_size); in timerlat_top_main()
1166 if (!params->no_aa) { in timerlat_top_main()
1171 retval = timerlat_aa_init(aa, params->dump_tasks); in timerlat_top_main()
1187 if (params->user_workload) { in timerlat_top_main()
1193 params_u.set = ¶ms->monitored_cpus; in timerlat_top_main()
1194 if (params->set_sched) in timerlat_top_main()
1195 params_u.sched_param = ¶ms->sched_param; in timerlat_top_main()
1199 params_u.cgroup_name = params->cgroup_name; in timerlat_top_main()
1206 if (params->warmup > 0) { in timerlat_top_main()
1207 debug_msg("Warming up for %d seconds\n", params->warmup); in timerlat_top_main()
1208 sleep(params->warmup); in timerlat_top_main()
1220 if (!params->no_aa) in timerlat_top_main()
1222 if (params->mode == TRACING_MODE_TRACEFS) { in timerlat_top_main()
1233 timerlat_top_set_signals(params); in timerlat_top_main()
1235 if (params->mode == TRACING_MODE_TRACEFS) in timerlat_top_main()
1236 retval = timerlat_top_main_loop(top, record, aa, params, ¶ms_u); in timerlat_top_main()
1238 retval = timerlat_top_bpf_main_loop(top, record, aa, params, ¶ms_u); in timerlat_top_main()
1243 if (params->mode != TRACING_MODE_TRACEFS) in timerlat_top_main()
1246 if (params->user_workload && !params_u.stopped_running) { in timerlat_top_main()
1251 timerlat_print_stats(params, top); in timerlat_top_main()
1253 actions_perform(¶ms->end_actions); in timerlat_top_main()
1260 if (!params->no_aa) in timerlat_top_main()
1261 timerlat_auto_analysis(params->stop_us, params->stop_total_us); in timerlat_top_main()
1264 } else if (params->aa_only) { in timerlat_top_main()
1280 if (params->deepest_idle_state >= -1) { in timerlat_top_main()
1282 if (params->cpus && !CPU_ISSET(i, ¶ms->monitored_cpus)) in timerlat_top_main()
1287 trace_events_destroy(&record->trace, params->events); in timerlat_top_main()
1288 params->events = NULL; in timerlat_top_main()
1295 actions_destroy(¶ms->threshold_actions); in timerlat_top_main()
1296 actions_destroy(¶ms->end_actions); in timerlat_top_main()
1297 if (params->mode != TRACING_MODE_TRACEFS) in timerlat_top_main()
1299 free(params); in timerlat_top_main()