Brendan Gregg [Wed, 14 Dec 2016 20:10:59 +0000 (12:10 -0800)]
add runqlen tool
Brendan Gregg [Wed, 14 Dec 2016 19:31:00 +0000 (11:31 -0800)]
add print_linear_hist() for linear histograms
4ast [Wed, 14 Dec 2016 02:13:26 +0000 (18:13 -0800)]
Merge pull request #856 from brendangregg/master
check effective userid on run #850
4ast [Wed, 14 Dec 2016 00:26:05 +0000 (16:26 -0800)]
Merge pull request #837 from zlim/docker
add Quick Start Guide for bcc docker
Brendan Gregg [Tue, 13 Dec 2016 23:18:29 +0000 (15:18 -0800)]
check effective userid on run #850
4ast [Mon, 12 Dec 2016 16:27:30 +0000 (08:27 -0800)]
Merge pull request #852 from qmonnet/kernelfeatures
docs: Update eBPF features list
Quentin Monnet [Mon, 12 Dec 2016 12:42:51 +0000 (13:42 +0100)]
docs: Update eBPF features list
Update of BPF features list, following the release of kernel 4.9.
4ast [Sun, 11 Dec 2016 02:05:31 +0000 (18:05 -0800)]
Merge pull request #818 from ceeaspb/master
offwaketime: update with get_stackid fixes #437
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
Zi Shen Lim [Thu, 1 Dec 2016 23:06:56 +0000 (15:06 -0800)]
add Quick Start Guide for bcc docker
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.