06 Feb, 2016
1 commit
-
Signed-off-by: Alexei Starovoitov
Signed-off-by: David S. Miller
16 Jun, 2015
1 commit
-
eBPF programs attached to kprobes need to filter based on
current->pid, uid and other fields, so introduce helper functions:u64 bpf_get_current_pid_tgid(void)
Return: current->tgid << 32 | current->pidu64 bpf_get_current_uid_gid(void)
Return: current_gid << 32 | current_uidbpf_get_current_comm(char *buf, int size_of_buf)
stores current->comm into bufThey can be used from the programs attached to TC as well to classify packets
based on current task fields.Update tracex2 example to print histogram of write syscalls for each process
instead of aggregated for all.Signed-off-by: Alexei Starovoitov
Signed-off-by: David S. Miller
02 Apr, 2015
1 commit
-
this example has two probes in one C file that attach to
different kprove events and use two different maps.1st probe is x64 specific equivalent of dropmon. It attaches to
kfree_skb, retrevies 'ip' address of kfree_skb() caller and
counts number of packet drops at that 'ip' address. User space
prints 'location - count' map every second.2nd probe attaches to kprobe:sys_write and computes a histogram
of different write sizesUsage:
$ sudo tracex2
location 0xffffffff81695995 count 1
location 0xffffffff816d0da9 count 2location 0xffffffff81695995 count 2
location 0xffffffff816d0da9 count 2location 0xffffffff81695995 count 3
location 0xffffffff816d0da9 count 2557145+0 records in
557145+0 records out
285258240 bytes (285 MB) copied, 1.02379 s, 279 MB/s
syscall write() stats
byte_size : count distribution
1 -> 1 : 3 | |
2 -> 3 : 0 | |
4 -> 7 : 0 | |
8 -> 15 : 0 | |
16 -> 31 : 2 | |
32 -> 63 : 3 | |
64 -> 127 : 1 | |
128 -> 255 : 1 | |
256 -> 511 : 0 | |
512 -> 1023 : 1118968 |************************************* |Ctrl-C at any time. Kernel will auto cleanup maps and programs
$ addr2line -ape ./bld_x64/vmlinux 0xffffffff81695995
0xffffffff816d0da9 0xffffffff81695995:
./bld_x64/../net/ipv4/icmp.c:1038 0xffffffff816d0da9:
./bld_x64/../net/unix/af_unix.c:1231Signed-off-by: Alexei Starovoitov
Cc: Arnaldo Carvalho de Melo
Cc: Arnaldo Carvalho de Melo
Cc: Daniel Borkmann
Cc: David S. Miller
Cc: Jiri Olsa
Cc: Linus Torvalds
Cc: Masami Hiramatsu
Cc: Namhyung Kim
Cc: Peter Zijlstra
Cc: Peter Zijlstra
Cc: Steven Rostedt
Link: http://lkml.kernel.org/r/1427312966-8434-8-git-send-email-ast@plumgrid.com
Signed-off-by: Ingo Molnar