bpf/tracing: add a bpf test for new ioctl query interface
Added a subtest in test_progs. The tracepoint is sched/sched_switch. Multiple bpf programs are attached to this tracepoint and the query interface is exercised. Signed-off-by: Yonghong Song <yhs@fb.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:

committed by
Alexei Starovoitov

parent
f371b304f1
commit
d279f1f8c6
@@ -418,6 +418,27 @@ struct perf_event_attr {
|
||||
__u16 __reserved_2; /* align to __u64 */
|
||||
};
|
||||
|
||||
/*
|
||||
* Structure used by below PERF_EVENT_IOC_QUERY_BPF command
|
||||
* to query bpf programs attached to the same perf tracepoint
|
||||
* as the given perf event.
|
||||
*/
|
||||
struct perf_event_query_bpf {
|
||||
/*
|
||||
* The below ids array length
|
||||
*/
|
||||
__u32 ids_len;
|
||||
/*
|
||||
* Set by the kernel to indicate the number of
|
||||
* available programs
|
||||
*/
|
||||
__u32 prog_cnt;
|
||||
/*
|
||||
* User provided buffer to store program ids
|
||||
*/
|
||||
__u32 ids[0];
|
||||
};
|
||||
|
||||
#define perf_flags(attr) (*(&(attr)->read_format + 1))
|
||||
|
||||
/*
|
||||
@@ -433,6 +454,7 @@ struct perf_event_attr {
|
||||
#define PERF_EVENT_IOC_ID _IOR('$', 7, __u64 *)
|
||||
#define PERF_EVENT_IOC_SET_BPF _IOW('$', 8, __u32)
|
||||
#define PERF_EVENT_IOC_PAUSE_OUTPUT _IOW('$', 9, __u32)
|
||||
#define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, struct perf_event_query_bpf *)
|
||||
|
||||
enum perf_event_ioc_flags {
|
||||
PERF_IOC_FLAG_GROUP = 1U << 0,
|
||||
|
Reference in New Issue
Block a user