diff options
Diffstat (limited to 'samples/bpf/tracex4_kern.c')
| -rw-r--r-- | samples/bpf/tracex4_kern.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/samples/bpf/tracex4_kern.c b/samples/bpf/tracex4_kern.c deleted file mode 100644 index eb0f8fdd14bf..000000000000 --- a/samples/bpf/tracex4_kern.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2015 PLUMgrid, http://plumgrid.com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - */ -#include <linux/ptrace.h> -#include <linux/version.h> -#include <uapi/linux/bpf.h> -#include <bpf/bpf_helpers.h> -#include <bpf/bpf_tracing.h> - -struct pair { - u64 val; - u64 ip; -}; - -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __type(key, long); - __type(value, struct pair); - __uint(max_entries, 1000000); -} my_map SEC(".maps"); - -/* kprobe is NOT a stable ABI. If kernel internals change this bpf+kprobe - * example will no longer be meaningful - */ -SEC("kprobe/kmem_cache_free") -int bpf_prog1(struct pt_regs *ctx) -{ - long ptr = PT_REGS_PARM2(ctx); - - bpf_map_delete_elem(&my_map, &ptr); - return 0; -} - -SEC("kretprobe/kmem_cache_alloc_node") -int bpf_prog2(struct pt_regs *ctx) -{ - long ptr = PT_REGS_RC(ctx); - long ip = 0; - - /* get ip address of kmem_cache_alloc_node() caller */ - BPF_KRETPROBE_READ_RET_IP(ip, ctx); - - struct pair v = { - .val = bpf_ktime_get_ns(), - .ip = ip, - }; - - bpf_map_update_elem(&my_map, &ptr, &v, BPF_ANY); - return 0; -} -char _license[] SEC("license") = "GPL"; -u32 _version SEC("version") = LINUX_VERSION_CODE; |
