Lines Matching refs:params

161 	struct timerlat_top_params *params;
167 params = top->params;
169 if (!params->aa_only) {
184 struct timerlat_top_params *params = top->params;
192 if (params->user_top)
198 params->output_divisor == 1 ? "ns" : "us",
199 params->output_divisor == 1 ? "ns" : "us");
201 if (params->user_top) {
203 params->output_divisor == 1 ? "ns" : "us");
209 if (params->user_top)
221 struct timerlat_top_params *params = top->params;
224 int divisor = params->output_divisor;
247 trace_seq_printf(s, "%9llu ", cpu_data->cur_irq / params->output_divisor);
248 trace_seq_printf(s, "%9llu ", cpu_data->min_irq / params->output_divisor);
266 if (!params->user_top) {
300 timerlat_print_stats(struct timerlat_top_params *params, struct osnoise_tool *top)
306 if (params->aa_only)
312 if (!params->quiet)
318 if (params->cpus && !CPU_ISSET(i, &params->monitored_cpus))
393 struct timerlat_top_params *params;
399 params = calloc(1, sizeof(*params));
400 if (!params)
404 params->dma_latency = -1;
407 params->output_divisor = 1000;
453 params->stop_total_us = auto_thresh;
454 params->stop_us = auto_thresh;
457 params->print_stack = auto_thresh;
460 params->trace_output = "timerlat_trace.txt";
467 params->stop_total_us = auto_thresh;
468 params->stop_us = auto_thresh;
471 params->print_stack = auto_thresh;
474 params->aa_only = 1;
477 retval = parse_cpu_set(optarg, &params->monitored_cpus);
480 params->cpus = optarg;
483 params->cgroup = 1;
486 params->cgroup_name = NULL;
489 params->cgroup_name = ++optarg;
496 params->duration = parse_seconds_duration(optarg);
497 if (!params->duration)
507 if (params->events)
508 tevent->next = params->events;
509 params->events = tevent;
516 params->hk_cpus = 1;
517 retval = parse_cpu_set(optarg, &params->hk_cpu_set);
524 params->stop_us = get_llong_from_str(optarg);
527 params->output_divisor = 1;
530 params->timerlat_period_us = get_llong_from_str(optarg);
531 if (params->timerlat_period_us > 1000000)
535 retval = parse_prio(optarg, &params->sched_param);
538 params->set_sched = 1;
541 params->quiet = 1;
544 params->print_stack = get_llong_from_str(optarg);
547 params->stop_total_us = get_llong_from_str(optarg);
552 params->trace_output = &optarg[1];
554 params->trace_output = "timerlat_trace.txt";
558 params->user_workload = true;
561 params->user_top = true;
564 if (params->events) {
565 retval = trace_event_add_trigger(params->events, optarg);
575 if (params->events) {
576 retval = trace_event_add_filter(params->events, optarg);
586 params->dma_latency = get_llong_from_str(optarg);
587 if (params->dma_latency < 0 || params->dma_latency > 10000) {
593 params->no_aa = 1;
596 params->dump_tasks = 1;
611 if (!params->stop_us && !params->stop_total_us)
612 params->no_aa = 1;
614 if (params->no_aa && params->aa_only)
617 return params;
624 timerlat_top_apply_config(struct osnoise_tool *top, struct timerlat_top_params *params)
629 if (!params->sleep_time)
630 params->sleep_time = 1;
632 if (params->cpus) {
633 retval = osnoise_set_cpus(top->context, params->cpus);
640 CPU_SET(i, &params->monitored_cpus);
643 if (params->stop_us) {
644 retval = osnoise_set_stop_us(top->context, params->stop_us);
651 if (params->stop_total_us) {
652 retval = osnoise_set_stop_total_us(top->context, params->stop_total_us);
660 if (params->timerlat_period_us) {
661 retval = osnoise_set_timerlat_period_us(top->context, params->timerlat_period_us);
669 if (params->print_stack) {
670 retval = osnoise_set_print_stack(top->context, params->print_stack);
677 if (params->hk_cpus) {
678 retval = sched_setaffinity(getpid(), sizeof(params->hk_cpu_set),
679 &params->hk_cpu_set);
684 } else if (params->cpus) {
692 auto_house_keeping(&params->monitored_cpus);
695 if (params->user_top) {
713 *timerlat_init_top(struct timerlat_top_params *params)
728 top->params = params;
750 timerlat_top_set_signals(struct timerlat_top_params *params)
753 if (params->duration) {
755 alarm(params->duration);
761 struct timerlat_top_params *params;
773 params = timerlat_top_parse_args(argc, argv);
774 if (!params)
777 top = timerlat_init_top(params);
783 retval = timerlat_top_apply_config(top, params);
797 if (params->set_sched) {
798 retval = set_comm_sched_attr("timerlat/", &params->sched_param);
805 if (params->cgroup && !params->user_top) {
806 retval = set_comm_cgroup("timerlat/", params->cgroup_name);
813 if (params->dma_latency >= 0) {
814 dma_latency_fd = set_cpu_dma_latency(params->dma_latency);
821 if (params->trace_output) {
828 if (params->events) {
829 retval = trace_events_enable(&record->trace, params->events);
835 if (!params->no_aa) {
836 if (params->aa_only) {
846 retval = timerlat_aa_init(aa, params->dump_tasks);
869 if (params->trace_output)
871 if (!params->no_aa && aa != top)
876 timerlat_top_set_signals(params);
878 if (params->user_workload) {
884 params_u.set = &params->monitored_cpus;
885 if (params->set_sched)
886 params_u.sched_param = &params->sched_param;
890 params_u.cgroup_name = params->cgroup_name;
898 sleep(params->sleep_time);
900 if (params->aa_only && !trace_is_off(&top->trace, &record->trace))
914 if (!params->quiet)
915 timerlat_print_stats(params, top);
921 if (params->user_workload) {
929 if (params->user_workload && !params_u.stopped_running) {
934 timerlat_print_stats(params, top);
941 if (!params->no_aa)
942 timerlat_auto_analysis(params->stop_us, params->stop_total_us);
944 if (params->trace_output) {
945 printf(" Saving trace to %s\n", params->trace_output);
946 save_trace_to_file(record->trace.inst, params->trace_output);
948 } else if (params->aa_only) {
964 trace_events_destroy(&record->trace, params->events);
965 params->events = NULL;
972 free(params);