mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 23:02:08 +00:00
samples, bpf: Refactor pointer error check with libbpf
Current method of checking pointer error is not user friendly. Especially the __must_check define makes this less intuitive. Since, libbpf has an API libbpf_get_error() which checks pointer error, this commit refactors existing pointer error check logic with libbpf. Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Yonghong Song <yhs@fb.com> Link: https://lore.kernel.org/bpf/20200516040608.1377876-2-danieltimlee@gmail.com
This commit is contained in:
parent
96586dd926
commit
0efdcefb00
@ -18,9 +18,6 @@
|
|||||||
#include "perf-sys.h"
|
#include "perf-sys.h"
|
||||||
#include "trace_helpers.h"
|
#include "trace_helpers.h"
|
||||||
|
|
||||||
#define __must_check
|
|
||||||
#include <linux/err.h>
|
|
||||||
|
|
||||||
#define DEFAULT_FREQ 99
|
#define DEFAULT_FREQ 99
|
||||||
#define DEFAULT_SECS 5
|
#define DEFAULT_SECS 5
|
||||||
#define MAX_IPS 8192
|
#define MAX_IPS 8192
|
||||||
@ -57,7 +54,7 @@ static int sampling_start(int freq, struct bpf_program *prog,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
links[i] = bpf_program__attach_perf_event(prog, pmu_fd);
|
links[i] = bpf_program__attach_perf_event(prog, pmu_fd);
|
||||||
if (IS_ERR(links[i])) {
|
if (libbpf_get_error(links[i])) {
|
||||||
fprintf(stderr, "ERROR: Attach perf event\n");
|
fprintf(stderr, "ERROR: Attach perf event\n");
|
||||||
links[i] = NULL;
|
links[i] = NULL;
|
||||||
close(pmu_fd);
|
close(pmu_fd);
|
||||||
@ -182,7 +179,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
|
snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
|
||||||
obj = bpf_object__open_file(filename, NULL);
|
obj = bpf_object__open_file(filename, NULL);
|
||||||
if (IS_ERR(obj)) {
|
if (libbpf_get_error(obj)) {
|
||||||
fprintf(stderr, "ERROR: opening BPF object file failed\n");
|
fprintf(stderr, "ERROR: opening BPF object file failed\n");
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -16,9 +16,6 @@
|
|||||||
#include "perf-sys.h"
|
#include "perf-sys.h"
|
||||||
#include "trace_helpers.h"
|
#include "trace_helpers.h"
|
||||||
|
|
||||||
#define __must_check
|
|
||||||
#include <linux/err.h>
|
|
||||||
|
|
||||||
#define SAMPLE_FREQ 50
|
#define SAMPLE_FREQ 50
|
||||||
|
|
||||||
static int pid;
|
static int pid;
|
||||||
@ -159,7 +156,7 @@ static void test_perf_event_all_cpu(struct perf_event_attr *attr)
|
|||||||
goto all_cpu_err;
|
goto all_cpu_err;
|
||||||
}
|
}
|
||||||
links[i] = bpf_program__attach_perf_event(prog, pmu_fd);
|
links[i] = bpf_program__attach_perf_event(prog, pmu_fd);
|
||||||
if (IS_ERR(links[i])) {
|
if (libbpf_get_error(links[i])) {
|
||||||
printf("bpf_program__attach_perf_event failed\n");
|
printf("bpf_program__attach_perf_event failed\n");
|
||||||
links[i] = NULL;
|
links[i] = NULL;
|
||||||
close(pmu_fd);
|
close(pmu_fd);
|
||||||
@ -198,7 +195,7 @@ static void test_perf_event_task(struct perf_event_attr *attr)
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
link = bpf_program__attach_perf_event(prog, pmu_fd);
|
link = bpf_program__attach_perf_event(prog, pmu_fd);
|
||||||
if (IS_ERR(link)) {
|
if (libbpf_get_error(link)) {
|
||||||
printf("bpf_program__attach_perf_event failed\n");
|
printf("bpf_program__attach_perf_event failed\n");
|
||||||
link = NULL;
|
link = NULL;
|
||||||
close(pmu_fd);
|
close(pmu_fd);
|
||||||
@ -314,7 +311,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
obj = bpf_object__open_file(filename, NULL);
|
obj = bpf_object__open_file(filename, NULL);
|
||||||
if (IS_ERR(obj)) {
|
if (libbpf_get_error(obj)) {
|
||||||
printf("opening BPF object file failed\n");
|
printf("opening BPF object file failed\n");
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -19,9 +19,6 @@ static const char *__doc__ =
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <linux/limits.h>
|
#include <linux/limits.h>
|
||||||
|
|
||||||
#define __must_check
|
|
||||||
#include <linux/err.h>
|
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <linux/if_link.h>
|
#include <linux/if_link.h>
|
||||||
|
|
||||||
@ -622,7 +619,7 @@ static struct bpf_link * attach_tp(struct bpf_object *obj,
|
|||||||
}
|
}
|
||||||
|
|
||||||
link = bpf_program__attach_tracepoint(prog, tp_category, tp_name);
|
link = bpf_program__attach_tracepoint(prog, tp_category, tp_name);
|
||||||
if (IS_ERR(link))
|
if (libbpf_get_error(link))
|
||||||
exit(EXIT_FAIL_BPF);
|
exit(EXIT_FAIL_BPF);
|
||||||
|
|
||||||
return link;
|
return link;
|
||||||
|
Loading…
Reference in New Issue
Block a user