diff options
Diffstat (limited to 'samples/bpf/tracex4_kern.c')
| -rw-r--r-- | samples/bpf/tracex4_kern.c | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/samples/bpf/tracex4_kern.c b/samples/bpf/tracex4_kern.c deleted file mode 100644 index 6dd8e384de96..000000000000 --- a/samples/bpf/tracex4_kern.c +++ /dev/null @@ -1,54 +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_helpers.h" - -struct pair { - u64 val; - u64 ip; -}; - -struct bpf_map_def SEC("maps") my_map = { - .type = BPF_MAP_TYPE_HASH, - .key_size = sizeof(long), - .value_size = sizeof(struct pair), - .max_entries = 1000000, -}; - -/* 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; |
