ceeaspb [Sat, 26 Nov 2016 22:36:10 +0000 (22:36 +0000)]
update offwaketime with get_stackid
4ast [Fri, 9 Dec 2016 23:06:45 +0000 (15:06 -0800)]
Merge pull request #849 from palmtenor/cppperfevent
Expose perf event support in C++ API
Teng Qin [Fri, 9 Dec 2016 20:57:02 +0000 (12:57 -0800)]
Perf event example using C++ API
Teng Qin [Fri, 9 Dec 2016 01:46:13 +0000 (17:46 -0800)]
Expose PMU event support in C++ API
4ast [Fri, 9 Dec 2016 16:40:29 +0000 (08:40 -0800)]
Merge pull request #846 from palmtenor/improve_buffer
Improve C++ API perf buffer polling
Teng Qin [Fri, 9 Dec 2016 08:07:55 +0000 (00:07 -0800)]
Improve C++ API perf buffer polling
4ast [Fri, 9 Dec 2016 06:34:31 +0000 (22:34 -0800)]
Merge pull request #843 from shodoco/flag
add support for bpf map flags
4ast [Fri, 9 Dec 2016 06:32:46 +0000 (22:32 -0800)]
Merge pull request #844 from palmtenor/cleanprog
Make sure program FDs get cleaned up correctly
Teng Qin [Fri, 9 Dec 2016 02:03:33 +0000 (18:03 -0800)]
Make sure programs get cleaned up correctly
4ast [Fri, 9 Dec 2016 04:37:38 +0000 (20:37 -0800)]
Merge pull request #845 from affansyed/master
Fix for issue 829 I reported
affansyed [Fri, 9 Dec 2016 04:04:52 +0000 (09:04 +0500)]
fix issue 829
Needed to make array initialized to null before bpf_probe_read as the
verifier was rejecting the original code. will probably need to fix the
tutorial as well
affansyed [Fri, 9 Dec 2016 04:00:08 +0000 (09:00 +0500)]
Merge pull request #1 from iovisor/master
updating my local repo
Huapeng Zhou [Wed, 7 Dec 2016 02:10:38 +0000 (18:10 -0800)]
add support for bpf map flags
4ast [Thu, 8 Dec 2016 01:26:37 +0000 (17:26 -0800)]
Merge pull request #842 from zhiyisun/dev
Fix bug of missing to install simple_tc.py
Zhiyi Sun [Thu, 8 Dec 2016 01:24:39 +0000 (09:24 +0800)]
Set EXAMPLE_PROGRAMS in one line.
Signed-off-by: Zhiyi Sun <zhiyisun@gmail.com>
Zhiyi Sun [Thu, 8 Dec 2016 00:57:14 +0000 (08:57 +0800)]
Merge branch 'master' into dev
Zhiyi Sun [Thu, 8 Dec 2016 00:51:59 +0000 (08:51 +0800)]
Fix bug of missing to install simple_tc.py
examples/networking/CMakeLists.txt set $EXAMPLE_PROGRAMS twice. The
second one(tc_perf_event.py) overwirte the first one(simple_tc.py).
Signed-off-by: Zhiyi Sun <zhiyisun@gmail.com>
Brenden Blanco [Wed, 7 Dec 2016 02:50:07 +0000 (18:50 -0800)]
Merge pull request #840 from zhiyisun/dev
Add support for aarch64
Zhiyi Sun [Tue, 6 Dec 2016 08:21:37 +0000 (16:21 +0800)]
Add support for aarch64
ABI for aarch64: register x0-x7 are used for parameter and result. In
bcc, there are 6 parameter registers are defined. So use x0-x5 as
parameter. frame pointer, link register, stack pointer and pc are added
in PT_REGS_xx according to arm64 architecture.
syscall number of bpf for aarch64 are defined in Kernel
header uapi/asm-generic/unistd.h.
Signed-off-by: Zhiyi Sun <zhiyisun@gmail.com>
4ast [Sat, 3 Dec 2016 01:44:05 +0000 (17:44 -0800)]
Merge pull request #838 from palmtenor/logmsg
Avoid unexpected log message on BPF program load error
Teng Qin [Sat, 3 Dec 2016 00:31:00 +0000 (16:31 -0800)]
Avoid unexpected log message on BPF program load error
4ast [Fri, 2 Dec 2016 04:55:49 +0000 (20:55 -0800)]
Merge pull request #836 from shodoco/lruhash
bcc: add lru_hash and lru_percpu_hash map types
Huapeng Zhou [Fri, 2 Dec 2016 04:01:46 +0000 (20:01 -0800)]
Add lru_hash/lru_percpu_hash to python/lua
shodoco [Fri, 2 Dec 2016 03:35:19 +0000 (19:35 -0800)]
Merge branch 'master' into lruhash
Huapeng Zhou [Thu, 1 Dec 2016 18:56:36 +0000 (10:56 -0800)]
bcc: add lru_hash and lru_percpu_hash map types
4ast [Thu, 1 Dec 2016 05:18:52 +0000 (21:18 -0800)]
Merge pull request #832 from brendangregg/master
profile: -p should match user PID
Brendan Gregg [Thu, 1 Dec 2016 04:26:26 +0000 (20:26 -0800)]
profile: -p should match user PID
4ast [Thu, 1 Dec 2016 03:50:22 +0000 (19:50 -0800)]
Merge pull request #831 from brendangregg/master
tcplife: reorder logic to catch missed timestamps
Brendan Gregg [Thu, 1 Dec 2016 00:55:45 +0000 (16:55 -0800)]
tcplife: reorder logic to catch missed timestamps
4ast [Wed, 30 Nov 2016 16:29:28 +0000 (08:29 -0800)]
Merge pull request #830 from lcp/fix-data_t
hello_perf_output: match the data type of pid
Gary Lin [Wed, 30 Nov 2016 09:13:37 +0000 (17:13 +0800)]
hello_perf_output: match the data type of pid
Signed-off-by: Gary Lin <glin@suse.com>
4ast [Wed, 30 Nov 2016 05:48:24 +0000 (21:48 -0800)]
Merge pull request #828 from palmtenor/dbgflg
Remove debug flag override in bcc_exception.h
Teng Qin [Wed, 30 Nov 2016 04:11:19 +0000 (20:11 -0800)]
Remove debug flag override in bcc_exception.h
4ast [Wed, 30 Nov 2016 03:13:10 +0000 (19:13 -0800)]
Merge pull request #824 from palmtenor/exception_h
Clean up bcc_exception.h
Teng Qin [Wed, 30 Nov 2016 01:09:20 +0000 (17:09 -0800)]
Use StatusTuple constructor in mkstatus_
Teng Qin [Wed, 30 Nov 2016 00:29:08 +0000 (16:29 -0800)]
Implement StatusTuple class instead of using std::tuple
Teng Qin [Tue, 29 Nov 2016 17:08:33 +0000 (09:08 -0800)]
Remove unused headers and Macro
4ast [Tue, 29 Nov 2016 22:22:31 +0000 (14:22 -0800)]
Merge pull request #825 from brendangregg/master
biotop.py: fix compiler error on newer kernels
Brendan Gregg [Tue, 29 Nov 2016 19:11:31 +0000 (11:11 -0800)]
biotop.py: fix compiler error on newer kernels
Brenden Blanco [Tue, 29 Nov 2016 16:35:46 +0000 (08:35 -0800)]
Merge pull request #823 from kinvolk/krnowak/kernel-dirs-at-runtime
Determine kernel dirs at runtime (fix #743)
4ast [Tue, 29 Nov 2016 16:22:10 +0000 (08:22 -0800)]
Merge pull request #822 from iovisor/llvm_40_build
Add LLVMCoroutines lib for llvm>=4.0 builds
Krzesimir Nowak [Wed, 26 Oct 2016 11:00:09 +0000 (13:00 +0200)]
Determine kernel dirs at runtime (fix #743)
As some module build directories split headers between `source/` and
`build/` and this varies between distributions, determine the location
at runtime.
Brenden Blanco [Tue, 29 Nov 2016 15:37:30 +0000 (07:37 -0800)]
Add LLVMCoroutines lib for llvm>=4.0 builds
Building bcc against a tip of tree llvm introduces a new link failure,
which is fixed by linking against libLLVMCoroutines (which only exists
in 4.0).
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Tue, 29 Nov 2016 09:05:47 +0000 (01:05 -0800)]
Merge pull request #821 from palmtenor/adjust_headers
Improve the structure of exception related header files
Teng Qin [Tue, 29 Nov 2016 05:58:46 +0000 (21:58 -0800)]
Rename exception.h to bcc_exception.h
Teng Qin [Tue, 29 Nov 2016 05:55:32 +0000 (21:55 -0800)]
Move StatusTuple definition to exception.h
4ast [Tue, 29 Nov 2016 02:44:16 +0000 (18:44 -0800)]
Merge pull request #820 from brendangregg/master
tcplife.py: Catch passive closed by server, #788
Brendan Gregg [Tue, 29 Nov 2016 01:57:20 +0000 (17:57 -0800)]
tcplife.py: Catch passive closed by server, #788
4ast [Tue, 29 Nov 2016 00:30:24 +0000 (16:30 -0800)]
Merge pull request #781 from palmtenor/api
C++ helper class for BCC
William Cohen [Mon, 28 Nov 2016 18:51:28 +0000 (13:51 -0500)]
Eliminate rpmlint errors and allow bcc srpm to build on Fedora koji b… (#815)
* Eliminate rpmlint errors and allow bcc srpm to build on Fedora koji build system
The nightly bcc srpm does not build as-is on Fedora 24. To get the
build to work the following changes were made in the bcc.spec file:
-Specify where to find luajit headers and libraries
-Correctly limit the build to the x86_64 architecture
-Add needed build requires so the srpm can build on Fedora koji
-Run ldconfig so shared library information is updated
-Follow spec conventions by putting %changelog at the end of the spec file
* Further refine the bcc.spec file
Make the following improvements to the gcc.spec file:
-Use local_clang_static variable to allow building with locally installed clang
-Adjust build requires to include nucurses-devel and make
-Put the subpackage descriptions and file list in a more logical order
-Correct the binary rpm dependencies for the subpackages
Teng Qin [Wed, 23 Nov 2016 20:23:03 +0000 (12:23 -0800)]
Examples of using BCC C++ API
Teng Qin [Wed, 23 Nov 2016 20:23:03 +0000 (12:23 -0800)]
Basic BCC C++ API
Teng Qin [Wed, 23 Nov 2016 20:23:03 +0000 (12:23 -0800)]
Add helper method to exception.h
Teng Qin [Wed, 23 Nov 2016 20:23:03 +0000 (12:23 -0800)]
Install exception.h and common.h
Teng Qin [Wed, 23 Nov 2016 20:23:03 +0000 (12:23 -0800)]
Update .clang-format configs
4ast [Thu, 24 Nov 2016 00:51:08 +0000 (16:51 -0800)]
Merge pull request #817 from iovisor/clang_c_fixes
Fixup test errors in clang, c api
Brenden Blanco [Thu, 24 Nov 2016 00:26:01 +0000 (16:26 -0800)]
Fixup test errors in clang, c api
Some errors seem to have cropped up due to updating kernels and clang
library versions.
1. test_c_api fails on kernels (seen on fedora 4.9) where startup_64
doesn't start at a particular address. Simplify the test to hopefully
work in more systems.
2. The lua and python test_clang did a dereference on a particular bio
field, which has been removed. Pick a different field that is more
uniquitous.
3. test_xlate1 was generating code where the verified pointer spilled.
Rewrite the example to store the result on the stack.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Fri, 18 Nov 2016 23:23:51 +0000 (15:23 -0800)]
Merge pull request #813 from goldshtn/trace-usdt-pid-fix
trace: Avoid passing -1 as the pid to USDT
4ast [Mon, 14 Nov 2016 17:31:28 +0000 (09:31 -0800)]
docs: Fix typos (#811)
Jakub Wilk [Mon, 14 Nov 2016 09:49:35 +0000 (10:49 +0100)]
docs: Fix typos
Sasha Goldshtein [Sun, 13 Nov 2016 13:07:38 +0000 (05:07 -0800)]
trace: Avoid passing -1 as the pid to USDT
When the `-p` switch is used with `trace`, it would set
the tgid to the value passed to `-p` and set the pid to
-1. The result would be incorrect logic that passed the -1
pid value to the `USDT` context constructor, which fails
for probes that require the pid to enable (because they
have a semaphore that needs a poke). This commit fixes it.
Taekho Nam [Fri, 11 Nov 2016 16:57:35 +0000 (01:57 +0900)]
fix some typos (#810)
Teng Qin [Fri, 11 Nov 2016 16:56:58 +0000 (08:56 -0800)]
Fix Tracepoint example (#809)
Brenden Blanco [Wed, 9 Nov 2016 20:04:42 +0000 (12:04 -0800)]
Merge pull request #808 from goldshtn/close-table-fd-fix
cc, python: Clean up BPF module and tables
Sasha Goldshtein [Wed, 9 Nov 2016 23:05:50 +0000 (15:05 -0800)]
cc, python: Clean up BPF module and tables
When the `BPFModule` object is destroyed, shared tables
were closed, but non-shared tables were not. Add `close`
call to close non-shared tables in `~BPFModule`.
Make sure the `BPF.cleanup` function in the Python module
calls `bpf_module_destroy` to clean up the module. Otherwise,
we have hanging table fds that aren't destroyed.
Fixes #806. This would have been an issue for any tool
that repeatedly runs a BPF program with new maps. It's just
that most tools we have haven't exhibited this behavior.
Brenden Blanco [Wed, 9 Nov 2016 20:04:29 +0000 (12:04 -0800)]
Merge pull request #807 from markdrayton/perf-pid-map
Make bcc_symcache_new(tid) work with symbols from /tmp/perf-pid.map
Mark Drayton [Sun, 6 Nov 2016 23:35:50 +0000 (23:35 +0000)]
Make bcc_symcache_new(tid) work with symbols from /tmp/perf-pid.map
Brenden Blanco [Tue, 8 Nov 2016 21:14:14 +0000 (22:14 +0100)]
Merge pull request #803 from dark/fix-warnings
Fix warnings covered by -Wdelete-non-virtual-dtor
Marco Leogrande [Tue, 8 Nov 2016 17:23:20 +0000 (09:23 -0800)]
Fix warnings covered by -Wdelete-non-virtual-dtor
The warnings were:
src/cc/bcc_syms.cc: In function ‘void bcc_free_symcache(void*, int)’:
src/cc/bcc_syms.cc:217:40: warning: deleting object of polymorphic class type ‘KSyms’
which has non-virtual destructor might cause undefined behaviour
[-Wdelete-non-virtual-dtor]
delete static_cast<KSyms*>(symcache);
^
src/cc/bcc_syms.cc:219:43: warning: deleting object of polymorphic class type ‘ProcSyms’
which has non-virtual destructor might cause undefined behaviour
[-Wdelete-non-virtual-dtor]
delete static_cast<ProcSyms*>(symcache);
^
Fix the warnings by defining a virtual destructor for the base class SymbolCache.
Signed-off-by: Marco Leogrande <marcol@plumgrid.com>
Jan-Erik Rediger [Mon, 7 Nov 2016 16:08:03 +0000 (17:08 +0100)]
Remove superfluous word (#802)
Paul Chaignon [Sat, 5 Nov 2016 19:00:30 +0000 (20:00 +0100)]
Fix argument type for increment() in documentation (#794)
Jan-Erik Rediger [Sat, 5 Nov 2016 18:55:32 +0000 (19:55 +0100)]
Fix typo in documentation (#801)
Mark Drayton [Thu, 3 Nov 2016 15:36:29 +0000 (15:36 +0000)]
trace: add pid/tid filtering, fix symbolizing, misc nits (#798)
* support filtering by process ID (-p) or thread ID (-t); previously -p
actually filtered on thread ID (aka "pid" in kernel-speak)
* include process and thread ID in output
* flip order of user and kernel stacks to flow more naturally
* resolve symbols using process ID instead of thread ID so only one symbol
cache is instantiated per process
* misc aesthetic fixes here and there
Brenden Blanco [Wed, 2 Nov 2016 16:03:53 +0000 (17:03 +0100)]
Merge pull request #795 from mslusarz/install-perf_reader.h
perf_reader: install perf_reader.h
Brenden Blanco [Wed, 2 Nov 2016 05:35:30 +0000 (06:35 +0100)]
Merge pull request #796 from palmtenor/sym_free
Expose destruction of SymbolCache in libbcc
Teng Qin [Mon, 31 Oct 2016 21:20:43 +0000 (14:20 -0700)]
Expose destruction of SymbolCache in libbcc
Marcin Ślusarz [Sun, 30 Oct 2016 13:20:07 +0000 (14:20 +0100)]
perf_reader: install perf_reader.h
Ref: iovisor/bcc#778
Teng Qin [Sun, 30 Oct 2016 06:00:02 +0000 (23:00 -0700)]
Use headers from BCC in installed files (#793)
Sasha Goldshtein [Fri, 28 Oct 2016 20:45:08 +0000 (23:45 +0300)]
funccount: Bail early if there are no matching functions (#792)
funccount now bails early with an error if there are no
functions matching the specified pattern (the same applies
to tracepoints and USDT probes). For example:
```
No functions matched by pattern ^sched:sched_fork$
```
Fixes #789.
Brendan Gregg [Thu, 27 Oct 2016 21:05:40 +0000 (14:05 -0700)]
update tools pic (#787)
Brenden Blanco [Wed, 26 Oct 2016 02:54:34 +0000 (19:54 -0700)]
Merge pull request #780 from goldshtn/kprobe-funccount
funccount: Fix on-CPU hang when attaching to SyS_*
Marco Leogrande [Tue, 25 Oct 2016 21:15:48 +0000 (14:15 -0700)]
Add installation instructions for Gentoo (#785)
Signed-off-by: Marco Leogrande <marcol@plumgrid.com>
Sasha Goldshtein [Tue, 25 Oct 2016 14:27:38 +0000 (07:27 -0700)]
python: Grab all keys before zeroing
To avoid a potential race with the key zeroing modifying
the next hash key retrieved by the loop in `Table.zero()`,
retrieve all the keys in user space first before starting
the zeroing loop. See discussion on #780.
Tested with `funccount 'SyS_*' -i 1` while running a heavy
read/write test application (`dd`) in the background for
several minutes with no visible issues.
Sasha Goldshtein [Tue, 25 Oct 2016 14:18:24 +0000 (07:18 -0700)]
funccount: Switch to BPF array instead of hash
Because we know the number of probes in advance before
attaching them, we can simply preinitialize a fixed-size
array instead of using a BPF map. This avoids potential
deadlocks/hangs/race conditions with the Python program
and internally in the kernel. See also #415, #665, #233
for more discussion.
Brendan Gregg [Fri, 21 Oct 2016 05:50:08 +0000 (22:50 -0700)]
Update profile.py to use new perf support (#776)
* profile.py to use new perf support
* Minor adjustments to llcstat docs
Brendan Gregg [Fri, 21 Oct 2016 04:46:09 +0000 (21:46 -0700)]
fix junk filenames (#775)
Brenden Blanco [Fri, 21 Oct 2016 01:30:07 +0000 (18:30 -0700)]
Merge pull request #770 from palmtenor/pmu_api
Add basic support for BPF perf event
Teng Qin [Thu, 20 Oct 2016 23:50:06 +0000 (16:50 -0700)]
Add example and man file for llcstat
Teng Qin [Wed, 19 Oct 2016 00:22:27 +0000 (17:22 -0700)]
Example for using BPF perf event
Sasha Goldshtein [Thu, 20 Oct 2016 23:19:12 +0000 (16:19 -0700)]
funccount: Do not prepopulate location cache
Avoiding the prepopulation of the location cache allows us
to get rid of the `zero()` call at the end of each interval,
which would hang the program at full CPU. Replaced the
prepopulation with a `lookup_or_init` and the `zero()` call
with a call to `clear()`.
Sasha Goldshtein [Thu, 20 Oct 2016 23:18:07 +0000 (16:18 -0700)]
python: Filter duplicate in get_kprobe_functions
`BPF.get_kprobe_functions` does not filter duplicates, and
as a result may return the same function name more than
once if it appears in /sys/kernel/debug/tracing/available_filter_functions
more than once. Change the function's behavior to filter
out duplicates before returning, so we don't end up
attaching the same kprobe more than once.
Teng Qin [Tue, 18 Oct 2016 23:45:41 +0000 (16:45 -0700)]
Python API for BPF perf event
Teng Qin [Tue, 18 Oct 2016 23:06:57 +0000 (16:06 -0700)]
Add bpf_attach_perf_event in libbpf
Teng Qin [Tue, 18 Oct 2016 22:20:18 +0000 (15:20 -0700)]
Add BPF_PROG_TYPE_PERF_EVENT to bpf_prog_type enum
Brendan Gregg [Thu, 20 Oct 2016 03:06:51 +0000 (20:06 -0700)]
Merge pull request #772 from goldshtn/strcmp
trace, argdist: STRCMP helper function
Brendan Gregg [Thu, 20 Oct 2016 02:03:17 +0000 (19:03 -0700)]
Merge branch 'master' into strcmp
Brendan Gregg [Thu, 20 Oct 2016 01:55:10 +0000 (18:55 -0700)]
add tcplife (#773)
Brendan Gregg [Thu, 20 Oct 2016 01:48:17 +0000 (18:48 -0700)]
add reset-trace (#766)
Sasha Goldshtein [Thu, 20 Oct 2016 01:46:37 +0000 (02:46 +0100)]
funccount: Verify probe max limit (#771)
Because `funccount` doesn't use the direct regex attach infrastructure
in the BPF module, it needs its own checking for a maximum probe
limit that would make sense. We use 1000 because that's what the
BPF module uses as well. When trying to attach to more than 1000
probes, we bail out early.
Brendan Gregg [Wed, 19 Oct 2016 08:22:18 +0000 (01:22 -0700)]
Merge pull request #763 from goldshtn/enhanced-funccount
funccount: Generalized for uprobes, tracepoints, and USDT