Lines Matching refs:params

196 	struct timerlat_top_params *params;  in timerlat_top_handler()  local
202 params = top->params; in timerlat_top_handler()
204 if (!params->aa_only) { in timerlat_top_handler()
217 static void timerlat_top_header(struct timerlat_top_params *params, struct osnoise_tool *top) in timerlat_top_header() argument
224 if (params->pretty_output) in timerlat_top_header()
228 if (params->user_top) in timerlat_top_header()
231 if (params->pretty_output) in timerlat_top_header()
236 params->output_divisor == 1 ? "ns" : "us", in timerlat_top_header()
237 params->output_divisor == 1 ? "ns" : "us"); in timerlat_top_header()
239 if (params->user_top) { in timerlat_top_header()
241 params->output_divisor == 1 ? "ns" : "us"); in timerlat_top_header()
245 if (params->pretty_output) in timerlat_top_header()
249 if (params->user_top) in timerlat_top_header()
252 if (params->pretty_output) in timerlat_top_header()
265 struct timerlat_top_params *params = top->params; in timerlat_top_print() local
268 int divisor = params->output_divisor; in timerlat_top_print()
288 trace_seq_printf(s, "%9llu ", cpu_data->cur_irq / params->output_divisor); in timerlat_top_print()
289 trace_seq_printf(s, "%9llu ", cpu_data->min_irq / params->output_divisor); in timerlat_top_print()
304 if (!params->user_top) { in timerlat_top_print()
329 struct timerlat_top_params *params = top->params; in timerlat_top_print_sum() local
331 int divisor = params->output_divisor; in timerlat_top_print_sum()
350 if (params->user_top) in timerlat_top_print_sum()
360 trace_seq_printf(s, "%9llu ", summary->min_irq / params->output_divisor); in timerlat_top_print_sum()
375 if (!params->user_top) { in timerlat_top_print_sum()
406 timerlat_print_stats(struct timerlat_top_params *params, struct osnoise_tool *top) in timerlat_print_stats() argument
413 if (params->aa_only) in timerlat_print_stats()
419 if (!params->quiet) in timerlat_print_stats()
424 timerlat_top_header(params, top); in timerlat_print_stats()
427 if (params->cpus && !CPU_ISSET(i, &params->monitored_cpus)) in timerlat_print_stats()
508 struct timerlat_top_params *params; in timerlat_top_parse_args() local
514 params = calloc(1, sizeof(*params)); in timerlat_top_parse_args()
515 if (!params) in timerlat_top_parse_args()
519 params->dma_latency = -1; in timerlat_top_parse_args()
522 params->output_divisor = 1000; in timerlat_top_parse_args()
571 params->stop_total_us = auto_thresh; in timerlat_top_parse_args()
572 params->stop_us = auto_thresh; in timerlat_top_parse_args()
575 params->print_stack = auto_thresh; in timerlat_top_parse_args()
578 params->trace_output = "timerlat_trace.txt"; in timerlat_top_parse_args()
585 params->stop_total_us = auto_thresh; in timerlat_top_parse_args()
586 params->stop_us = auto_thresh; in timerlat_top_parse_args()
589 params->print_stack = auto_thresh; in timerlat_top_parse_args()
592 params->aa_only = 1; in timerlat_top_parse_args()
595 retval = parse_cpu_set(optarg, &params->monitored_cpus); in timerlat_top_parse_args()
598 params->cpus = optarg; in timerlat_top_parse_args()
601 params->cgroup = 1; in timerlat_top_parse_args()
604 params->cgroup_name = NULL; in timerlat_top_parse_args()
607 params->cgroup_name = ++optarg; in timerlat_top_parse_args()
614 params->duration = parse_seconds_duration(optarg); in timerlat_top_parse_args()
615 if (!params->duration) in timerlat_top_parse_args()
625 if (params->events) in timerlat_top_parse_args()
626 tevent->next = params->events; in timerlat_top_parse_args()
627 params->events = tevent; in timerlat_top_parse_args()
634 params->hk_cpus = 1; in timerlat_top_parse_args()
635 retval = parse_cpu_set(optarg, &params->hk_cpu_set); in timerlat_top_parse_args()
642 params->stop_us = get_llong_from_str(optarg); in timerlat_top_parse_args()
645 params->kernel_workload = true; in timerlat_top_parse_args()
648 params->output_divisor = 1; in timerlat_top_parse_args()
651 params->timerlat_period_us = get_llong_from_str(optarg); in timerlat_top_parse_args()
652 if (params->timerlat_period_us > 1000000) in timerlat_top_parse_args()
656 retval = parse_prio(optarg, &params->sched_param); in timerlat_top_parse_args()
659 params->set_sched = 1; in timerlat_top_parse_args()
662 params->quiet = 1; in timerlat_top_parse_args()
665 params->print_stack = get_llong_from_str(optarg); in timerlat_top_parse_args()
668 params->stop_total_us = get_llong_from_str(optarg); in timerlat_top_parse_args()
673 params->trace_output = &optarg[1]; in timerlat_top_parse_args()
675 params->trace_output = &optarg[0]; in timerlat_top_parse_args()
677 params->trace_output = argv[optind]; in timerlat_top_parse_args()
679 params->trace_output = "timerlat_trace.txt"; in timerlat_top_parse_args()
683 params->user_workload = true; in timerlat_top_parse_args()
686 params->user_top = true; in timerlat_top_parse_args()
689 if (params->events) { in timerlat_top_parse_args()
690 retval = trace_event_add_trigger(params->events, optarg); in timerlat_top_parse_args()
700 if (params->events) { in timerlat_top_parse_args()
701 retval = trace_event_add_filter(params->events, optarg); in timerlat_top_parse_args()
711 params->dma_latency = get_llong_from_str(optarg); in timerlat_top_parse_args()
712 if (params->dma_latency < 0 || params->dma_latency > 10000) { in timerlat_top_parse_args()
718 params->no_aa = 1; in timerlat_top_parse_args()
721 params->dump_tasks = 1; in timerlat_top_parse_args()
724 params->warmup = get_llong_from_str(optarg); in timerlat_top_parse_args()
727 params->buffer_size = get_llong_from_str(optarg); in timerlat_top_parse_args()
742 if (!params->stop_us && !params->stop_total_us) in timerlat_top_parse_args()
743 params->no_aa = 1; in timerlat_top_parse_args()
745 if (params->no_aa && params->aa_only) in timerlat_top_parse_args()
748 if (params->kernel_workload && params->user_workload) in timerlat_top_parse_args()
751 return params; in timerlat_top_parse_args()
758 timerlat_top_apply_config(struct osnoise_tool *top, struct timerlat_top_params *params) in timerlat_top_apply_config() argument
763 if (!params->sleep_time) in timerlat_top_apply_config()
764 params->sleep_time = 1; in timerlat_top_apply_config()
766 if (params->cpus) { in timerlat_top_apply_config()
767 retval = osnoise_set_cpus(top->context, params->cpus); in timerlat_top_apply_config()
774 CPU_SET(i, &params->monitored_cpus); in timerlat_top_apply_config()
777 if (params->stop_us) { in timerlat_top_apply_config()
778 retval = osnoise_set_stop_us(top->context, params->stop_us); in timerlat_top_apply_config()
785 if (params->stop_total_us) { in timerlat_top_apply_config()
786 retval = osnoise_set_stop_total_us(top->context, params->stop_total_us); in timerlat_top_apply_config()
794 if (params->timerlat_period_us) { in timerlat_top_apply_config()
795 retval = osnoise_set_timerlat_period_us(top->context, params->timerlat_period_us); in timerlat_top_apply_config()
803 if (params->print_stack) { in timerlat_top_apply_config()
804 retval = osnoise_set_print_stack(top->context, params->print_stack); in timerlat_top_apply_config()
811 if (params->hk_cpus) { in timerlat_top_apply_config()
812 retval = sched_setaffinity(getpid(), sizeof(params->hk_cpu_set), in timerlat_top_apply_config()
813 &params->hk_cpu_set); in timerlat_top_apply_config()
818 } else if (params->cpus) { in timerlat_top_apply_config()
826 auto_house_keeping(&params->monitored_cpus); in timerlat_top_apply_config()
833 if (!params->kernel_workload && !params->user_workload) { in timerlat_top_apply_config()
837 params->user_workload = 1; in timerlat_top_apply_config()
838 params->user_top = 1; in timerlat_top_apply_config()
841 params->kernel_workload = 1; in timerlat_top_apply_config()
845 if (params->user_top) { in timerlat_top_apply_config()
853 if (isatty(1) && !params->quiet) in timerlat_top_apply_config()
854 params->pretty_output = 1; in timerlat_top_apply_config()
866 *timerlat_init_top(struct timerlat_top_params *params) in timerlat_init_top() argument
881 top->params = params; in timerlat_init_top()
903 timerlat_top_set_signals(struct timerlat_top_params *params) in timerlat_top_set_signals() argument
906 if (params->duration) { in timerlat_top_set_signals()
908 alarm(params->duration); in timerlat_top_set_signals()
914 struct timerlat_top_params *params; in timerlat_top_main() local
926 params = timerlat_top_parse_args(argc, argv); in timerlat_top_main()
927 if (!params) in timerlat_top_main()
930 top = timerlat_init_top(params); in timerlat_top_main()
936 retval = timerlat_top_apply_config(top, params); in timerlat_top_main()
950 if (params->set_sched) { in timerlat_top_main()
951 retval = set_comm_sched_attr("timerlat/", &params->sched_param); in timerlat_top_main()
958 if (params->cgroup && !params->user_top) { in timerlat_top_main()
959 retval = set_comm_cgroup("timerlat/", params->cgroup_name); in timerlat_top_main()
966 if (params->dma_latency >= 0) { in timerlat_top_main()
967 dma_latency_fd = set_cpu_dma_latency(params->dma_latency); in timerlat_top_main()
974 if (params->trace_output) { in timerlat_top_main()
981 if (params->events) { in timerlat_top_main()
982 retval = trace_events_enable(&record->trace, params->events); in timerlat_top_main()
987 if (params->buffer_size > 0) { in timerlat_top_main()
988 retval = trace_set_buffer_size(&record->trace, params->buffer_size); in timerlat_top_main()
994 if (!params->no_aa) { in timerlat_top_main()
995 if (params->aa_only) { in timerlat_top_main()
1005 retval = timerlat_aa_init(aa, params->dump_tasks); in timerlat_top_main()
1021 if (params->user_workload) { in timerlat_top_main()
1027 params_u.set = &params->monitored_cpus; in timerlat_top_main()
1028 if (params->set_sched) in timerlat_top_main()
1029 params_u.sched_param = &params->sched_param; in timerlat_top_main()
1033 params_u.cgroup_name = params->cgroup_name; in timerlat_top_main()
1040 if (params->warmup > 0) { in timerlat_top_main()
1041 debug_msg("Warming up for %d seconds\n", params->warmup); in timerlat_top_main()
1042 sleep(params->warmup); in timerlat_top_main()
1052 if (params->trace_output) in timerlat_top_main()
1054 if (!params->no_aa && aa != top) in timerlat_top_main()
1059 timerlat_top_set_signals(params); in timerlat_top_main()
1062 sleep(params->sleep_time); in timerlat_top_main()
1064 if (params->aa_only && !trace_is_off(&top->trace, &record->trace)) in timerlat_top_main()
1078 if (!params->quiet) in timerlat_top_main()
1079 timerlat_print_stats(params, top); in timerlat_top_main()
1085 if (params->user_workload) { in timerlat_top_main()
1093 if (params->user_workload && !params_u.stopped_running) { in timerlat_top_main()
1098 timerlat_print_stats(params, top); in timerlat_top_main()
1105 if (!params->no_aa) in timerlat_top_main()
1106 timerlat_auto_analysis(params->stop_us, params->stop_total_us); in timerlat_top_main()
1108 if (params->trace_output) { in timerlat_top_main()
1109 printf(" Saving trace to %s\n", params->trace_output); in timerlat_top_main()
1110 save_trace_to_file(record->trace.inst, params->trace_output); in timerlat_top_main()
1112 } else if (params->aa_only) { in timerlat_top_main()
1128 trace_events_destroy(&record->trace, params->events); in timerlat_top_main()
1129 params->events = NULL; in timerlat_top_main()
1136 free(params); in timerlat_top_main()