Lines Matching full:context
28 char *osnoise_get_cpus(struct osnoise_context *context) in osnoise_get_cpus() argument
30 if (context->curr_cpus) in osnoise_get_cpus()
31 return context->curr_cpus; in osnoise_get_cpus()
33 if (context->orig_cpus) in osnoise_get_cpus()
34 return context->orig_cpus; in osnoise_get_cpus()
36 context->orig_cpus = tracefs_instance_file_read(NULL, "osnoise/cpus", NULL); in osnoise_get_cpus()
42 return context->orig_cpus; in osnoise_get_cpus()
52 int osnoise_set_cpus(struct osnoise_context *context, char *cpus) in osnoise_set_cpus() argument
54 char *orig_cpus = osnoise_get_cpus(context); in osnoise_set_cpus()
61 context->curr_cpus = strdup(cpus); in osnoise_set_cpus()
62 if (!context->curr_cpus) in osnoise_set_cpus()
67 debug_msg("setting cpus to %s from %s", cpus, context->orig_cpus); in osnoise_set_cpus()
71 free(context->curr_cpus); in osnoise_set_cpus()
72 context->curr_cpus = NULL; in osnoise_set_cpus()
86 void osnoise_restore_cpus(struct osnoise_context *context) in osnoise_restore_cpus() argument
90 if (!context->orig_cpus) in osnoise_restore_cpus()
93 if (!context->curr_cpus) in osnoise_restore_cpus()
97 if (!strcmp(context->orig_cpus, context->curr_cpus)) in osnoise_restore_cpus()
100 debug_msg("restoring cpus to %s", context->orig_cpus); in osnoise_restore_cpus()
102 retval = tracefs_instance_file_write(NULL, "osnoise/cpus", context->orig_cpus); in osnoise_restore_cpus()
107 free(context->curr_cpus); in osnoise_restore_cpus()
108 context->curr_cpus = NULL; in osnoise_restore_cpus()
114 void osnoise_put_cpus(struct osnoise_context *context) in osnoise_put_cpus() argument
116 osnoise_restore_cpus(context); in osnoise_put_cpus()
118 if (!context->orig_cpus) in osnoise_put_cpus()
121 free(context->orig_cpus); in osnoise_put_cpus()
122 context->orig_cpus = NULL; in osnoise_put_cpus()
172 unsigned long long osnoise_get_runtime(struct osnoise_context *context) in osnoise_get_runtime() argument
176 if (context->runtime_us != OSNOISE_TIME_INIT_VAL) in osnoise_get_runtime()
177 return context->runtime_us; in osnoise_get_runtime()
179 if (context->orig_runtime_us != OSNOISE_TIME_INIT_VAL) in osnoise_get_runtime()
180 return context->orig_runtime_us; in osnoise_get_runtime()
186 context->orig_runtime_us = runtime_us; in osnoise_get_runtime()
198 unsigned long long osnoise_get_period(struct osnoise_context *context) in osnoise_get_period() argument
202 if (context->period_us != OSNOISE_TIME_INIT_VAL) in osnoise_get_period()
203 return context->period_us; in osnoise_get_period()
205 if (context->orig_period_us != OSNOISE_TIME_INIT_VAL) in osnoise_get_period()
206 return context->orig_period_us; in osnoise_get_period()
212 context->orig_period_us = period_us; in osnoise_get_period()
219 static int __osnoise_write_runtime(struct osnoise_context *context, in __osnoise_write_runtime() argument
224 if (context->orig_runtime_us == OSNOISE_TIME_INIT_VAL) in __osnoise_write_runtime()
231 context->runtime_us = runtime; in __osnoise_write_runtime()
235 static int __osnoise_write_period(struct osnoise_context *context, in __osnoise_write_period() argument
240 if (context->orig_period_us == OSNOISE_TIME_INIT_VAL) in __osnoise_write_period()
247 context->period_us = period; in __osnoise_write_period()
258 int osnoise_set_runtime_period(struct osnoise_context *context, in osnoise_set_runtime_period() argument
269 curr_runtime_us = osnoise_get_runtime(context); in osnoise_set_runtime_period()
270 curr_period_us = osnoise_get_period(context); in osnoise_set_runtime_period()
279 return __osnoise_write_runtime(context, runtime); in osnoise_set_runtime_period()
283 return __osnoise_write_period(context, period); in osnoise_set_runtime_period()
287 retval = __osnoise_write_period(context, period); in osnoise_set_runtime_period()
290 retval = __osnoise_write_runtime(context, runtime); in osnoise_set_runtime_period()
294 retval = __osnoise_write_runtime(context, runtime); in osnoise_set_runtime_period()
297 retval = __osnoise_write_period(context, period); in osnoise_set_runtime_period()
308 void osnoise_restore_runtime_period(struct osnoise_context *context) in osnoise_restore_runtime_period() argument
310 unsigned long long orig_runtime = context->orig_runtime_us; in osnoise_restore_runtime_period()
311 unsigned long long orig_period = context->orig_period_us; in osnoise_restore_runtime_period()
312 unsigned long long curr_runtime = context->runtime_us; in osnoise_restore_runtime_period()
313 unsigned long long curr_period = context->period_us; in osnoise_restore_runtime_period()
322 retval = osnoise_set_runtime_period(context, orig_runtime, orig_period); in osnoise_restore_runtime_period()
327 context->runtime_us = OSNOISE_TIME_INIT_VAL; in osnoise_restore_runtime_period()
328 context->period_us = OSNOISE_TIME_INIT_VAL; in osnoise_restore_runtime_period()
334 void osnoise_put_runtime_period(struct osnoise_context *context) in osnoise_put_runtime_period() argument
336 osnoise_restore_runtime_period(context); in osnoise_put_runtime_period()
338 if (context->orig_runtime_us != OSNOISE_TIME_INIT_VAL) in osnoise_put_runtime_period()
339 context->orig_runtime_us = OSNOISE_TIME_INIT_VAL; in osnoise_put_runtime_period()
341 if (context->orig_period_us != OSNOISE_TIME_INIT_VAL) in osnoise_put_runtime_period()
342 context->orig_period_us = OSNOISE_TIME_INIT_VAL; in osnoise_put_runtime_period()
349 osnoise_get_timerlat_period_us(struct osnoise_context *context) in osnoise_get_timerlat_period_us() argument
353 if (context->timerlat_period_us != OSNOISE_TIME_INIT_VAL) in osnoise_get_timerlat_period_us()
354 return context->timerlat_period_us; in osnoise_get_timerlat_period_us()
356 if (context->orig_timerlat_period_us != OSNOISE_TIME_INIT_VAL) in osnoise_get_timerlat_period_us()
357 return context->orig_timerlat_period_us; in osnoise_get_timerlat_period_us()
363 context->orig_timerlat_period_us = timerlat_period_us; in osnoise_get_timerlat_period_us()
373 int osnoise_set_timerlat_period_us(struct osnoise_context *context, long long timerlat_period_us) in osnoise_set_timerlat_period_us() argument
375 long long curr_timerlat_period_us = osnoise_get_timerlat_period_us(context); in osnoise_set_timerlat_period_us()
385 context->timerlat_period_us = timerlat_period_us; in osnoise_set_timerlat_period_us()
393 void osnoise_restore_timerlat_period_us(struct osnoise_context *context) in osnoise_restore_timerlat_period_us() argument
397 if (context->orig_timerlat_period_us == OSNOISE_TIME_INIT_VAL) in osnoise_restore_timerlat_period_us()
400 if (context->orig_timerlat_period_us == context->timerlat_period_us) in osnoise_restore_timerlat_period_us()
403 retval = osnoise_write_ll_config("osnoise/timerlat_period_us", context->orig_timerlat_period_us); in osnoise_restore_timerlat_period_us()
408 context->timerlat_period_us = OSNOISE_TIME_INIT_VAL; in osnoise_restore_timerlat_period_us()
414 void osnoise_put_timerlat_period_us(struct osnoise_context *context) in osnoise_put_timerlat_period_us() argument
416 osnoise_restore_timerlat_period_us(context); in osnoise_put_timerlat_period_us()
418 if (context->orig_timerlat_period_us == OSNOISE_TIME_INIT_VAL) in osnoise_put_timerlat_period_us()
421 context->orig_timerlat_period_us = OSNOISE_TIME_INIT_VAL; in osnoise_put_timerlat_period_us()
428 osnoise_get_stop_us(struct osnoise_context *context) in osnoise_get_stop_us() argument
432 if (context->stop_us != OSNOISE_OPTION_INIT_VAL) in osnoise_get_stop_us()
433 return context->stop_us; in osnoise_get_stop_us()
435 if (context->orig_stop_us != OSNOISE_OPTION_INIT_VAL) in osnoise_get_stop_us()
436 return context->orig_stop_us; in osnoise_get_stop_us()
442 context->orig_stop_us = stop_us; in osnoise_get_stop_us()
452 int osnoise_set_stop_us(struct osnoise_context *context, long long stop_us) in osnoise_set_stop_us() argument
454 long long curr_stop_us = osnoise_get_stop_us(context); in osnoise_set_stop_us()
464 context->stop_us = stop_us; in osnoise_set_stop_us()
472 void osnoise_restore_stop_us(struct osnoise_context *context) in osnoise_restore_stop_us() argument
476 if (context->orig_stop_us == OSNOISE_OPTION_INIT_VAL) in osnoise_restore_stop_us()
479 if (context->orig_stop_us == context->stop_us) in osnoise_restore_stop_us()
482 retval = osnoise_write_ll_config("osnoise/stop_tracing_us", context->orig_stop_us); in osnoise_restore_stop_us()
487 context->stop_us = OSNOISE_OPTION_INIT_VAL; in osnoise_restore_stop_us()
493 void osnoise_put_stop_us(struct osnoise_context *context) in osnoise_put_stop_us() argument
495 osnoise_restore_stop_us(context); in osnoise_put_stop_us()
497 if (context->orig_stop_us == OSNOISE_OPTION_INIT_VAL) in osnoise_put_stop_us()
500 context->orig_stop_us = OSNOISE_OPTION_INIT_VAL; in osnoise_put_stop_us()
507 osnoise_get_stop_total_us(struct osnoise_context *context) in osnoise_get_stop_total_us() argument
511 if (context->stop_total_us != OSNOISE_OPTION_INIT_VAL) in osnoise_get_stop_total_us()
512 return context->stop_total_us; in osnoise_get_stop_total_us()
514 if (context->orig_stop_total_us != OSNOISE_OPTION_INIT_VAL) in osnoise_get_stop_total_us()
515 return context->orig_stop_total_us; in osnoise_get_stop_total_us()
521 context->orig_stop_total_us = stop_total_us; in osnoise_get_stop_total_us()
531 int osnoise_set_stop_total_us(struct osnoise_context *context, long long stop_total_us) in osnoise_set_stop_total_us() argument
533 long long curr_stop_total_us = osnoise_get_stop_total_us(context); in osnoise_set_stop_total_us()
543 context->stop_total_us = stop_total_us; in osnoise_set_stop_total_us()
551 void osnoise_restore_stop_total_us(struct osnoise_context *context) in osnoise_restore_stop_total_us() argument
555 if (context->orig_stop_total_us == OSNOISE_OPTION_INIT_VAL) in osnoise_restore_stop_total_us()
558 if (context->orig_stop_total_us == context->stop_total_us) in osnoise_restore_stop_total_us()
562 context->orig_stop_total_us); in osnoise_restore_stop_total_us()
567 context->stop_total_us = OSNOISE_OPTION_INIT_VAL; in osnoise_restore_stop_total_us()
573 void osnoise_put_stop_total_us(struct osnoise_context *context) in osnoise_put_stop_total_us() argument
575 osnoise_restore_stop_total_us(context); in osnoise_put_stop_total_us()
577 if (context->orig_stop_total_us == OSNOISE_OPTION_INIT_VAL) in osnoise_put_stop_total_us()
580 context->orig_stop_total_us = OSNOISE_OPTION_INIT_VAL; in osnoise_put_stop_total_us()
587 osnoise_get_print_stack(struct osnoise_context *context) in osnoise_get_print_stack() argument
591 if (context->print_stack != OSNOISE_OPTION_INIT_VAL) in osnoise_get_print_stack()
592 return context->print_stack; in osnoise_get_print_stack()
594 if (context->orig_print_stack != OSNOISE_OPTION_INIT_VAL) in osnoise_get_print_stack()
595 return context->orig_print_stack; in osnoise_get_print_stack()
601 context->orig_print_stack = print_stack; in osnoise_get_print_stack()
611 int osnoise_set_print_stack(struct osnoise_context *context, long long print_stack) in osnoise_set_print_stack() argument
613 long long curr_print_stack = osnoise_get_print_stack(context); in osnoise_set_print_stack()
623 context->print_stack = print_stack; in osnoise_set_print_stack()
631 void osnoise_restore_print_stack(struct osnoise_context *context) in osnoise_restore_print_stack() argument
635 if (context->orig_print_stack == OSNOISE_OPTION_INIT_VAL) in osnoise_restore_print_stack()
638 if (context->orig_print_stack == context->print_stack) in osnoise_restore_print_stack()
641 retval = osnoise_write_ll_config("osnoise/print_stack", context->orig_print_stack); in osnoise_restore_print_stack()
646 context->print_stack = OSNOISE_OPTION_INIT_VAL; in osnoise_restore_print_stack()
652 void osnoise_put_print_stack(struct osnoise_context *context) in osnoise_put_print_stack() argument
654 osnoise_restore_print_stack(context); in osnoise_put_print_stack()
656 if (context->orig_print_stack == OSNOISE_OPTION_INIT_VAL) in osnoise_put_print_stack()
659 context->orig_print_stack = OSNOISE_OPTION_INIT_VAL; in osnoise_put_print_stack()
666 osnoise_get_tracing_thresh(struct osnoise_context *context) in osnoise_get_tracing_thresh() argument
670 if (context->tracing_thresh != OSNOISE_OPTION_INIT_VAL) in osnoise_get_tracing_thresh()
671 return context->tracing_thresh; in osnoise_get_tracing_thresh()
673 if (context->orig_tracing_thresh != OSNOISE_OPTION_INIT_VAL) in osnoise_get_tracing_thresh()
674 return context->orig_tracing_thresh; in osnoise_get_tracing_thresh()
680 context->orig_tracing_thresh = tracing_thresh; in osnoise_get_tracing_thresh()
690 int osnoise_set_tracing_thresh(struct osnoise_context *context, long long tracing_thresh) in osnoise_set_tracing_thresh() argument
692 long long curr_tracing_thresh = osnoise_get_tracing_thresh(context); in osnoise_set_tracing_thresh()
702 context->tracing_thresh = tracing_thresh; in osnoise_set_tracing_thresh()
710 void osnoise_restore_tracing_thresh(struct osnoise_context *context) in osnoise_restore_tracing_thresh() argument
714 if (context->orig_tracing_thresh == OSNOISE_OPTION_INIT_VAL) in osnoise_restore_tracing_thresh()
717 if (context->orig_tracing_thresh == context->tracing_thresh) in osnoise_restore_tracing_thresh()
720 retval = osnoise_write_ll_config("tracing_thresh", context->orig_tracing_thresh); in osnoise_restore_tracing_thresh()
725 context->tracing_thresh = OSNOISE_OPTION_INIT_VAL; in osnoise_restore_tracing_thresh()
731 void osnoise_put_tracing_thresh(struct osnoise_context *context) in osnoise_put_tracing_thresh() argument
733 osnoise_restore_tracing_thresh(context); in osnoise_put_tracing_thresh()
735 if (context->orig_tracing_thresh == OSNOISE_OPTION_INIT_VAL) in osnoise_put_tracing_thresh()
738 context->orig_tracing_thresh = OSNOISE_OPTION_INIT_VAL; in osnoise_put_tracing_thresh()
787 static int osnoise_get_irq_disable(struct osnoise_context *context) in osnoise_get_irq_disable() argument
789 if (context->opt_irq_disable != OSNOISE_OPTION_INIT_VAL) in osnoise_get_irq_disable()
790 return context->opt_irq_disable; in osnoise_get_irq_disable()
792 if (context->orig_opt_irq_disable != OSNOISE_OPTION_INIT_VAL) in osnoise_get_irq_disable()
793 return context->orig_opt_irq_disable; in osnoise_get_irq_disable()
795 context->orig_opt_irq_disable = osnoise_options_get_option("OSNOISE_IRQ_DISABLE"); in osnoise_get_irq_disable()
797 return context->orig_opt_irq_disable; in osnoise_get_irq_disable()
800 int osnoise_set_irq_disable(struct osnoise_context *context, bool onoff) in osnoise_set_irq_disable() argument
802 int opt_irq_disable = osnoise_get_irq_disable(context); in osnoise_set_irq_disable()
815 context->opt_irq_disable = onoff; in osnoise_set_irq_disable()
820 static void osnoise_restore_irq_disable(struct osnoise_context *context) in osnoise_restore_irq_disable() argument
824 if (context->orig_opt_irq_disable == OSNOISE_OPTION_INIT_VAL) in osnoise_restore_irq_disable()
827 if (context->orig_opt_irq_disable == context->opt_irq_disable) in osnoise_restore_irq_disable()
830 retval = osnoise_options_set_option("OSNOISE_IRQ_DISABLE", context->orig_opt_irq_disable); in osnoise_restore_irq_disable()
835 context->orig_opt_irq_disable = OSNOISE_OPTION_INIT_VAL; in osnoise_restore_irq_disable()
838 static void osnoise_put_irq_disable(struct osnoise_context *context) in osnoise_put_irq_disable() argument
840 osnoise_restore_irq_disable(context); in osnoise_put_irq_disable()
842 if (context->orig_opt_irq_disable == OSNOISE_OPTION_INIT_VAL) in osnoise_put_irq_disable()
845 context->orig_opt_irq_disable = OSNOISE_OPTION_INIT_VAL; in osnoise_put_irq_disable()
848 static int osnoise_get_workload(struct osnoise_context *context) in osnoise_get_workload() argument
850 if (context->opt_workload != OSNOISE_OPTION_INIT_VAL) in osnoise_get_workload()
851 return context->opt_workload; in osnoise_get_workload()
853 if (context->orig_opt_workload != OSNOISE_OPTION_INIT_VAL) in osnoise_get_workload()
854 return context->orig_opt_workload; in osnoise_get_workload()
856 context->orig_opt_workload = osnoise_options_get_option("OSNOISE_WORKLOAD"); in osnoise_get_workload()
858 return context->orig_opt_workload; in osnoise_get_workload()
861 int osnoise_set_workload(struct osnoise_context *context, bool onoff) in osnoise_set_workload() argument
863 int opt_workload = osnoise_get_workload(context); in osnoise_set_workload()
876 context->opt_workload = onoff; in osnoise_set_workload()
881 static void osnoise_restore_workload(struct osnoise_context *context) in osnoise_restore_workload() argument
885 if (context->orig_opt_workload == OSNOISE_OPTION_INIT_VAL) in osnoise_restore_workload()
888 if (context->orig_opt_workload == context->opt_workload) in osnoise_restore_workload()
891 retval = osnoise_options_set_option("OSNOISE_WORKLOAD", context->orig_opt_workload); in osnoise_restore_workload()
896 context->orig_opt_workload = OSNOISE_OPTION_INIT_VAL; in osnoise_restore_workload()
899 static void osnoise_put_workload(struct osnoise_context *context) in osnoise_put_workload() argument
901 osnoise_restore_workload(context); in osnoise_put_workload()
903 if (context->orig_opt_workload == OSNOISE_OPTION_INIT_VAL) in osnoise_put_workload()
906 context->orig_opt_workload = OSNOISE_OPTION_INIT_VAL; in osnoise_put_workload()
931 * osnoise_get_context - increase the usage of a context and return it
933 int osnoise_get_context(struct osnoise_context *context) in osnoise_get_context() argument
937 if (context->flags & FLAG_CONTEXT_DELETED) { in osnoise_get_context()
940 context->ref++; in osnoise_get_context()
950 * The osnoise context contains the information of the "osnoise/" configs.
955 struct osnoise_context *context; in osnoise_context_alloc() local
957 context = calloc(1, sizeof(*context)); in osnoise_context_alloc()
958 if (!context) in osnoise_context_alloc()
961 context->orig_stop_us = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
962 context->stop_us = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
964 context->orig_stop_total_us = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
965 context->stop_total_us = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
967 context->orig_print_stack = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
968 context->print_stack = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
970 context->orig_tracing_thresh = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
971 context->tracing_thresh = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
973 context->orig_opt_irq_disable = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
974 context->opt_irq_disable = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
976 context->orig_opt_workload = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
977 context->opt_workload = OSNOISE_OPTION_INIT_VAL; in osnoise_context_alloc()
979 osnoise_get_context(context); in osnoise_context_alloc()
981 return context; in osnoise_context_alloc()
987 * If there is no other user for the context, the original data
990 void osnoise_put_context(struct osnoise_context *context) in osnoise_put_context() argument
992 if (--context->ref < 1) in osnoise_put_context()
993 context->flags |= FLAG_CONTEXT_DELETED; in osnoise_put_context()
995 if (!(context->flags & FLAG_CONTEXT_DELETED)) in osnoise_put_context()
998 osnoise_put_cpus(context); in osnoise_put_context()
999 osnoise_put_runtime_period(context); in osnoise_put_context()
1000 osnoise_put_stop_us(context); in osnoise_put_context()
1001 osnoise_put_stop_total_us(context); in osnoise_put_context()
1002 osnoise_put_timerlat_period_us(context); in osnoise_put_context()
1003 osnoise_put_print_stack(context); in osnoise_put_context()
1004 osnoise_put_tracing_thresh(context); in osnoise_put_context()
1005 osnoise_put_irq_disable(context); in osnoise_put_context()
1006 osnoise_put_workload(context); in osnoise_put_context()
1008 free(context); in osnoise_put_context()
1021 if (top->context) in osnoise_destroy_tool()
1022 osnoise_put_context(top->context); in osnoise_destroy_tool()
1030 * It allocs data, create a context to store data and
1042 top->context = osnoise_context_alloc(); in osnoise_init_tool()
1043 if (!top->context) in osnoise_init_tool()
1133 retval = osnoise_set_cpus(tool->context, params->cpus ? params->cpus : "all"); in osnoise_apply_config()
1140 retval = osnoise_set_runtime_period(tool->context, in osnoise_apply_config()
1144 retval = osnoise_set_runtime_period(tool->context, in osnoise_apply_config()
1154 retval = osnoise_set_stop_us(tool->context, params->stop_us); in osnoise_apply_config()
1160 retval = osnoise_set_stop_total_us(tool->context, params->stop_total_us); in osnoise_apply_config()
1166 retval = osnoise_set_tracing_thresh(tool->context, params->threshold); in osnoise_apply_config()
1190 retval = osnoise_set_workload(tool->context, true); in osnoise_apply_config()