Lines Matching full:script
331 return fprintf(fp, "[ perf script: Wrote %.3f MB %s (%" PRIu64 " samples) ]\n", in evsel_script__fprintf()
630 tod_scnprintf(struct perf_script *script, char *buf, int buflen, in tod_scnprintf() argument
641 if (buflen < 64 || !script) in tod_scnprintf()
644 env = &script->session->header.env; in tod_scnprintf()
691 static int perf_sample__fprintf_start(struct perf_script *script, in perf_sample__fprintf_start() argument
773 tod_scnprintf(script, tstr, sizeof(tstr), sample->time); in perf_sample__fprintf_start()
1828 static void perf_sample__fprint_metric(struct perf_script *script, in perf_sample__fprint_metric() argument
1849 perf_evlist__alloc_stats(script->session->evlist, false); in perf_sample__fprint_metric()
1912 static void process_event(struct perf_script *script, in process_event() argument
1929 if (evswitch__discard(&script->evswitch, evsel)) in process_event()
1934 perf_sample__fprintf_start(script, sample, thread, evsel, in process_event()
1943 if (!script->name_width) in process_event()
1944 script->name_width = evlist__max_name_len(script->session->evlist); in process_event()
1946 fprintf(fp, "%*s: ", script->name_width, evname ?: "[unknown]"); in process_event()
1977 if (script->stitch_lbr) in process_event()
2021 perf_sample__fprint_metric(script, thread, evsel, sample, fp); in process_event()
2090 pr_debug("\nperf script stopped\n"); in cleanup_scripting()
2224 struct perf_script *script = container_of(tool, struct perf_script, tool); in print_event_with_time() local
2225 struct perf_session *session = script->session; in print_event_with_time()
2243 perf_sample__fprintf_start(script, sample, thread, evsel, in print_event_with_time()
2351 struct perf_script *script = container_of(tool, struct perf_script, tool); in process_switch_event() local
2359 if (!script->show_switch_events) in process_switch_event()
2416 static void perf_script__fclose_per_event_dump(struct perf_script *script) in perf_script__fclose_per_event_dump() argument
2418 struct evlist *evlist = script->session->evlist; in perf_script__fclose_per_event_dump()
2429 static int perf_script__fopen_per_event_dump(struct perf_script *script) in perf_script__fopen_per_event_dump() argument
2433 evlist__for_each_entry(script->session->evlist, evsel) { in perf_script__fopen_per_event_dump()
2444 evsel->priv = evsel_script__new(evsel, script->session->data); in perf_script__fopen_per_event_dump()
2452 perf_script__fclose_per_event_dump(script); in perf_script__fopen_per_event_dump()
2456 static int perf_script__setup_per_event_dump(struct perf_script *script) in perf_script__setup_per_event_dump() argument
2460 if (script->per_event_dump) in perf_script__setup_per_event_dump()
2461 return perf_script__fopen_per_event_dump(script); in perf_script__setup_per_event_dump()
2465 evlist__for_each_entry(script->session->evlist, evsel) in perf_script__setup_per_event_dump()
2471 static void perf_script__exit_per_event_dump_stats(struct perf_script *script) in perf_script__exit_per_event_dump_stats() argument
2475 evlist__for_each_entry(script->session->evlist, evsel) { in perf_script__exit_per_event_dump_stats()
2484 static void perf_script__exit(struct perf_script *script) in perf_script__exit() argument
2486 perf_thread_map__put(script->threads); in perf_script__exit()
2487 perf_cpu_map__put(script->cpus); in perf_script__exit()
2490 static int __cmd_script(struct perf_script *script) in __cmd_script() argument
2499 if (script->show_task_events) { in __cmd_script()
2500 script->tool.comm = process_comm_event; in __cmd_script()
2501 script->tool.fork = process_fork_event; in __cmd_script()
2502 script->tool.exit = process_exit_event; in __cmd_script()
2504 if (script->show_mmap_events) { in __cmd_script()
2505 script->tool.mmap = process_mmap_event; in __cmd_script()
2506 script->tool.mmap2 = process_mmap2_event; in __cmd_script()
2508 if (script->show_switch_events || (scripting_ops && scripting_ops->process_switch)) in __cmd_script()
2509 script->tool.context_switch = process_switch_event; in __cmd_script()
2510 if (script->show_namespace_events) in __cmd_script()
2511 script->tool.namespaces = process_namespaces_event; in __cmd_script()
2512 if (script->show_cgroup_events) in __cmd_script()
2513 script->tool.cgroup = process_cgroup_event; in __cmd_script()
2514 if (script->show_lost_events) in __cmd_script()
2515 script->tool.lost = process_lost_event; in __cmd_script()
2516 if (script->show_round_events) { in __cmd_script()
2517 script->tool.ordered_events = false; in __cmd_script()
2518 script->tool.finished_round = process_finished_round_event; in __cmd_script()
2520 if (script->show_bpf_events) { in __cmd_script()
2521 script->tool.ksymbol = process_bpf_events; in __cmd_script()
2522 script->tool.bpf = process_bpf_events; in __cmd_script()
2524 if (script->show_text_poke_events) { in __cmd_script()
2525 script->tool.ksymbol = process_bpf_events; in __cmd_script()
2526 script->tool.text_poke = process_text_poke_events; in __cmd_script()
2529 if (perf_script__setup_per_event_dump(script)) { in __cmd_script()
2534 ret = perf_session__process_events(script->session); in __cmd_script()
2536 if (script->per_event_dump) in __cmd_script()
2537 perf_script__exit_per_event_dump_stats(script); in __cmd_script()
2613 "perf script -s [spec:]script.[spec]):\n\n"); in list_available_languages()
2625 const char *script, *ext; in parse_scriptname() local
2633 script = strchr(str, ':'); in parse_scriptname()
2634 if (script) { in parse_scriptname()
2635 len = script - str; in parse_scriptname()
2647 script++; in parse_scriptname()
2649 script = str; in parse_scriptname()
2650 ext = strrchr(script, '.'); in parse_scriptname()
2652 fprintf(stderr, "invalid script extension"); in parse_scriptname()
2657 fprintf(stderr, "invalid script extension"); in parse_scriptname()
2662 script_name = strdup(script); in parse_scriptname()
3096 * Currently the only user of this function is the script browser, which
3258 static void script__setup_sample_type(struct perf_script *script) in script__setup_sample_type() argument
3260 struct perf_session *session = script->session; in script__setup_sample_type()
3274 if (script->stitch_lbr && (callchain_param.record_mode != CALLCHAIN_LBR)) { in script__setup_sample_type()
3277 script->stitch_lbr = false; in script__setup_sample_type()
3303 static int set_maps(struct perf_script *script) in set_maps() argument
3305 struct evlist *evlist = script->session->evlist; in set_maps()
3307 if (!script->cpus || !script->threads) in set_maps()
3310 if (WARN_ONCE(script->allocated, "stats double allocation\n")) in set_maps()
3313 perf_evlist__set_maps(&evlist->core, script->cpus, script->threads); in set_maps()
3318 script->allocated = true; in set_maps()
3327 struct perf_script *script = container_of(tool, struct perf_script, tool); in process_thread_map_event() local
3329 if (script->threads) { in process_thread_map_event()
3334 script->threads = thread_map__new_event(&event->thread_map); in process_thread_map_event()
3335 if (!script->threads) in process_thread_map_event()
3338 return set_maps(script); in process_thread_map_event()
3346 struct perf_script *script = container_of(tool, struct perf_script, tool); in process_cpu_map_event() local
3348 if (script->cpus) { in process_cpu_map_event()
3353 script->cpus = cpu_map__new_data(&event->cpu_map.data); in process_cpu_map_event()
3354 if (!script->cpus) in process_cpu_map_event()
3357 return set_maps(script); in process_cpu_map_event()
3377 struct perf_script *script = container_of(tool, struct perf_script, tool); in perf_script__process_auxtrace_info() local
3379 ret = perf_script__setup_per_event_dump(script); in perf_script__process_auxtrace_info()
3447 struct perf_script script = { in cmd_script() local
3487 OPT_CALLBACK('s', "script", NULL, "name", in cmd_script()
3488 "script file name (lang:script name, script name, or *)", in cmd_script()
3490 OPT_STRING('g', "gen-script", &generate_script_lang, "lang", in cmd_script()
3491 "generate perf-script.xx script in specified language"), in cmd_script()
3548 OPT_BOOLEAN('\0', "show-task-events", &script.show_task_events, in cmd_script()
3550 OPT_BOOLEAN('\0', "show-mmap-events", &script.show_mmap_events, in cmd_script()
3552 OPT_BOOLEAN('\0', "show-switch-events", &script.show_switch_events, in cmd_script()
3554 OPT_BOOLEAN('\0', "show-namespace-events", &script.show_namespace_events, in cmd_script()
3556 OPT_BOOLEAN('\0', "show-cgroup-events", &script.show_cgroup_events, in cmd_script()
3558 OPT_BOOLEAN('\0', "show-lost-events", &script.show_lost_events, in cmd_script()
3560 OPT_BOOLEAN('\0', "show-round-events", &script.show_round_events, in cmd_script()
3562 OPT_BOOLEAN('\0', "show-bpf-events", &script.show_bpf_events, in cmd_script()
3564 OPT_BOOLEAN('\0', "show-text-poke-events", &script.show_text_poke_events, in cmd_script()
3566 OPT_BOOLEAN('\0', "per-event-dump", &script.per_event_dump, in cmd_script()
3582 OPT_STRING(0, "time", &script.time_str, "str", in cmd_script()
3595 OPT_BOOLEAN('\0', "stitch-lbr", &script.stitch_lbr, in cmd_script()
3597 OPTS_EVSWITCH(&script.evswitch), in cmd_script()
3602 "perf script [<options>]", in cmd_script()
3603 "perf script [<options>] record <script> [<record-options>] <command>", in cmd_script()
3604 "perf script [<options>] report <script> [script-args]", in cmd_script()
3605 "perf script [<options>] <script> [<record-options>] <command>", in cmd_script()
3606 "perf script [<options>] <top-script> [script-args]", in cmd_script()
3640 "Please specify a valid report script" in cmd_script()
3641 "(see 'perf script -l' for listing)\n"); in cmd_script()
3670 "Couldn't find script `%s'\n\n See perf" in cmd_script()
3671 " script -l for available scripts.\n", argv[0]); in cmd_script()
3683 "`%s' script requires options." in cmd_script()
3684 "\n\n See perf script -l for available " in cmd_script()
3804 session = perf_session__new(&data, false, &script.tool); in cmd_script()
3809 script.tool.show_feat_hdr = SHOW_FEAT_HEADER; in cmd_script()
3815 script.tool.show_feat_hdr = SHOW_FEAT_HEADER_FULL_INFO; in cmd_script()
3831 script.session = session; in cmd_script()
3832 script__setup_sample_type(&script); in cmd_script()
3898 "perf-script"); in cmd_script()
3906 pr_debug("perf script started with script %s\n\n", script_name); in cmd_script()
3915 if (script.time_str) { in cmd_script()
3916 err = perf_time__parse_for_ranges_reltime(script.time_str, session, in cmd_script()
3917 &script.ptime_range, in cmd_script()
3918 &script.range_size, in cmd_script()
3919 &script.range_num, in cmd_script()
3925 script.ptime_range, in cmd_script()
3926 script.range_num); in cmd_script()
3929 err = evswitch__init(&script.evswitch, session->evlist, stderr); in cmd_script()
3936 err = __cmd_script(&script); in cmd_script()
3941 if (script.ptime_range) { in cmd_script()
3943 zfree(&script.ptime_range); in cmd_script()
3948 perf_script__exit(&script); in cmd_script()