The bpf sample program trace_event is enhanced to use the new helper to print out enabled/running time.
Signed-off-by: Yonghong Song <y...@fb.com> --- samples/bpf/trace_event_kern.c | 5 +++++ tools/testing/selftests/bpf/bpf_helpers.h | 3 +++ 2 files changed, 8 insertions(+) diff --git a/samples/bpf/trace_event_kern.c b/samples/bpf/trace_event_kern.c index 41b6115..f372660 100644 --- a/samples/bpf/trace_event_kern.c +++ b/samples/bpf/trace_event_kern.c @@ -37,8 +37,10 @@ struct bpf_map_def SEC("maps") stackmap = { SEC("perf_event") int bpf_prog1(struct bpf_perf_event_data *ctx) { + char time_fmt[] = "Time Enabled: %lld, Time Running: %lld"; char fmt[] = "CPU-%d period %lld ip %llx"; u32 cpu = bpf_get_smp_processor_id(); + struct bpf_perf_time time_buf; struct key_t key; u64 *val, one = 1; @@ -54,6 +56,9 @@ int bpf_prog1(struct bpf_perf_event_data *ctx) return 0; } + bpf_perf_prog_read_time(ctx, (void *)&time_buf, sizeof(struct bpf_perf_time)); + bpf_trace_printk(time_fmt, sizeof(time_fmt), time_buf.enabled, time_buf.running); + val = bpf_map_lookup_elem(&counts, &key); if (val) (*val)++; diff --git a/tools/testing/selftests/bpf/bpf_helpers.h b/tools/testing/selftests/bpf/bpf_helpers.h index fe41852..ddad690 100644 --- a/tools/testing/selftests/bpf/bpf_helpers.h +++ b/tools/testing/selftests/bpf/bpf_helpers.h @@ -74,6 +74,9 @@ static int (*bpf_perf_read_counter_time)(void *map, unsigned long long flags, void *counter_time_buf, unsigned int buf_size) = (void *) BPF_FUNC_perf_read_counter_time; +static int (*bpf_perf_prog_read_time)(void *ctx, void *time_buf, + unsigned int size) = + (void *) BPF_FUNC_perf_prog_read_time; /* llvm builtin functions that eBPF C program may use to -- 2.9.5