Lines Matching refs:info
89 static int prep_prog_info(struct bpf_prog_info *const info, enum dump_mode mode, in prep_prog_info() argument
97 holder.jited_prog_len = info->jited_prog_len; in prep_prog_info()
98 needed += info->jited_prog_len; in prep_prog_info()
100 holder.xlated_prog_len = info->xlated_prog_len; in prep_prog_info()
101 needed += info->xlated_prog_len; in prep_prog_info()
104 holder.nr_jited_ksyms = info->nr_jited_ksyms; in prep_prog_info()
105 needed += info->nr_jited_ksyms * sizeof(__u64); in prep_prog_info()
107 holder.nr_jited_func_lens = info->nr_jited_func_lens; in prep_prog_info()
108 needed += info->nr_jited_func_lens * sizeof(__u32); in prep_prog_info()
110 holder.nr_func_info = info->nr_func_info; in prep_prog_info()
111 holder.func_info_rec_size = info->func_info_rec_size; in prep_prog_info()
112 needed += info->nr_func_info * info->func_info_rec_size; in prep_prog_info()
114 holder.nr_line_info = info->nr_line_info; in prep_prog_info()
115 holder.line_info_rec_size = info->line_info_rec_size; in prep_prog_info()
116 needed += info->nr_line_info * info->line_info_rec_size; in prep_prog_info()
118 holder.nr_jited_line_info = info->nr_jited_line_info; in prep_prog_info()
119 holder.jited_line_info_rec_size = info->jited_line_info_rec_size; in prep_prog_info()
120 needed += info->nr_jited_line_info * info->jited_line_info_rec_size; in prep_prog_info()
155 *info = holder; in prep_prog_info()
192 struct bpf_prog_info info = {}; in show_prog_maps() local
193 __u32 len = sizeof(info); in show_prog_maps()
198 info.nr_map_ids = num_maps; in show_prog_maps()
199 info.map_ids = ptr_to_u64(map_ids); in show_prog_maps()
201 err = bpf_prog_get_info_by_fd(fd, &info, &len); in show_prog_maps()
202 if (err || !info.nr_map_ids) in show_prog_maps()
208 for (i = 0; i < info.nr_map_ids; i++) in show_prog_maps()
213 for (i = 0; i < info.nr_map_ids; i++) in show_prog_maps()
215 i == info.nr_map_ids - 1 ? "" : ","); in show_prog_maps()
413 static void print_prog_header_json(struct bpf_prog_info *info, int fd) in print_prog_header_json() argument
418 jsonw_uint_field(json_wtr, "id", info->id); in print_prog_header_json()
419 prog_type_str = libbpf_bpf_prog_type_str(info->type); in print_prog_header_json()
424 jsonw_uint_field(json_wtr, "type", info->type); in print_prog_header_json()
426 if (*info->name) { in print_prog_header_json()
427 get_prog_full_name(info, fd, prog_name, sizeof(prog_name)); in print_prog_header_json()
433 info->tag[0], info->tag[1], info->tag[2], info->tag[3], in print_prog_header_json()
434 info->tag[4], info->tag[5], info->tag[6], info->tag[7]); in print_prog_header_json()
436 jsonw_bool_field(json_wtr, "gpl_compatible", info->gpl_compatible); in print_prog_header_json()
437 if (info->run_time_ns) { in print_prog_header_json()
438 jsonw_uint_field(json_wtr, "run_time_ns", info->run_time_ns); in print_prog_header_json()
439 jsonw_uint_field(json_wtr, "run_cnt", info->run_cnt); in print_prog_header_json()
441 if (info->recursion_misses) in print_prog_header_json()
442 jsonw_uint_field(json_wtr, "recursion_misses", info->recursion_misses); in print_prog_header_json()
445 static void print_prog_json(struct bpf_prog_info *info, int fd, bool orphaned) in print_prog_json() argument
450 print_prog_header_json(info, fd); in print_prog_json()
451 print_dev_json(info->ifindex, info->netns_dev, info->netns_ino); in print_prog_json()
453 if (info->load_time) { in print_prog_json()
456 print_boot_time(info->load_time, buf, sizeof(buf)); in print_prog_json()
461 jsonw_uint_field(json_wtr, "uid", info->created_by_uid); in print_prog_json()
465 jsonw_uint_field(json_wtr, "bytes_xlated", info->xlated_prog_len); in print_prog_json()
467 if (info->jited_prog_len) { in print_prog_json()
469 jsonw_uint_field(json_wtr, "bytes_jited", info->jited_prog_len); in print_prog_json()
479 if (info->nr_map_ids) in print_prog_json()
480 show_prog_maps(fd, info->nr_map_ids); in print_prog_json()
482 if (info->btf_id) in print_prog_json()
483 jsonw_int_field(json_wtr, "btf_id", info->btf_id); in print_prog_json()
490 hashmap__for_each_key_entry(prog_table, entry, info->id) in print_prog_json()
495 emit_obj_refs_json(refs_table, info->id, json_wtr); in print_prog_json()
497 show_prog_metadata(fd, info->nr_map_ids); in print_prog_json()
502 static void print_prog_header_plain(struct bpf_prog_info *info, int fd) in print_prog_header_plain() argument
507 printf("%u: ", info->id); in print_prog_header_plain()
508 prog_type_str = libbpf_bpf_prog_type_str(info->type); in print_prog_header_plain()
512 printf("type %u ", info->type); in print_prog_header_plain()
514 if (*info->name) { in print_prog_header_plain()
515 get_prog_full_name(info, fd, prog_name, sizeof(prog_name)); in print_prog_header_plain()
520 fprint_hex(stdout, info->tag, BPF_TAG_SIZE, ""); in print_prog_header_plain()
521 print_dev_plain(info->ifindex, info->netns_dev, info->netns_ino); in print_prog_header_plain()
522 printf("%s", info->gpl_compatible ? " gpl" : ""); in print_prog_header_plain()
523 if (info->run_time_ns) in print_prog_header_plain()
525 info->run_time_ns, info->run_cnt); in print_prog_header_plain()
526 if (info->recursion_misses) in print_prog_header_plain()
527 printf(" recursion_misses %llu", info->recursion_misses); in print_prog_header_plain()
531 static void print_prog_plain(struct bpf_prog_info *info, int fd, bool orphaned) in print_prog_plain() argument
535 print_prog_header_plain(info, fd); in print_prog_plain()
537 if (info->load_time) { in print_prog_plain()
540 print_boot_time(info->load_time, buf, sizeof(buf)); in print_prog_plain()
543 printf("\tloaded_at %s uid %u\n", buf, info->created_by_uid); in print_prog_plain()
546 printf("\txlated %uB", info->xlated_prog_len); in print_prog_plain()
548 if (info->jited_prog_len) in print_prog_plain()
549 printf(" jited %uB", info->jited_prog_len); in print_prog_plain()
561 if (info->nr_map_ids) in print_prog_plain()
562 show_prog_maps(fd, info->nr_map_ids); in print_prog_plain()
567 hashmap__for_each_key_entry(prog_table, entry, info->id) in print_prog_plain()
571 if (info->btf_id) in print_prog_plain()
572 printf("\n\tbtf_id %u", info->btf_id); in print_prog_plain()
574 emit_obj_refs_plain(refs_table, info->id, "\n\tpids "); in print_prog_plain()
578 show_prog_metadata(fd, info->nr_map_ids); in print_prog_plain()
583 struct bpf_prog_info info = {}; in show_prog() local
584 __u32 len = sizeof(info); in show_prog()
587 err = bpf_prog_get_info_by_fd(fd, &info, &len); in show_prog()
594 print_prog_json(&info, fd, err == -ENODEV); in show_prog()
596 print_prog_plain(&info, fd, err == -ENODEV); in show_prog()
701 prog_dump(struct bpf_prog_info *info, enum dump_mode mode, in prog_dump() argument
716 if (info->jited_prog_len == 0 || !info->jited_prog_insns) { in prog_dump()
720 buf = u64_to_ptr(info->jited_prog_insns); in prog_dump()
721 member_len = info->jited_prog_len; in prog_dump()
723 if (info->xlated_prog_len == 0 || !info->xlated_prog_insns) { in prog_dump()
727 buf = u64_to_ptr(info->xlated_prog_insns); in prog_dump()
728 member_len = info->xlated_prog_len; in prog_dump()
731 if (info->btf_id) { in prog_dump()
732 btf = btf__load_from_kernel_by_id(info->btf_id); in prog_dump()
739 func_info = u64_to_ptr(info->func_info); in prog_dump()
741 if (info->nr_line_info) { in prog_dump()
742 prog_linfo = bpf_prog_linfo__new(info); in prog_dump()
768 if (info->ifindex) { in prog_dump()
769 name = ifindex_to_arch(info->ifindex, info->netns_dev, in prog_dump()
770 info->netns_ino, &disasm_opt); in prog_dump()
775 if (info->nr_jited_func_lens && info->jited_func_lens) { in prog_dump()
783 if (info->nr_jited_ksyms) { in prog_dump()
785 ksyms = u64_to_ptr(info->jited_ksyms); in prog_dump()
791 lens = u64_to_ptr(info->jited_func_lens); in prog_dump()
792 for (i = 0; i < info->nr_jited_func_lens; i++) { in prog_dump()
804 record = func_info + i * info->func_info_rec_size; in prog_dump()
856 dd.nr_jited_ksyms = info->nr_jited_ksyms; in prog_dump()
857 dd.jited_ksyms = u64_to_ptr(info->jited_ksyms); in prog_dump()
860 dd.finfo_rec_size = info->func_info_rec_size; in prog_dump()
882 struct bpf_prog_info info; in do_dump() local
883 __u32 info_len = sizeof(info); in do_dump()
965 memset(&info, 0, sizeof(info)); in do_dump()
967 err = bpf_prog_get_info_by_fd(fds[i], &info, &info_len); in do_dump()
973 err = prep_prog_info(&info, mode, &info_data, &info_data_sz); in do_dump()
979 err = bpf_prog_get_info_by_fd(fds[i], &info, &info_len); in do_dump()
987 print_prog_header_json(&info, fds[i]); in do_dump()
990 print_prog_header_plain(&info, fds[i]); in do_dump()
993 err = prog_dump(&info, mode, filepath, opcodes, visual, linum); in do_dump()
2266 struct bpf_prog_info info = {}; in profile_target_name() local
2267 __u32 info_len = sizeof(info); in profile_target_name()
2274 err = bpf_prog_get_info_by_fd(tgt_fd, &info, &info_len); in profile_target_name()
2280 if (info.btf_id == 0) { in profile_target_name()
2285 func_info_rec_size = info.func_info_rec_size; in profile_target_name()
2286 if (info.nr_func_info == 0) { in profile_target_name()
2291 memset(&info, 0, sizeof(info)); in profile_target_name()
2292 info.nr_func_info = 1; in profile_target_name()
2293 info.func_info_rec_size = func_info_rec_size; in profile_target_name()
2294 info.func_info = ptr_to_u64(&func_info); in profile_target_name()
2296 err = bpf_prog_get_info_by_fd(tgt_fd, &info, &info_len); in profile_target_name()
2302 btf = btf__load_from_kernel_by_id(info.btf_id); in profile_target_name()
2311 info.btf_id, func_info.type_id); in profile_target_name()