rt_sigtimedwait_time64, futex_time64, sched_rr_get_interval_time64,
pidfd_send_signal, io_uring_setup, io_uring_enter, and io_uring_register
syscalls.
+ * Enhanced decoding of bpf syscall.
* Wired up getegid, geteuid, getppid, io_pgetevents, statfs64, and fstatfs64
syscalls on alpha.
* Wired up kexec_file_load and migrate_pages syscalls on arm.
PRINT_FIELD_ADDR64(", ", info, prog_tags);
+ /*
+ * run_time_ns and run_cnt fields were introduced
+ * by Linux commit v5.1-rc1~178^2~17^2~15^2~2.
+ */
+ if (len <= offsetof(struct bpf_prog_info_struct, run_time_ns))
+ goto print_bpf_prog_info_end;
+
+ PRINT_FIELD_U(", ", info, run_time_ns);
+ PRINT_FIELD_U(", ", info, run_cnt);
+
decode_attr_extra_data(tcp, info_buf, size, bpf_prog_info_struct_size);
print_bpf_prog_info_end:
uint32_t jited_line_info_rec_size;
uint32_t nr_prog_tags;
uint64_t ATTRIBUTE_ALIGNED(8) prog_tags;
+ uint64_t ATTRIBUTE_ALIGNED(8) run_time_ns;
+ uint64_t ATTRIBUTE_ALIGNED(8) run_cnt;
};
# define bpf_prog_info_struct_size \
sizeof(struct bpf_prog_info_struct)
-# define expected_bpf_prog_info_struct_size 192
+# define expected_bpf_prog_info_struct_size 208
#endif /* !STRACE_BPF_ATTR_H */
if (bpf_prog_get_info_attr.info_len >
offsetof(struct bpf_prog_info_struct, prog_tags))
printf(", prog_tags=NULL");
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, run_time_ns))
+ printf(", run_time_ns=%llu",
+ (unsigned long long) prog_info->run_time_ns);
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, run_cnt))
+ printf(", run_cnt=%llu",
+ (unsigned long long) prog_info->run_cnt);
printf("}");
# else /* !VERBOSE */