Rafal Pietruch [Thu, 29 Jun 2017 09:09:35 +0000 (11:09 +0200)]
ARM support added
* fix compilation errors on 32bit systems regarding int128
* add function calling convention for ARM (R0-R3) as defined
in "Procedure Call Standard for the ARM Architecture"
* disable including kernel header files with ARM assembly code
as for arm64 (https://patchwork.kernel.org/patch/7605601/)
* provide BPF syscall number for ARM (386)
as defined in kernel src: linux/arch/arm/tools/syscall.tbl
* create clang driver for armv7l-tizen-linux-gnueabi triple
* fix libbcc python/C wrapper with proper arguments types
* define generic PT_REGS macros for ARM
Change-Id: Ifbd2ea3f18a8851e8b93b6936548b097bbe66ef7
Rafal Pietruch [Thu, 13 Jul 2017 08:43:45 +0000 (10:43 +0200)]
packaging: Add tizen spec
Signed-off-by: Rafał Pietruch <r.pietruch@samsung.com>
[ Added llvm-static-devel build dependency, .gbs.conf, adjusted to current upstream ]
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
Change-Id: Ia63984e954be3e49bfdc407f123afaec82033b65
Brendan Gregg [Mon, 4 Sep 2017 18:31:39 +0000 (11:31 -0700)]
Merge pull request #1337 from pbhole/fix_vlan_learning
examples: fix vlan_learning example
samuelnair [Mon, 4 Sep 2017 16:57:49 +0000 (00:57 +0800)]
nfsslower: trace slow NFS operations
* Initial commit of nfsslower, tracking NFS4_READ, NFS4_WRITE and NFS4_OPEN
* Added in documentation, examples, support for csv and tracing for GETATTR
* Added in man pages, READM mods and example file, to comply with
https://github.com/samuelnair/bcc/blob/master/CONTRIBUTING-SCRIPTS.md
* Changes to address comments from @brendangregg and a small bug regarding
the output header not being printed when tracing all NFS operations
* Added nfsslower to the correct alphabetical postion
* Addressing Sasha's comments. I appreciate the thoroughness of the review
* Added test case for nfsslower and an extra function to check if the NFS kernel
module is loaded
Prashant Bhole [Mon, 4 Sep 2017 00:26:08 +0000 (09:26 +0900)]
examples: fix vlan_learning example
BPF_HASH declaration fixed.
Brendan Gregg [Sun, 3 Sep 2017 19:08:52 +0000 (12:08 -0700)]
stackcount: add -K, -U, -d, -D, and -f (#1335)
* stackcount: add -K and -U
* stackcount: add -D for duration
* stackcount: add -f for folded output
Romain Cledat [Tue, 18 Jul 2017 00:09:13 +0000 (17:09 -0700)]
Increased allowed path name for USDT probes
Also added a warning if the length is exceeded
Brendan Gregg [Mon, 28 Aug 2017 20:14:43 +0000 (13:14 -0700)]
Merge pull request #1324 from mskarbek/zfs_tools_fix
zfs tools fix for zpl_read/zpl_write removal
Marcin Skarbek [Mon, 28 Aug 2017 15:39:50 +0000 (17:39 +0200)]
zfs tools fix for zpl_read/zpl_write removal
Nan Xiao [Mon, 28 Aug 2017 03:44:19 +0000 (11:44 +0800)]
Fix _GNU_SOURCE redefined warning
Teng Qin [Fri, 25 Aug 2017 23:29:16 +0000 (16:29 -0700)]
Fix uninitialized ProcMountNS in USDT Context
Nan Xiao [Thu, 17 Aug 2017 02:56:36 +0000 (10:56 +0800)]
Use correct data type for class Data
Brenden Blanco [Wed, 23 Aug 2017 22:15:32 +0000 (15:15 -0700)]
Update after lookup in map.increment for HASH types
Performing the update before lookup incurs an extra spinlock in the
kernel, which hurts performance. Reorder the code and increment to 1.
The memset is there I believe due to some type mismatch warnings, so I'm
leaving as is rather than doing a direct assign to 1. The resulting code
is optimized away anyway.
Fixes: #1314
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Yonghong Song [Thu, 24 Aug 2017 06:56:56 +0000 (23:56 -0700)]
fix a bug introduced by previous lua-bcc build fix commit
The bug does not show up in my previous test probably because
I did not clean up the build directory and did not have a clean cmake.
In gcc 4.8.5 environment where -no-pie is not supported,
a clean cmake will trigger the issue as subsequent other
cxx compile test will fail due to additional -no-pie flag.
The fix is to reset the CMAKE_REQUIRED_FLAGS to its previous value
after the specific test.
Signed-off-by: Yonghong Song <yhs@fb.com>
Teng Qin [Fri, 25 Aug 2017 22:56:23 +0000 (15:56 -0700)]
Better check for compiler standard support
Brenden Blanco [Thu, 24 Aug 2017 17:59:46 +0000 (10:59 -0700)]
Fix compile errors with ENABLE_USDT=Off
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brenden Blanco [Wed, 23 Aug 2017 01:31:03 +0000 (18:31 -0700)]
Fix for ubuntu elf linker error
Brenden Blanco [Tue, 22 Aug 2017 22:47:12 +0000 (15:47 -0700)]
Add c-library only option
Allow building of JUST the libbpf library and related headers. No clang,
llvm, python, lua, etc. Not even tests :(
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brenden Blanco [Thu, 29 Jun 2017 00:37:06 +0000 (17:37 -0700)]
move api and create dependent option
Move the C++ api files under a new subdirectory.
Use CMAKE_DEPENDENT_OPTION to enforce sdt->cpp_api relationship.
Since linking .a into a .so can cause global symbols to be dropped, add
a helper file to force exported symbols to be retained (link_all.cc).
This problem doesn't exist for building the static cpp examples.
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brenden Blanco [Tue, 27 Jun 2017 21:34:54 +0000 (14:34 -0700)]
Move source file names into cmake variables
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brenden Blanco [Mon, 26 Jun 2017 20:37:34 +0000 (13:37 -0700)]
src/cc: cmake file cleanup and split usdt into subdir
Move two usdt related files to a new subdirectory and link them into the
final product. Introduce a cmake option to disable that feature (turning
it off currently fails to compile).
Move some of the cmake flag computation into a helper cmake file and
include that rather than inlining it.
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brenden Blanco [Fri, 23 Jun 2017 20:39:57 +0000 (13:39 -0700)]
Remove unused shared_table.h
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brendan Gregg [Wed, 23 Aug 2017 22:00:30 +0000 (15:00 -0700)]
funccount: add -d for duration
Yonghong Song [Wed, 23 Aug 2017 20:40:47 +0000 (13:40 -0700)]
fix lua-bcc build issue with cmake try_compile
Certain versions of recent gcc (e.g., gcc 6.3.0 on ubuntu17.04)
has pie enabled by default at linker (collect2) stage.
The compilation flag "-no-pie" is available to negate
this linker option.
Add -no-pie to compilation flag only if it is available.
Earlier gcc compiler may not have this option but it does
not have linker pie on-by-default either.
Tested with ubuntu 17.04 and my local gcc 4.8.5 (not accepting -no-pie).
Signed-off-by: Yonghong Song <yhs@fb.com>
Paul Chaignon [Wed, 23 Aug 2017 05:25:30 +0000 (07:25 +0200)]
Fix segfault on incomplete types
The bcc rewriter segfaults when it encounters an incomplete type
(missing declaration or declaration after use) in a map declaration.
This commit fixes it by first checking the type and returning an
error if it is incomplete.
Paul Chaignon [Tue, 22 Aug 2017 21:00:08 +0000 (23:00 +0200)]
Test case for incomplete types
The bcc rewriter segfaults when it encounters an incomplete type
(missing declaration or declaration after use) in a map declaration.
Brenden Blanco [Wed, 23 Aug 2017 06:20:46 +0000 (23:20 -0700)]
Add /tests/ to CODEOWNERS
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brenden Blanco [Tue, 22 Aug 2017 06:52:30 +0000 (23:52 -0700)]
Add CODEOWNERS file with list of maintainers/reviewers
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Paul Chaignon [Sun, 6 Aug 2017 12:33:20 +0000 (14:33 +0200)]
Trace external pointers from helpers
At this time, a single helper can return a kernel pointer,
bpf_get_current_task.
Brendan Gregg [Wed, 23 Aug 2017 00:36:41 +0000 (17:36 -0700)]
Merge pull request #1301 from albusshin/patch-1
Update obsolete file name bitesize -> bitehist
Brendan Gregg [Tue, 22 Aug 2017 23:53:15 +0000 (16:53 -0700)]
Merge pull request #1305 from NanXiao/format-vfscount
Format code of vfscount.py
Brendan Gregg [Tue, 22 Aug 2017 23:37:38 +0000 (16:37 -0700)]
Merge pull request #1303 from pchaigno/remove-bpf_probe_reads
Remove unnecessary bpf_probe_reads
Gary Lin [Fri, 18 Aug 2017 10:10:43 +0000 (18:10 +0800)]
libbpf: fix typo in bpf_attach_xdp()
Gary Lin [Fri, 18 Aug 2017 09:42:08 +0000 (17:42 +0800)]
Allow the flags to be specified in remove_xdp()
When detaching a generic XDP program to an interface without native XDP
support, remove_xdp() showed the following message:
bpf: nlmsg error Operation not supported
Add the flags parameter to notify the kernel that it's a generic XDP
program.
Nan Xiao [Tue, 22 Aug 2017 01:59:26 +0000 (09:59 +0800)]
Format code of vfscount.py
Mark Drayton [Fri, 18 Aug 2017 17:28:48 +0000 (18:28 +0100)]
bcc-lua: --no-pie, not -no-pie
Some versions of GCC don't accept `-no-pie`. For instance, on a GCC 5 build I
have here:
```
$ gcc -no-pie
gcc: error: unrecognized command line option ‘-no-pie’
gcc: fatal error: no input files
```
5.4 from Xenial will take `-no-pie`, as will versions of 4, 6 and 7 that I
tried. The issue may be related to
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg170818.html but I'm not
certain.
A workaround for this is to use `--no-pie`, which is accepted by all versions
of GCC 4, 5, 6 and 7 that I tried.
Tian Xin [Sat, 19 Aug 2017 00:07:23 +0000 (17:07 -0700)]
Update obsolete file name bitesize -> bitehist
Update tutorial to change the file name.
Pavel Safronov [Thu, 17 Aug 2017 17:41:47 +0000 (20:41 +0300)]
Fixes for debian and ubuntu docker build
* Fixed build for debian and ubuntu
* Bumped debian and ubuntu versions (fix some build-dependency issues)
* Make debian and ubuntu Dockerfiles use the same build script
* Build-dependencies now installing automatically via pbuilder
4ast [Thu, 17 Aug 2017 07:36:31 +0000 (00:36 -0700)]
Merge pull request #1294 from iovisor/yhs_dev
avoid large map memory allocation in userspace
Yonghong Song [Wed, 16 Aug 2017 23:18:22 +0000 (16:18 -0700)]
avoid large map memory allocation in userspace
In bcc, internal BPF_F_TABLE defines a structure to
contain all the table information for later easy
extraction. A global structure will be defined
with this type. Note that this structure will be
allocated by LLVM during compilation.
In the table structure, one of field is:
_leaf_type data[_max_entries]
If the _leaf_type and _max_entries are big,
significant memory will be consumed. A big
_leaf_type size example is for BPF_STACK_TRACE map
with 127*8=1016 bytes. If max_entries is bigger
as well, significant amount of memory will be
consumed by LLVM.
This patch replaces
_leaf_type data[_max_entries]
to
unsigned ing max_entries
The detail of a test example can be found in issue #1291.
For the example in #1291, without this patch, for a
BPF_STACK_TRACE map with 1M entries, the RSS is roughly
3GB (roughly 3KB per entry). With this patch, it is 5.8MB.
Signed-off-by: Yonghong Song <yhs@fb.com>
Brendan Gregg [Wed, 16 Aug 2017 19:20:29 +0000 (12:20 -0700)]
Merge pull request #1293 from iovisor/tools_fixes
Couple minor tools fixes
Gabriel Ganne [Wed, 16 Aug 2017 07:23:09 +0000 (09:23 +0200)]
python - set attach_xdp's default flag value to 0
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
Yonghong Song [Fri, 28 Jul 2017 23:30:35 +0000 (16:30 -0700)]
have uniform uprobe event names for python and C++
This is a followup change for previous commit
0ba15075fc5f
(permit multiple pids attaching to the same probe).
That commit changes the event name for python uprobe API
in order to permit multiple processes attaching to the
same uprobe point. The C++ uprobe event name remains
unchanged and thus a descrepancy.
This patch add changes to C++ side and also make python uretprobe
having the same naming convention.
Originally I experimented to put the common code to generate
event names in libbpf.c. But doing this seems more klunky
than simplicity of C++ and Python. So I stick to the current
design.
No need to add pid to kprobe event names as kprobe bpf invocation
will ignore pid anyway.
Signed-off-by: Yonghong Song <yhs@fb.com>
Brenden Blanco [Wed, 16 Aug 2017 18:29:23 +0000 (11:29 -0700)]
Remove extra S_MAXSTAT array allocation in some tools
Fixes: #1280
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brenden Blanco [Wed, 16 Aug 2017 18:26:14 +0000 (11:26 -0700)]
Omit include of ptrace.h for empty usdt contexts
Fixes: #1280
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brenden Blanco [Fri, 11 Aug 2017 15:00:14 +0000 (08:00 -0700)]
Add clang check for -nopie option
The -no-pie option is not available in clang until 6.0. Per the
documentation, -nopie serves the same purpose as -no-pie (but not
-fno-pie). Hence, use the -nopie option when clang is in use as the CC.
Fixes: #1237
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Paul Chaignon [Sun, 6 Aug 2017 12:20:23 +0000 (14:20 +0200)]
Correct commit id for BPF_FUNC_get_socket_cookie
Iago López Galeiras [Fri, 4 Aug 2017 16:13:05 +0000 (18:13 +0200)]
tools/tcptracer: print ns timestamps with -v
Iago López Galeiras [Fri, 4 Aug 2017 14:57:20 +0000 (16:57 +0200)]
tools/tcptracer: add timestamp option
Similar to other tools from the tcp* family.
Nan Xiao [Wed, 2 Aug 2017 02:04:44 +0000 (10:04 +0800)]
Since LUA_GLOBALSINDEX is obsolete from Lua 5.2, use lua_getglobal function
instead.
Brendan Gregg [Thu, 3 Aug 2017 18:49:27 +0000 (11:49 -0700)]
better state default value handling
Brendan Gregg [Tue, 1 Aug 2017 01:39:30 +0000 (18:39 -0700)]
add --state to offcputime
Jean-Tiare Le Bigot [Sun, 30 Jul 2017 17:19:11 +0000 (19:19 +0200)]
explain that 'args' can be used as 'ctx' in tracepoints
Jean-Tiare Le Bigot [Sun, 30 Jul 2017 17:17:57 +0000 (19:17 +0200)]
make it easier to discover the reference documentation
Benjamin Poirier [Fri, 28 Jul 2017 20:25:14 +0000 (13:25 -0700)]
tcptop: Filter out negative values in receive probe
When tcp_cleanup_rbuf() is called from tcp_recvmsg(), "copied" may be an
error code, especially -EAGAIN for non-blocking receives.
Benjamin Poirier [Thu, 27 Jul 2017 23:07:06 +0000 (16:07 -0700)]
tcptop: Cleanup argument parsing
Paul Chaignon [Sun, 6 Aug 2017 09:15:11 +0000 (11:15 +0200)]
tcpretrans: Remove unnecessary bpf_probe_reads
Paul Chaignon [Sun, 6 Aug 2017 09:14:12 +0000 (11:14 +0200)]
tcpconnlat: Remove unnecessary bpf_probe_reads
Paul Chaignon [Sun, 6 Aug 2017 09:12:26 +0000 (11:12 +0200)]
solisten: Remove unnecessary bpf_probe_reads
The use of a kernel function to cast sk is masking the assignment of
the external pointer to the bcc rewriter and prevents subsequent use
of dereferences.
Toshiaki Makita [Mon, 31 Jul 2017 11:20:55 +0000 (20:20 +0900)]
Use unsigned conversion specifier for nlmsg_pid
nlmsg_pid is __u32, so let's use %u instead of %d.
Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Toshiaki Makita [Mon, 31 Jul 2017 11:20:55 +0000 (20:20 +0900)]
Fix wrong netlink port id check
As per man netlink, nlmsg_pid is not process id and in fact a value
different from process id can be used.
bpf: Wrong pid -
1615084642, expected 24407
This problem can be triggered by using pyroute2 with bcc.
Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Nan Xiao [Mon, 31 Jul 2017 05:02:20 +0000 (13:02 +0800)]
Remove redundant semicolon
Nan Xiao [Sat, 29 Jul 2017 02:47:24 +0000 (10:47 +0800)]
1. Use more safe snprintf instead of sprintf;
2. Modify procfilename buffer length in bcc_procutils_language function.
Ivan Babrou [Fri, 28 Jul 2017 21:57:26 +0000 (14:57 -0700)]
Put libfl-dev into Build-Depends on Debian
On Debian Stretch `libfl-dev` is not installed automatically
if you install `flex`, this takjes care of the issue.
Brenden Blanco [Thu, 27 Jul 2017 15:47:08 +0000 (08:47 -0700)]
Merge pull request #1263 from iovisor/yhs_dev
permit multiple pids attaching to the same probe
Yonghong Song [Sat, 22 Jul 2017 05:13:20 +0000 (22:13 -0700)]
permit multiple pids attaching to the same probe
Currently, if more than one pid-associated USDT attaching to
the same probe, usdt readarg code will be generated twice and
the compiler will complain.
This patch solves issue by preventing code duplication if
a previous context with the same mnt point and exec binary
has generated the code for the same probe. The event name is
also changed to have pid embedded so different pid-associated
uprobe event will have different names.
This patch introduces an internal uprobe event name
discrepency. It is a good idea to have event name
generation in libbpf so that both C++ API and Python API
will have consistent name conventions. This will be
addressed in a subsequent commit as it is largely
a different issue.
Signed-off-by: Yonghong Song <yhs@fb.com>
4ast [Wed, 19 Jul 2017 05:08:48 +0000 (22:08 -0700)]
Merge pull request #1261 from iovisor/yhs_dev
generate proper usdt code to prevent llvm meddling with ctx->#fields
Yonghong Song [Tue, 18 Jul 2017 21:12:10 +0000 (14:12 -0700)]
generate proper usdt code to prevent llvm meddling with ctx->#fields
Qin reported a test case where llvm still messes up with ctx->#fields.
For code like below:
switch(ctx->ip) {
case 0x7fdf2ede9820ULL: *((int64_t *)dest) = *(volatile int64_t *)&ctx->r12; return 0;
case 0x7fdf2edecd9cULL: *((int64_t *)dest) = *(volatile int64_t *)&ctx->bx; return 0;
}
The compiler still generates:
# r1 is the pointer to the ctx
r1 += 24
goto LBB0_4
LBB0_3:
r1 += 40
LBB0_4:
r3 = *(u64 *)(r1 + 0)
The verifier will reject the above code since the last load is not "ctx + field_offset"
format.
The responsible llvm optimization pass is CFGSimplifyPass. Its main implementation
in llvm/lib/Transforms/Utils/SimplifyCFG.cpp. The main routine to do the optimization
is SinkThenElseCodeToEnd. The routine canSinkInstructions is used to determine whether
an insn is a candidate for sinking.
Unfortunately, volatile load/store is not a condition to prevent the optimization.
But inline assembly is a condition which can prevent further optimization.
In this patch, instead of using volatile to annotate ctx->#field access, we do
normal ctx->#field access but put a compiler inline assembly memory barrier
__asm__ __volatile__(\"\": : :\"memory\");
after the field access.
Tested with usdt unit test case, usdt_samples example, a couple of usdt unit tests
developed in the past.
Signed-off-by: Yonghong Song <yhs@fb.com>
Igor Mazur [Tue, 18 Jul 2017 07:06:34 +0000 (10:06 +0300)]
MySQL tracing without USDT (#1239)
Support tracing MySQL queries even when MySQL is built
without USDT support, by using uprobes on internal functions
responsible for command (query) dispatching.
4ast [Tue, 18 Jul 2017 07:04:45 +0000 (00:04 -0700)]
Merge pull request #1259 from iovisor/yhs_dev
Fix a clang memory leak
Yonghong Song [Tue, 18 Jul 2017 06:20:17 +0000 (23:20 -0700)]
Fix a clang memory leak
In clang frontend actions, several compiler invocations are called
for rewriter and transforming source code to IR. During the invocation
to transform source code to IR, CodeGenOpts.DisableFree is used
to control whether the top target machine structure should be
freed or not for a particular clang invocation,
and its default value is TRUE.
See clang:lib/CodeGen/BackendUtil.cpp:
~EmitAssemblyHelper() {
if (CodeGenOpts.DisableFree)
BuryPointer(std::move(TM));
}
So by default, the memory held by TM will not freed, even if
BPF module itself is freed. This is even more problematic
when continuous building/loading/unloading happens for long
live service.
This patch explicitly sets CodeGenOpts.DisableFree to FALSE
so memory can be properly freed. I did a simple experiment
to compile/load/unload an empty BPF program and the saving
is roughly 0.5MB.
Signed-off-by: Yonghong Song <yhs@fb.com>
Brenden Blanco [Mon, 17 Jul 2017 22:55:57 +0000 (15:55 -0700)]
Merge pull request #1258 from shodoco/tcpbpf
Update bpf.h and virtual_bpf.h to 4.13-rc1
Huapeng Zhou [Mon, 17 Jul 2017 22:06:14 +0000 (15:06 -0700)]
Update bpf.h and virtual_bpf.h to 4.13-rc1
Geneviève Bastien [Fri, 14 Jul 2017 20:04:12 +0000 (16:04 -0400)]
tools: Add some documentation to lib/ucalls.py output (#1257)
Signed-off-by: Geneviève Bastien <gbastien@versatic.net>
vkhromov [Fri, 14 Jul 2017 19:42:29 +0000 (20:42 +0100)]
Fix trace.py for library filenames containing colons (#1252)
`trace.py` parses a probe using the colon as a separator. As a result, it
fails to create a uprobe for binary/library with a filename containing colons.
This diff fixes that issue with `trace.py`. It requires a kernel with
https://lkml.org/lkml/2017/1/13/585 merged to work properly, otherwise
`trace.py` still fails for create uprobes.
Romain [Tue, 11 Jul 2017 18:15:09 +0000 (11:15 -0700)]
cc: Add open_perf_event to the C/C++ API (#1232)
Rinat Ibragimov [Tue, 11 Jul 2017 18:14:08 +0000 (21:14 +0300)]
memleak: expand allocator coverage (#1214)
* memleak: handle libc allocation functions other than malloc
* memleak: use tracepoints to track kernel allocations
* memleak: add combined-only mode
With large number of outstanding allocations, amount of data passed from
kernel becomes large, which slows everything down.
This patch calculates allocation statistics inside kernel, allowing user-
space part to pull combined statistics data only, thus significantly
reducing amount of passed data.
* memleak: increase hashtable capacities
There are a lot of allocations happen in kernel. Default values are not
enough to keep up.
* test: add a test for the memleak tool
bveldhoen [Tue, 11 Jul 2017 18:09:35 +0000 (20:09 +0200)]
Add USDT sample (#1229)
This sample contains:
- A library with an operation that uses usdt probes.
- A console application that calls the operation.
- Scripts to trace the latency of the operation.
- Corresponding cmake files.
Quentin Monnet [Fri, 7 Jul 2017 11:39:40 +0000 (13:39 +0200)]
docs: update features list
And fix a typo: direct_action -> direct-action
Colin Ian King [Thu, 6 Jul 2017 12:58:17 +0000 (13:58 +0100)]
libbpf: fix build warning on setns (#1246)
The macro _GNU_SOURCE should be defined to pick up the function
declaration for setns. Fixes build warning:
"src/cc/libbpf.c:482:7: warning: implicit declaration of
function 'setns' [-Wimplicit-function-declaration]
if (setns(target_fd, CLONE_NEWNS)) {"
Signed-off-by: Colin Ian King <colin.king@canonical.com>
4ast [Sat, 1 Jul 2017 19:59:49 +0000 (12:59 -0700)]
Merge pull request #1237 from iovisor/yhs_dev
Fix bcc.lua build issue in Ubuntu 17.04
Vicent Marti [Tue, 27 Jun 2017 17:06:46 +0000 (19:06 +0200)]
usdt: Use ProcMountNS
Vicent Marti [Tue, 27 Jun 2017 13:22:38 +0000 (15:22 +0200)]
proc: Enhance bcc_mapping_is_file_backed
Cleanup the `strncmp` code and add a few more ignored map names
Yonghong Song [Fri, 30 Jun 2017 05:46:29 +0000 (22:46 -0700)]
Fix bcc.lua build issue in Ubuntu 17.04
In fc25 box, gcc6.3.1 is configured with pie default off.
Here, pie stands for position independent execution.
In ubuntu 17.04, gcc6.3.0, however, is configured with
pie default on. The gcc driver automatically adds -pie
to the linker options.
Since bcc.lua build needs pie off, previously, -fno-pie
is passed to the compiler. -fno-pie is a gcc option
impacting the code generation and it didn't
negate the -pie option in the linker. The correct way
seems to use gcc linker option -no-pie which can
successfully cancel the default -pie in the linker.
Signed-off-by: Yonghong Song <yhs@fb.com>
Nan Xiao [Fri, 30 Jun 2017 01:52:47 +0000 (09:52 +0800)]
Update LINKS.md
Romain [Thu, 29 Jun 2017 19:00:31 +0000 (12:00 -0700)]
Added helpers for BPF_PERCPU_ARRAY (#1230)
Taekho Nam [Thu, 29 Jun 2017 14:20:47 +0000 (23:20 +0900)]
Add an option to strip leading zeros from histograms (#1226)
Brenden Blanco [Fri, 23 Jun 2017 08:08:07 +0000 (01:08 -0700)]
test: python3 fix for test_uprobes (#1228)
Treat strings as bytes. This is independent of the larger refactor
(#1139) from which it is cherry-picked)
Signed-off-by: Brenden Blanco <bblanco@gmail.com>
Brendan Gregg [Thu, 22 Jun 2017 18:58:21 +0000 (11:58 -0700)]
gethostlatency was rounding to full ms
Yonghong Song [Mon, 12 Jun 2017 01:37:25 +0000 (18:37 -0700)]
Change clang frontend optimization level from 0 to 2
The issue is caused by the following clang change on 5.0:
https://reviews.llvm.org/D28404
Basically, at -O0, unless always inlining is specified, a
function will be marked as optnone and noinline.
This causes two kinds of issues: (1). optnone will generate
suboptimal code with heavy stack use and this high likely can
cause verifier failure; and (2). even if user mark all his/her
defined functions in bpf program as always inlining, some
functions in linux header files are not marked as always inline
and hence will be marked as noinline instead, ultimately
causing llvm complaining about global function reference.
This patch bumps the clang optimization level to -O2.
This should work with older versions of llvm as well.
Signed-off-by: Yonghong Song <yhs@fb.com>
Brendan Gregg [Wed, 14 Jun 2017 16:28:13 +0000 (09:28 -0700)]
Merge pull request #1224 from NavinF/patch-1
Update the installation instructions for Fedora
Navin Francis [Wed, 14 Jun 2017 13:15:07 +0000 (06:15 -0700)]
Update the installation instructions for Fedora
Yonghong Song [Fri, 2 Jun 2017 07:41:44 +0000 (00:41 -0700)]
Add probe result verification for usdt unit test
Signed-off-by: Yonghong Song <yhs@fb.com>
Gary Ching-Pang Lin [Mon, 12 Jun 2017 10:22:10 +0000 (18:22 +0800)]
Add installation instructions for openSUSE (#1222)
Carlos Neira [Fri, 9 Jun 2017 19:07:37 +0000 (15:07 -0400)]
fix cc: error: unrecognized command line option -no-pie
cnb@ubuntu-14:~/iovisor/bcc/build$ make
[ 6%] Built target clang_frontend
[ 9%] Built target bpf-static
[ 16%] Built target bcc-loader-static
[ 30%] Built target b_frontend
[ 47%] Built target bcc-static
[ 48%] Built target CPUDistribution
[ 50%] Built target FollyRequestContextSwitch
[ 51%] Built target HelloWorld
[ 52%] Built target LLCStat
[ 54%] Built target RandomRead
[ 55%] Built target RecordMySQLQuery
[ 56%] Built target TCPSendStack
[ 80%] Built target bcc-shared
[ 83%] Built target bpf-shared
[ 84%] Built target bcc_py
Linking C executable bcc-lua
cc: error: unrecognized command line option â-no-pieâ
make[2]: *** [src/lua/bcc-lua] Error 1
make[1]: *** [src/lua/CMakeFiles/bcc-lua.dir/all] Error
option is called -fno-pie
Ryan Tomayko [Mon, 5 Jun 2017 17:43:46 +0000 (17:43 +0000)]
Fix ld error due to debian/ubuntu -pie default
Fixes #782. Solution taken verbatim from @jepio here:
https://github.com/iovisor/bcc/issues/782#issuecomment-
259075010
I ran into the same issue attempting to compile from source on
a fresh Ubuntu 16.10/Yakkety host:
Linking C executable bcc-lua
/usr/bin/ld: libluajit-5.1.a(ljamalg.o): relocation R_X86_64_32S
against `.rodata' can not be used when making a shared object;
recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
Build succeeded after patch was applied.
Yonghong Song [Tue, 6 Jun 2017 00:55:24 +0000 (17:55 -0700)]
fix incorrect code generation in usdt
o This is caused by my ignorant error in previous usdt change.
Obviously, I need to store into pointer address in order to
propagate value back to caller.
o Thanks Tetsuo Handa pointing this out.
Signed-off-by: Yonghong Song <yhs@fb.com>
Evan Dandrea [Thu, 27 Apr 2017 15:20:39 +0000 (11:20 -0400)]
Add missing funcslower from the snap.
Evan Dandrea [Thu, 27 Apr 2017 15:16:01 +0000 (11:16 -0400)]
Add aliases for all commands in the snap (e.g. bcc.biotop -> biotop)
Evan Dandrea [Mon, 8 May 2017 13:04:00 +0000 (08:04 -0500)]
Require a more recent, auto-updating version of snapd for alises.