diff options
author | Yonghong Song <yhs@fb.com> | 2017-10-05 18:19:21 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-08 00:05:57 +0200 |
commit | 020a32d9581ac824d038b0b4e24e977e3cc8589f (patch) | |
tree | f0256aea3e0a98cbba98b91248983b6d90793357 /samples/bpf/tracex6_user.c | |
parent | bpf: add helper bpf_perf_event_read_value for perf event array map (diff) | |
download | linux-020a32d9581ac824d038b0b4e24e977e3cc8589f.tar.xz linux-020a32d9581ac824d038b0b4e24e977e3cc8589f.zip |
bpf: add a test case for helper bpf_perf_event_read_value
The bpf sample program tracex6 is enhanced to use the new
helper to read enabled/running time as well.
Signed-off-by: Yonghong Song <yhs@fb.com>
Acked-by: Alexei Starovoitov <ast@fb.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'samples/bpf/tracex6_user.c')
-rw-r--r-- | samples/bpf/tracex6_user.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/samples/bpf/tracex6_user.c b/samples/bpf/tracex6_user.c index a05a99a0752f..3341a96fc046 100644 --- a/samples/bpf/tracex6_user.c +++ b/samples/bpf/tracex6_user.c @@ -22,6 +22,7 @@ static void check_on_cpu(int cpu, struct perf_event_attr *attr) { + struct bpf_perf_event_value value2; int pmu_fd, error = 0; cpu_set_t set; __u64 value; @@ -46,8 +47,18 @@ static void check_on_cpu(int cpu, struct perf_event_attr *attr) fprintf(stderr, "Value missing for CPU %d\n", cpu); error = 1; goto on_exit; + } else { + fprintf(stderr, "CPU %d: %llu\n", cpu, value); + } + /* The above bpf_map_lookup_elem should trigger the second kprobe */ + if (bpf_map_lookup_elem(map_fd[2], &cpu, &value2)) { + fprintf(stderr, "Value2 missing for CPU %d\n", cpu); + error = 1; + goto on_exit; + } else { + fprintf(stderr, "CPU %d: counter: %llu, enabled: %llu, running: %llu\n", cpu, + value2.counter, value2.enabled, value2.running); } - fprintf(stderr, "CPU %d: %llu\n", cpu, value); on_exit: assert(bpf_map_delete_elem(map_fd[0], &cpu) == 0 || error); |