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>
This commit is contained in:

committed by
David S. Miller

parent
908432ca84
commit
020a32d958
@@ -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);
|
||||
|
Reference in New Issue
Block a user