samples, bpf: Move read_trace_pipe to trace_helpers
To reduce the reliance of trace samples (trace*_user) on bpf_load, move read_trace_pipe to trace_helpers. By moving this bpf_loader helper elsewhere, trace functions can be easily migrated to libbbpf. Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Andrii Nakryiko <andriin@fb.com> Link: https://lore.kernel.org/bpf/20200321100424.1593964-2-danieltimlee@gmail.com
This commit is contained in:
parent
c9b2431204
commit
24a6034acc
|
@ -64,11 +64,11 @@ fds_example-objs := fds_example.o
|
|||
sockex1-objs := sockex1_user.o
|
||||
sockex2-objs := sockex2_user.o
|
||||
sockex3-objs := bpf_load.o sockex3_user.o
|
||||
tracex1-objs := bpf_load.o tracex1_user.o
|
||||
tracex1-objs := bpf_load.o tracex1_user.o $(TRACE_HELPERS)
|
||||
tracex2-objs := bpf_load.o tracex2_user.o
|
||||
tracex3-objs := bpf_load.o tracex3_user.o
|
||||
tracex4-objs := bpf_load.o tracex4_user.o
|
||||
tracex5-objs := bpf_load.o tracex5_user.o
|
||||
tracex5-objs := bpf_load.o tracex5_user.o $(TRACE_HELPERS)
|
||||
tracex6-objs := bpf_load.o tracex6_user.o
|
||||
tracex7-objs := bpf_load.o tracex7_user.o
|
||||
test_probe_write_user-objs := bpf_load.o test_probe_write_user_user.o
|
||||
|
|
|
@ -665,23 +665,3 @@ int load_bpf_file_fixup_map(const char *path, fixup_map_cb fixup_map)
|
|||
{
|
||||
return do_load_bpf_file(path, fixup_map);
|
||||
}
|
||||
|
||||
void read_trace_pipe(void)
|
||||
{
|
||||
int trace_fd;
|
||||
|
||||
trace_fd = open(DEBUGFS "trace_pipe", O_RDONLY, 0);
|
||||
if (trace_fd < 0)
|
||||
return;
|
||||
|
||||
while (1) {
|
||||
static char buf[4096];
|
||||
ssize_t sz;
|
||||
|
||||
sz = read(trace_fd, buf, sizeof(buf) - 1);
|
||||
if (sz > 0) {
|
||||
buf[sz] = 0;
|
||||
puts(buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,6 +53,5 @@ extern int map_data_count;
|
|||
int load_bpf_file(char *path);
|
||||
int load_bpf_file_fixup_map(const char *path, fixup_map_cb fixup_map);
|
||||
|
||||
void read_trace_pipe(void);
|
||||
int bpf_set_link_xdp_fd(int ifindex, int fd, __u32 flags);
|
||||
#endif
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <unistd.h>
|
||||
#include <bpf/bpf.h>
|
||||
#include "bpf_load.h"
|
||||
#include "trace_helpers.h"
|
||||
|
||||
int main(int ac, char **argv)
|
||||
{
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <bpf/bpf.h>
|
||||
#include "bpf_load.h"
|
||||
#include <sys/resource.h>
|
||||
#include "trace_helpers.h"
|
||||
|
||||
/* install fake seccomp program to enable seccomp code path inside the kernel,
|
||||
* so that our kprobe attached to seccomp_phase1() can be triggered
|
||||
|
|
|
@ -4,12 +4,15 @@
|
|||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
#include <unistd.h>
|
||||
#include <linux/perf_event.h>
|
||||
#include <sys/mman.h>
|
||||
#include "trace_helpers.h"
|
||||
|
||||
#define DEBUGFS "/sys/kernel/debug/tracing/"
|
||||
|
||||
#define MAX_SYMS 300000
|
||||
static struct ksym syms[MAX_SYMS];
|
||||
static int sym_cnt;
|
||||
|
@ -86,3 +89,23 @@ long ksym_get_addr(const char *name)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void read_trace_pipe(void)
|
||||
{
|
||||
int trace_fd;
|
||||
|
||||
trace_fd = open(DEBUGFS "trace_pipe", O_RDONLY, 0);
|
||||
if (trace_fd < 0)
|
||||
return;
|
||||
|
||||
while (1) {
|
||||
static char buf[4096];
|
||||
ssize_t sz;
|
||||
|
||||
sz = read(trace_fd, buf, sizeof(buf) - 1);
|
||||
if (sz > 0) {
|
||||
buf[sz] = 0;
|
||||
puts(buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,5 +12,6 @@ struct ksym {
|
|||
int load_kallsyms(void);
|
||||
struct ksym *ksym_search(long key);
|
||||
long ksym_get_addr(const char *name);
|
||||
void read_trace_pipe(void);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue