- 04 Nov, 2015 1 commit
-
-
Brenden Blanco authored
Examples directory has been growing, so add a bit of organization. Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
- 24 Oct, 2015 2 commits
-
-
4ast authored
Bump ulimit for locked memory in test wrapper
-
Brenden Blanco authored
This follows from a change in upstream kernel for counting bpf maps against the locked memory limit. Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
- 23 Oct, 2015 2 commits
-
-
Brenden Blanco authored
Python: fix detach_kprobe()
-
Dr.Z authored
As open_kprobes contains not fd but pointer to struct perf_reader, it should call lib.perf_reader_free() instead of os.close()
-
- 21 Oct, 2015 3 commits
-
-
Brenden Blanco authored
perf_reader: allow more than one reader to poll
-
Dr.Z authored
When more than one events are used with attach_kprobe, the perf_reader_poll() will segfault by buffer overflow like below. *** buffer overflow detected ***: python terminated ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x7338f)[0x7fcc971fb38f] /lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7fcc97292c9c] /lib/x86_64-linux-gnu/libc.so.6(+0x109b60)[0x7fcc97291b60] /lib/x86_64-linux-gnu/libc.so.6(+0x10ac04)[0x7fcc97292c04] /usr/lib/x86_64-linux-gnu/libbcc.so(perf_reader_poll+0x42)[0x7fcc93969cc2] /usr/lib/x86_64-linux-gnu/libffi.so.6(ffi_call_unix64+0x4c)[0x7fcc95c2badc] /usr/lib/x86_64-linux-gnu/libffi.so.6(ffi_call+0x1fc)[0x7fcc95c2b40c] /usr/lib/python2.7/lib-dynload/_ctypes.x86_64-linux-gnu.so(_ctypes_callproc+0x48e)[0x7fcc95e425fe] /usr/lib/python2.7/lib-dynload/_ctypes.x86_64-linux-gnu.so(+0x15f9e)[0x7fcc95e43f9e] python(PyEval_EvalFrameEx+0x965)[0x499be5] python(PyEval_EvalCodeEx+0x2ac)[0x4a090c] python(PyEval_EvalFrameEx+0x7d2)[0x499a52] python[0x4a1634] python(PyRun_FileExFlags+0x92)[0x44e4a5] python(PyRun_SimpleFileExFlags+0x2ee)[0x44ec9f] python(Py_Main+0xb5e)[0x44f904] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fcc971a9ec5] python[0x578c4e]
-
Brenden Blanco authored
softirq and hardirq
-
- 20 Oct, 2015 1 commit
-
-
Brendan Gregg authored
-
- 16 Oct, 2015 3 commits
-
-
Brenden Blanco authored
tcpconnect for IPv4 and IPv6, and make tcpv4connect a trimmed example
-
Brendan Gregg authored
-
Brendan Gregg authored
-
- 14 Oct, 2015 2 commits
-
-
Brenden Blanco authored
perf_reader : add timeout argument to perf_reader_poll
-
SunKyu authored
-
- 13 Oct, 2015 4 commits
-
-
Brenden Blanco authored
tcpaccept
-
Brendan Gregg authored
-
Brendan Gregg authored
-
Brendan Gregg authored
-
- 12 Oct, 2015 5 commits
-
-
4ast authored
Fixes for deb/rpm packaging
-
Brenden Blanco authored
These fixes are manually included in the released 0.1.7 packages, but will help with future builds. Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
4ast authored
Update tag to v0.1.7
-
Brenden Blanco authored
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
Brenden Blanco authored
handle return value in kretprobe handler for tcpv4connect
-
- 08 Oct, 2015 1 commit
-
-
Brenden Blanco authored
Fix an uninitialized variable access in test_clang
-
- 07 Oct, 2015 2 commits
-
-
Yonghong Song authored
Signed-off-by: Yonghong Song <yhs@plumgrid.com>
-
Yonghong Song authored
Signed-off-by: Yonghong Song <yhs@plumgrid.com>
-
- 06 Oct, 2015 5 commits
-
-
4ast authored
Make KeyboardInterrupt catch more aggressive
-
Brenden Blanco authored
Fixes: #186 Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
4ast authored
Fixes for table indexing and clear()
-
Brenden Blanco authored
In the case that python process tries to clear() a table object while the bpf program is still running and doing lookup_or_init, the python clean() routine will race with the bpf program (and bpf will win in the case of frequent kprobe hits) causing a hang. Instead, first get the full list of keys and then delete them rather than rely on the default popitem implementation. Fixes: #233 Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
Brenden Blanco authored
In the case that 0-filled keys are valid in the table, the previous algorithm did not properly iterate. The API of the bpf_get_next_key routine is such that the iteration over a map should start with an invalid key. When a 0 key is valid, this causes iteration to start anywhere inside the hash table, skipping some entries. So, add logic to the Iter object to test if the init key is invalid. If otherwise, try a few alternatives until an invalid key is found. If none found, raise an exception. Also adds a test for indexing arrays from 0, which nows works with this too. Fixes: #260 Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
- 01 Oct, 2015 2 commits
-
-
4ast authored
Don't treat fundamentally typed args as needing probe_read
-
Brenden Blanco authored
The rewriter was aggressively parsing PoD types as requiring probe_read and poisoning other decls when those arguments were used. Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
- 29 Sep, 2015 2 commits
-
-
yonghong-song authored
Mask function calls from influencing probe_read
-
Brenden Blanco authored
Calls to functions were propagating the needs_probe state, causing map values to require a probe_read improperly. Although there may be a use case for this, generally it will not be needed and should be solved differently. Fixes: #256 Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
- 28 Sep, 2015 3 commits
-
-
4ast authored
Add ability to consume perf events in python
-
Brenden Blanco authored
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
Brenden Blanco authored
This adds the ability to consume perf events in libbpf/python using the ring buffer. For now, this is the only way to get access to the function call graph. Only kernel functions are supported. It does this by introducing a new set of libbpf helper functions that can open the perf fd, mmap it, and poll over the events as they are submitted by the kernel. This allow for faster event processing than trace_printks, but has not been tested. The functionality is disabled by default, the user can enable it by passing a non-empty cb parameter into the BPF constructor. That cb function will be invoked for each event that is read from the buffer. Buffers are per-fd, so each event is distinct as well as separated from other processes that may be running simultaneously. The initial test case uses this functionality to build a histogram of events keyed by the callchain. Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
- 27 Sep, 2015 1 commit
-
-
Brenden Blanco authored
tcpv4connect
-
- 26 Sep, 2015 1 commit
-
-
Brendan Gregg authored
-