Brendan Gregg [Sun, 7 Feb 2016 20:22:50 +0000 (12:22 -0800)]
more advice in the man page
Brendan Gregg [Sun, 7 Feb 2016 20:14:37 +0000 (12:14 -0800)]
fsslower
4ast [Sun, 7 Feb 2016 15:11:55 +0000 (07:11 -0800)]
Merge pull request #351 from iovisor/iteritems
Fix python map.items() racing with bpf delete
Brenden Blanco [Sun, 7 Feb 2016 14:57:17 +0000 (06:57 -0800)]
Fix python map.items() racing with bpf delete
The default python implementation of itervalues(), iteritems(), items(), and
values() do a sequence of iter().next followed by self[key], which may
produce a KeyError since a bpf program can delete them quickly. It
should be safe to suppress such errors, hiding them from the user.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Sun, 7 Feb 2016 14:30:37 +0000 (06:30 -0800)]
Merge pull request #349 from brendangregg/master
biotop
4ast [Sun, 7 Feb 2016 14:03:01 +0000 (06:03 -0800)]
Merge pull request #348 from iovisor/scanf_fix
Support array and pointer types in scanf generated function
Brendan Gregg [Sun, 7 Feb 2016 08:54:44 +0000 (00:54 -0800)]
update comments
Brendan Gregg [Sun, 7 Feb 2016 08:46:34 +0000 (00:46 -0800)]
biotop
Brenden Blanco [Sun, 7 Feb 2016 04:59:10 +0000 (20:59 -0800)]
Support array and pointer types in scanf generated function
The rewriter-created sscanf and snprintf routines did not support map
structs with arrays or pointer types in them. Add such support.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Sun, 7 Feb 2016 04:07:03 +0000 (20:07 -0800)]
Merge pull request #346 from brendangregg/master
biosnoop.py: use one map instead of two
Brendan Gregg [Sun, 7 Feb 2016 01:19:59 +0000 (17:19 -0800)]
simplify
Brendan Gregg [Sun, 7 Feb 2016 01:11:59 +0000 (17:11 -0800)]
nits
Brendan Gregg [Sun, 7 Feb 2016 01:08:38 +0000 (17:08 -0800)]
bitesize nits
Brendan Gregg [Sun, 7 Feb 2016 00:45:29 +0000 (16:45 -0800)]
use one map instead of two
Brenden Blanco [Sat, 6 Feb 2016 20:34:53 +0000 (12:34 -0800)]
Merge pull request #343 from ceeaspb/master
typo trawl
Brenden Blanco [Sat, 6 Feb 2016 20:34:25 +0000 (12:34 -0800)]
Merge pull request #340 from linuxfood/master
Add bpf_module.h to CMakeLists.txt
Brenden Blanco [Sat, 6 Feb 2016 20:33:57 +0000 (12:33 -0800)]
Merge pull request #342 from mcaleavya/master
Add in tool bitesize
Brenden Blanco [Sat, 6 Feb 2016 17:07:20 +0000 (09:07 -0800)]
Merge pull request #337 from mbertrone/master
Simple HTTP Filter Example
Bertrone Matteo [Sat, 6 Feb 2016 17:04:47 +0000 (18:04 +0100)]
Merge branch 'master' into master
Bertrone Matteo [Sat, 6 Feb 2016 16:12:45 +0000 (17:12 +0100)]
README changes
Alex Bagehot [Sat, 6 Feb 2016 16:09:58 +0000 (16:09 +0000)]
one slipped the net
Alex Bagehot [Sat, 6 Feb 2016 16:04:10 +0000 (16:04 +0000)]
recommend using a spell checker before committing
Alex Bagehot [Sat, 6 Feb 2016 16:01:02 +0000 (16:01 +0000)]
trawl typos with aspell
Bertrone Matteo [Sat, 6 Feb 2016 15:56:01 +0000 (16:56 +0100)]
http filter example
Allan McAleavy [Sat, 6 Feb 2016 12:06:18 +0000 (12:06 +0000)]
Update README.md
mcaleavya [Sat, 6 Feb 2016 12:02:40 +0000 (12:02 +0000)]
Added update to README.md
mcaleavya [Sat, 6 Feb 2016 12:00:34 +0000 (12:00 +0000)]
Add bitesize tool
Allan McAleavy [Sat, 6 Feb 2016 11:54:17 +0000 (11:54 +0000)]
Merge pull request #1 from iovisor/master
update local repo
Brendan Gregg [Fri, 5 Feb 2016 23:45:55 +0000 (15:45 -0800)]
Merge pull request #341 from iovisor/brendangregg-patch-1
documentation typos
Brendan Gregg [Fri, 5 Feb 2016 23:40:28 +0000 (15:40 -0800)]
Merge branch 'master' into brendangregg-patch-1
4ast [Fri, 5 Feb 2016 23:39:01 +0000 (15:39 -0800)]
Merge pull request #339 from iovisor/segfault_fix
Fix segfault in ~BPFModule on syntax error
Brendan Gregg [Fri, 5 Feb 2016 23:37:56 +0000 (15:37 -0800)]
documentation typos
linuxfood [Fri, 5 Feb 2016 23:03:56 +0000 (15:03 -0800)]
Merge branch 'master' into master
Brenden Blanco [Fri, 5 Feb 2016 22:49:10 +0000 (14:49 -0800)]
Fix segfault in ~BPFModule on syntax error
~BPFModule was segfaulting because tables_ was an empty pointer. The
pointer is valid only for valid compilations. Add a test as well.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Fri, 5 Feb 2016 22:44:00 +0000 (14:44 -0800)]
Merge pull request #338 from brendangregg/master
contributing scripts guide
Brendan Gregg [Fri, 5 Feb 2016 22:40:34 +0000 (14:40 -0800)]
different man formats
Brian Smith [Fri, 5 Feb 2016 22:03:16 +0000 (14:03 -0800)]
Add bpf_module.h to CMakeLists.txt
The C++ API should also be exported, in addition to the C API.
Because type safety is nice.
Brendan Gregg [Fri, 5 Feb 2016 21:36:06 +0000 (13:36 -0800)]
contributing scripts guide
Bertrone Matteo [Fri, 5 Feb 2016 10:38:06 +0000 (11:38 +0100)]
http filter example
4ast [Thu, 4 Feb 2016 17:13:06 +0000 (09:13 -0800)]
Merge pull request #335 from iovisor/p4-fixes
Reorder P4 struct key initializers and blocks
Brenden Blanco [Wed, 3 Feb 2016 00:07:56 +0000 (16:07 -0800)]
Reorder P4 struct key initializers and blocks
The basic_routing.p4 program was failing verification due to missed map
key initializers in some paths. Put the goto label at the head of the
block and add a " = {}" for each key declaration inside the block.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Thu, 4 Feb 2016 06:07:52 +0000 (22:07 -0800)]
Merge pull request #334 from iovisor/ast_dev
use __builtin_memcpy() instead of unrolled loop
Alexei Starovoitov [Thu, 4 Feb 2016 05:25:43 +0000 (21:25 -0800)]
use __builtin_memcpy() instead of unrolled loop
also remove tab and unused import
Signed-off-by: Alexei Starovoitov <ast@fb.com>
4ast [Sun, 31 Jan 2016 18:38:14 +0000 (10:38 -0800)]
Merge pull request #332 from mcaleavya/master
Added cachestat tool
unixtest [Sun, 31 Jan 2016 10:47:03 +0000 (10:47 +0000)]
update with cachestat , squashed commit
Added .txt to exmaple file to allow link to work
duplicate file
duplicate of .txt version
Author: allan mcaleavy <allan.mcaleavy@gmail.com>
4ast [Sat, 30 Jan 2016 19:15:48 +0000 (11:15 -0800)]
Merge pull request #331 from brendangregg/master
offwaketime
Brendan Gregg [Sat, 30 Jan 2016 19:05:40 +0000 (11:05 -0800)]
fix synopsis options in docs
Brendan Gregg [Sat, 30 Jan 2016 19:02:29 +0000 (11:02 -0800)]
offwaketime
4ast [Fri, 29 Jan 2016 20:06:48 +0000 (12:06 -0800)]
Merge pull request #329 from iovisor/dump_func
Update test_dump_func to be python3 compatible
Brenden Blanco [Fri, 29 Jan 2016 19:58:54 +0000 (11:58 -0800)]
Update test_dump_func to be python3 compatible
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Fri, 29 Jan 2016 07:18:26 +0000 (23:18 -0800)]
Merge pull request #326 from brendangregg/master
gethostlatency
Brendan Gregg [Fri, 29 Jan 2016 07:00:44 +0000 (23:00 -0800)]
Merge remote-tracking branch 'upstream/master'
Brendan Gregg [Fri, 29 Jan 2016 07:00:00 +0000 (23:00 -0800)]
gethostlatency
Brenden Blanco [Fri, 29 Jan 2016 06:48:38 +0000 (22:48 -0800)]
Merge pull request #325 from brendangregg/master
bashreadline
Brendan Gregg [Fri, 29 Jan 2016 06:43:37 +0000 (22:43 -0800)]
bashreadline
Brenden Blanco [Fri, 29 Jan 2016 06:42:39 +0000 (22:42 -0800)]
Merge pull request #324 from brendangregg/master
more strlen examples
Brendan Gregg [Fri, 29 Jan 2016 06:39:23 +0000 (22:39 -0800)]
more strlen examples
4ast [Fri, 29 Jan 2016 06:24:39 +0000 (22:24 -0800)]
Merge pull request #323 from iovisor/strlen
Add uprobe strlen histogram example
Brenden Blanco [Fri, 29 Jan 2016 06:15:25 +0000 (22:15 -0800)]
Add uprobe strlen histogram example
This example traces all calls to libc's strlen(). The program is attached as a
retprobe, therefore giving access to the resulting string length. The value is
kept in a log2 histogram that is printed to console once per second.
Example:
```
$ sudo ./strlen_hist.py
22:12:51
strlen return: : count distribution
0 -> 1 : 2041 |**************** |
2 -> 3 : 1120 |******** |
4 -> 7 : 3300 |************************** |
8 -> 15 : 4995 |****************************************|
16 -> 31 : 2130 |***************** |
32 -> 63 : 562 |**** |
^C
```
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Fri, 29 Jan 2016 05:12:02 +0000 (21:12 -0800)]
Merge pull request #322 from iovisor/uprobes
Uprobe support
Brenden Blanco [Fri, 29 Jan 2016 05:07:28 +0000 (21:07 -0800)]
Fixup objdump calling syntax and add docstrings
Use the full path invocation of objdump in both places.
Add a docstring for the variants of attach_retprobe.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Thu, 28 Jan 2016 22:18:46 +0000 (14:18 -0800)]
Fixes for address calculation
The calculation of function address in non-shared libraries was
incorrect. Fix it.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Thu, 28 Jan 2016 18:26:06 +0000 (10:26 -0800)]
Add python support for attaching bpf programs to uprobes
This adds a similar set of functions to kprobes for userspace probes.
The calling convention is different, however, since the user must
provide a library/binary name and function symbol or address. Add two
simple test cases for both.
I don't see an easy way in this api to add auto-loading support, as in
kprobe functions that start with "kprobe__". Such niceties can come
later.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Thu, 28 Jan 2016 18:24:56 +0000 (10:24 -0800)]
Add libbpf.c support for uprobes
The base calling convention for uprobes is the same as kprobes, but just
the path in debug/tracing/ is slightly different. Add a new API for this
and slightly refactor the code.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Thu, 28 Jan 2016 17:32:13 +0000 (09:32 -0800)]
Merge pull request #321 from brendangregg/master
wakeuptime
Brendan Gregg [Thu, 28 Jan 2016 07:17:40 +0000 (23:17 -0800)]
wakeuptime
Brendan Gregg [Thu, 28 Jan 2016 07:11:12 +0000 (23:11 -0800)]
wordwrap fix, and terminology adjustment
Brenden Blanco [Wed, 27 Jan 2016 16:15:24 +0000 (08:15 -0800)]
Merge pull request #320 from iovisor/offcputime_fix
Add decode() to ascii string in offcputime.py
Brenden Blanco [Wed, 27 Jan 2016 07:12:59 +0000 (23:12 -0800)]
Add decode() to ascii string in offcputime.py
Fixes: #318
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Wed, 27 Jan 2016 06:10:25 +0000 (22:10 -0800)]
Merge pull request #319 from iovisor/cmake_fixes
Updates to use cmake GLOB and libbcc.so.0 in python init
Brenden Blanco [Tue, 26 Jan 2016 20:04:06 +0000 (12:04 -0800)]
Updates to use cmake GLOB and libbcc.so.0 in python init
In order not to miss some files in the tools and examples source
directories, use cmake file(GLOB) to collect relevant files. To ease the
implementation, move all tools to be .py suffixed in the source, but
sans-suffix in the installation (same as before)
In addition, to prevent future API breakage confusion (though of course
that may still happen), use CDLL("libbcc.so.0") in the bcc __init__.py.
Fixes: #317
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Wed, 20 Jan 2016 01:39:27 +0000 (17:39 -0800)]
Merge pull request #316 from brendangregg/master
offcputime improvements
Brendan Gregg [Wed, 20 Jan 2016 01:15:02 +0000 (17:15 -0800)]
docs for offcputime -u
Brendan Gregg [Wed, 20 Jan 2016 01:12:52 +0000 (17:12 -0800)]
add -u, and change from 2 to 1 traced funcitons
Brendan Gregg [Tue, 19 Jan 2016 22:40:41 +0000 (14:40 -0800)]
optimize code, remove unnecessary filter check
Brenden Blanco [Tue, 19 Jan 2016 15:12:21 +0000 (07:12 -0800)]
Merge pull request #315 from brendangregg/master
stack walker typo and improvement
Brendan Gregg [Tue, 19 Jan 2016 09:07:20 +0000 (01:07 -0800)]
Merge branch 'master' into master
Brendan Gregg [Tue, 19 Jan 2016 08:55:12 +0000 (00:55 -0800)]
stack walker typo and improvement
4ast [Mon, 18 Jan 2016 22:32:58 +0000 (14:32 -0800)]
Merge pull request #314 from iovisor/map_unshare
Close fd and unshare when public map is destructed
Brenden Blanco [Mon, 18 Jan 2016 21:56:49 +0000 (13:56 -0800)]
Close fd and unshare when public map is destructed
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Sat, 16 Jan 2016 01:47:37 +0000 (17:47 -0800)]
Merge pull request #313 from brendangregg/master
stack walking scripts
Brendan Gregg [Sat, 16 Jan 2016 01:26:30 +0000 (17:26 -0800)]
stack walking scripts
Brenden Blanco [Thu, 14 Jan 2016 19:33:22 +0000 (11:33 -0800)]
Merge pull request #312 from iovisor/ast_dev
fix pep8 lint errors in the rest of the tools
Alexei Starovoitov [Thu, 14 Jan 2016 18:09:20 +0000 (10:09 -0800)]
fix pep8 lint errors in the rest of the tools
no functional changes
Signed-off-by: Alexei Starovoitov <ast@fb.com>
Brenden Blanco [Sun, 10 Jan 2016 16:26:49 +0000 (08:26 -0800)]
Merge pull request #310 from iovisor/ast_dev
fix pep8 lint errors in biolatency and biosnoop
Alexei Starovoitov [Sat, 9 Jan 2016 20:06:40 +0000 (12:06 -0800)]
fix pep8 lint errors in biolatency and biosnoop
Signed-off-by: Alexei Starovoitov <ast@fb.com>
4ast [Fri, 8 Jan 2016 19:28:27 +0000 (11:28 -0800)]
Merge pull request #309 from iovisor/sharedmaps
Add ability to export maps, enables cross-program sharing
Brenden Blanco [Fri, 8 Jan 2016 16:30:13 +0000 (08:30 -0800)]
Rename BPF_EXPORT to BPF_TABLE_PUBLIC
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Wed, 16 Dec 2015 00:39:35 +0000 (16:39 -0800)]
Add ability to export maps, enables cross-program sharing
Allow a program to export a map for other programs to use. This enables
cross-program map sharing.
parent program syntax:
BPF_TABLE("array", int, int, shared, 10);
BPF_TABLE_EXPORT(shared);
child program syntax:
BPF_TABLE("extern", int, int, shared, 10);
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Wed, 6 Jan 2016 21:58:26 +0000 (13:58 -0800)]
Merge pull request #308 from iovisor/cflags
Add ability to set custom cflags when loading programs
Brenden Blanco [Wed, 6 Jan 2016 16:45:42 +0000 (08:45 -0800)]
Add ability to set custom cflags when loading programs
Example:
b = bcc.BPF("myprog.c", cflags=["-DMYCUSTOMFLAG1", ...])
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Mon, 4 Jan 2016 19:47:08 +0000 (11:47 -0800)]
Merge pull request #307 from iovisor/kbuild_fix
Remove runtime dependency on gcc stdarg headers and make
Brenden Blanco [Mon, 4 Jan 2016 17:54:00 +0000 (09:54 -0800)]
Remove runtime dependency on gcc stdarg headers and make
Remove the runtime dependency on gcc's stdarg.h. Do this by packaging
the (non-GPL) version shipped with clang. This allows the bulk of
kbuild_helper to be removed, at the expense of hardcoding the kernel
include paths. If in the future the kernel make system changes again to
require different -I paths, we'll have to think this through again.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Fri, 1 Jan 2016 20:13:11 +0000 (12:13 -0800)]
Merge pull request #306 from troyengel/te_dev
add new Arch packages, new TOC and spiffy up the formatting
troyengel [Fri, 1 Jan 2016 19:51:29 +0000 (13:51 -0600)]
add new Arch packages, new TOC and spiffy up the formatting
Brenden Blanco [Thu, 10 Dec 2015 17:57:27 +0000 (09:57 -0800)]
Merge pull request #305 from iovisor/bblanco_dev
Drop broken p4/docs symlink and create README.md+URL
Brenden Blanco [Thu, 10 Dec 2015 16:00:02 +0000 (08:00 -0800)]
Drop broken p4/docs symlink and create README.md+URL
There was a symlink to a local file, which would instead work better as
a URL to the bpf-docs repository.
Fixes: #304
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Mon, 7 Dec 2015 04:05:53 +0000 (20:05 -0800)]
Merge pull request #303 from iovisor/bblanco_dev
Improve json type support for misc struct/union types
Brenden Blanco [Mon, 7 Dec 2015 03:58:38 +0000 (19:58 -0800)]
Improve json type support for misc struct/union types
The ability of the clang rewriter to extract the type information for
some types of structs, unions, and pointers to the aforementioned was
somewhat buggy. This became exposed in a test_clang case after a user
upgraded to a newer kernel, wherein the struct definition changed. The
functionality in question is only used to pass json-ified representation
of the struct to python in order to program the Key/Leaf metaclass.
Improve support for this and other types, including unions.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Thu, 3 Dec 2015 22:11:00 +0000 (14:11 -0800)]
Merge pull request #302 from iovisor/ast_dev
make sure LDFLAGS are propagated as well