[PATCH 10/10] bpf samples: Remove old BPF helpers

2015-12-16 Thread Wang Nan
Since we have switched to libbpf in tools/lib, old bpf_load.c and
libbpf.c can be removed safely.

Signed-off-by: Wang Nan 
Cc: Alexei Starovoitov 
Cc: Alex Gartrell 
Cc: Arnaldo Carvalho de Melo 
Cc: Brenden Blanco 
Cc: Daniel Borkmann 
Cc: Daniel Wagner 
Cc: David S. Miller 
Cc: Ingo Molnar 
Cc: Kaixu Xia 
Cc: Michael Holzheu 
Cc: Yang Shi 
---
 samples/bpf/bpf_load.c | 345 -
 samples/bpf/bpf_load.h |  27 
 samples/bpf/libbpf.c   | 154 --
 samples/bpf/libbpf.h   | 201 
 4 files changed, 727 deletions(-)
 delete mode 100644 samples/bpf/bpf_load.c
 delete mode 100644 samples/bpf/bpf_load.h
 delete mode 100644 samples/bpf/libbpf.c
 delete mode 100644 samples/bpf/libbpf.h

diff --git a/samples/bpf/bpf_load.c b/samples/bpf/bpf_load.c
deleted file mode 100644
index da86a8e..000
--- a/samples/bpf/bpf_load.c
+++ /dev/null
@@ -1,345 +0,0 @@
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include "libbpf.h"
-#include "bpf_helpers.h"
-#include "bpf_load.h"
-
-#define DEBUGFS "/sys/kernel/debug/tracing/"
-
-static char license[128];
-static int kern_version;
-static bool processed_sec[128];
-int map_fd[MAX_MAPS];
-int prog_fd[MAX_PROGS];
-int event_fd[MAX_PROGS];
-int prog_cnt;
-int prog_array_fd = -1;
-
-static int populate_prog_array(const char *event, int prog_fd)
-{
-   int ind = atoi(event), err;
-
-   err = bpf_update_elem(prog_array_fd, , _fd, BPF_ANY);
-   if (err < 0) {
-   printf("failed to store prog_fd in prog_array\n");
-   return -1;
-   }
-   return 0;
-}
-
-static int load_and_attach(const char *event, struct bpf_insn *prog, int size)
-{
-   bool is_socket = strncmp(event, "socket", 6) == 0;
-   bool is_kprobe = strncmp(event, "kprobe/", 7) == 0;
-   bool is_kretprobe = strncmp(event, "kretprobe/", 10) == 0;
-   enum bpf_prog_type prog_type;
-   char buf[256];
-   int fd, efd, err, id;
-   struct perf_event_attr attr = {};
-
-   attr.type = PERF_TYPE_TRACEPOINT;
-   attr.sample_type = PERF_SAMPLE_RAW;
-   attr.sample_period = 1;
-   attr.wakeup_events = 1;
-
-   if (is_socket) {
-   prog_type = BPF_PROG_TYPE_SOCKET_FILTER;
-   } else if (is_kprobe || is_kretprobe) {
-   prog_type = BPF_PROG_TYPE_KPROBE;
-   } else {
-   printf("Unknown event '%s'\n", event);
-   return -1;
-   }
-
-   fd = bpf_prog_load(prog_type, prog, size, license, kern_version);
-   if (fd < 0) {
-   printf("bpf_prog_load() err=%d\n%s", errno, bpf_log_buf);
-   return -1;
-   }
-
-   prog_fd[prog_cnt++] = fd;
-
-   if (is_socket) {
-   event += 6;
-   if (*event != '/')
-   return 0;
-   event++;
-   if (!isdigit(*event)) {
-   printf("invalid prog number\n");
-   return -1;
-   }
-   return populate_prog_array(event, fd);
-   }
-
-   if (is_kprobe || is_kretprobe) {
-   if (is_kprobe)
-   event += 7;
-   else
-   event += 10;
-
-   if (*event == 0) {
-   printf("event name cannot be empty\n");
-   return -1;
-   }
-
-   if (isdigit(*event))
-   return populate_prog_array(event, fd);
-
-   snprintf(buf, sizeof(buf),
-"echo '%c:%s %s' >> 
/sys/kernel/debug/tracing/kprobe_events",
-is_kprobe ? 'p' : 'r', event, event);
-   err = system(buf);
-   if (err < 0) {
-   printf("failed to create kprobe '%s' error '%s'\n",
-  event, strerror(errno));
-   return -1;
-   }
-   }
-
-   strcpy(buf, DEBUGFS);
-   strcat(buf, "events/kprobes/");
-   strcat(buf, event);
-   strcat(buf, "/id");
-
-   efd = open(buf, O_RDONLY, 0);
-   if (efd < 0) {
-   printf("failed to open event %s\n", event);
-   return -1;
-   }
-
-   err = read(efd, buf, sizeof(buf));
-   if (err < 0 || err >= sizeof(buf)) {
-   printf("read from '%s' failed '%s'\n", event, strerror(errno));
-   return -1;
-   }
-
-   close(efd);
-
-   buf[err] = 0;
-   id = atoi(buf);
-   attr.config = id;
-
-   efd = perf_event_open(, -1/*pid*/, 0/*cpu*/, -1/*group_fd*/, 0);
-   if (efd < 0) {
-   printf("event %d fd %d err %s\n", id, efd, strerror(errno));
-   return -1;
-   }
-   event_fd[prog_cnt - 1] = efd;
-   ioctl(efd, 

[PATCH 10/10] bpf samples: Remove old BPF helpers

2015-12-16 Thread Wang Nan
Since we have switched to libbpf in tools/lib, old bpf_load.c and
libbpf.c can be removed safely.

Signed-off-by: Wang Nan 
Cc: Alexei Starovoitov 
Cc: Alex Gartrell 
Cc: Arnaldo Carvalho de Melo 
Cc: Brenden Blanco 
Cc: Daniel Borkmann 
Cc: Daniel Wagner 
Cc: David S. Miller 
Cc: Ingo Molnar 
Cc: Kaixu Xia 
Cc: Michael Holzheu 
Cc: Yang Shi 
---
 samples/bpf/bpf_load.c | 345 -
 samples/bpf/bpf_load.h |  27 
 samples/bpf/libbpf.c   | 154 --
 samples/bpf/libbpf.h   | 201 
 4 files changed, 727 deletions(-)
 delete mode 100644 samples/bpf/bpf_load.c
 delete mode 100644 samples/bpf/bpf_load.h
 delete mode 100644 samples/bpf/libbpf.c
 delete mode 100644 samples/bpf/libbpf.h

diff --git a/samples/bpf/bpf_load.c b/samples/bpf/bpf_load.c
deleted file mode 100644
index da86a8e..000
--- a/samples/bpf/bpf_load.c
+++ /dev/null
@@ -1,345 +0,0 @@
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include "libbpf.h"
-#include "bpf_helpers.h"
-#include "bpf_load.h"
-
-#define DEBUGFS "/sys/kernel/debug/tracing/"
-
-static char license[128];
-static int kern_version;
-static bool processed_sec[128];
-int map_fd[MAX_MAPS];
-int prog_fd[MAX_PROGS];
-int event_fd[MAX_PROGS];
-int prog_cnt;
-int prog_array_fd = -1;
-
-static int populate_prog_array(const char *event, int prog_fd)
-{
-   int ind = atoi(event), err;
-
-   err = bpf_update_elem(prog_array_fd, , _fd, BPF_ANY);
-   if (err < 0) {
-   printf("failed to store prog_fd in prog_array\n");
-   return -1;
-   }
-   return 0;
-}
-
-static int load_and_attach(const char *event, struct bpf_insn *prog, int size)
-{
-   bool is_socket = strncmp(event, "socket", 6) == 0;
-   bool is_kprobe = strncmp(event, "kprobe/", 7) == 0;
-   bool is_kretprobe = strncmp(event, "kretprobe/", 10) == 0;
-   enum bpf_prog_type prog_type;
-   char buf[256];
-   int fd, efd, err, id;
-   struct perf_event_attr attr = {};
-
-   attr.type = PERF_TYPE_TRACEPOINT;
-   attr.sample_type = PERF_SAMPLE_RAW;
-   attr.sample_period = 1;
-   attr.wakeup_events = 1;
-
-   if (is_socket) {
-   prog_type = BPF_PROG_TYPE_SOCKET_FILTER;
-   } else if (is_kprobe || is_kretprobe) {
-   prog_type = BPF_PROG_TYPE_KPROBE;
-   } else {
-   printf("Unknown event '%s'\n", event);
-   return -1;
-   }
-
-   fd = bpf_prog_load(prog_type, prog, size, license, kern_version);
-   if (fd < 0) {
-   printf("bpf_prog_load() err=%d\n%s", errno, bpf_log_buf);
-   return -1;
-   }
-
-   prog_fd[prog_cnt++] = fd;
-
-   if (is_socket) {
-   event += 6;
-   if (*event != '/')
-   return 0;
-   event++;
-   if (!isdigit(*event)) {
-   printf("invalid prog number\n");
-   return -1;
-   }
-   return populate_prog_array(event, fd);
-   }
-
-   if (is_kprobe || is_kretprobe) {
-   if (is_kprobe)
-   event += 7;
-   else
-   event += 10;
-
-   if (*event == 0) {
-   printf("event name cannot be empty\n");
-   return -1;
-   }
-
-   if (isdigit(*event))
-   return populate_prog_array(event, fd);
-
-   snprintf(buf, sizeof(buf),
-"echo '%c:%s %s' >> 
/sys/kernel/debug/tracing/kprobe_events",
-is_kprobe ? 'p' : 'r', event, event);
-   err = system(buf);
-   if (err < 0) {
-   printf("failed to create kprobe '%s' error '%s'\n",
-  event, strerror(errno));
-   return -1;
-   }
-   }
-
-   strcpy(buf, DEBUGFS);
-   strcat(buf, "events/kprobes/");
-   strcat(buf, event);
-   strcat(buf, "/id");
-
-   efd = open(buf, O_RDONLY, 0);
-   if (efd < 0) {
-   printf("failed to open event %s\n", event);
-   return -1;
-   }
-
-   err = read(efd, buf, sizeof(buf));
-   if (err < 0 || err >= sizeof(buf)) {
-   printf("read from '%s' failed '%s'\n", event, strerror(errno));
-   return -1;
-   }
-
-   close(efd);
-
-   buf[err] = 0;
-   id = atoi(buf);
-   attr.config = id;
-
-   efd =