Commit
c31e9d6c80f70ff39dff14a7ab3ebec07bec0c7f
by yonghong-songAdjust the order of linux kernel header include paths
The current order of include paths could cause the following error:
In file included from /virtual/main.c:3: In file included from include/linux/sched.h:13: In file included from include/linux/pid.h:4: In file included from include/linux/rculist.h:10: In file included from include/linux/rcupdate.h:38: In file included from include/linux/spinlock.h:50: In file included from include/linux/preempt.h:80: In file included from /lib/modules/4.12.14-197.45-default/build/arch/s390/include/generated/asm/preempt.h:1: include/asm-generic/preempt.h:10:42: error: no member named 'preempt_count' in 'struct thread_info' return READ_ONCE(current_thread_info()->preempt_count); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ include/linux/compiler.h:349:34: note: expanded from macro 'READ_ONCE' ~~~~~~~~~~~~^~~~~ include/linux/compiler.h:342:17: note: expanded from macro '__READ_ONCE' union { typeof(x) __val; char __c[1]; } __u; \ ... 7 errors generated.
It's supposed to load "asm/preempt.h" from "source/"(*) but accidentally loaded the one from "build/", so the error showed. (x86_64 didn't suffer this error because it didn't install the extra "asm/preempt.h" to "build/".)
For the distros, e.g. SUSE/openSUSE and debian, with separate "build/" and "source/", all those "generated/" paths only exist in "build/". To avoid the potential compilation issue, this commit adjusts the include order for those with split headers to align the include order from kernel top Makefile.
(*) /lib/modules/4.12.14-197.45-default/source/arch/s390/include/
Signed-off-by: Gary Lin <glin@suse.com> (commit: c31e9d6) |
| src/cc/frontends/clang/kbuild_helper.cc (diff) |
|
| libbpf-tools/tcpconnect.bpf.c (diff) |
| libbpf-tools/bin/bpftool (diff) |
Commit
ba0bacf1714c37e4e99dbdef5559039c28aa7aef
by yonghong-songAdd return value check and handling for xattr loading
libbpf_find_vmlinux_btf_id may return error code for different reasons. We should check and report the error we have just got, rather than let it slip down the path and give an ambiguous error later.
Signed-off-by: He Zhe <zhe.he@windriver.com> (commit: ba0bacf) |
| src/cc/libbpf.c (diff) |
Commit
6889afe0858b38b93f2a2da3ca538343d05f5930
by yonghong-songtools/opensnoop: Snoop all open related syscall stubs
kernel v5.6 introduces fddb5d430ad9 ("open: introduce openat2(2) syscall"). Even though do_sys_open still exists, it might be optimized off final binary depending on compilers. So we can't catch do_sys_open in some cases.
This patch uses ksymname to try to get entries of open, openat and openat2, and changes the definitions of the trace functions to snoop them all. This works for both kprobe and kfunc.
Credit to Yonghong Song for better code organization.
Signed-off-by: He Zhe <zhe.he@windriver.com> (commit: 6889afe) |
| tools/opensnoop.py (diff) |
|
| man/man8/tcpconnect.8 (diff) |
|
| examples/tracing/hello_perf_output_using_ns.py |
| docs/reference_guide.md (diff) |
|
| libbpf-tools/biopattern.h |
| libbpf-tools/.gitignore (diff) |
| libbpf-tools/biopattern.bpf.c |
| libbpf-tools/Makefile (diff) |
| libbpf-tools/biopattern.c |
|
| libbpf-tools/.gitignore (diff) |
| libbpf-tools/tcpconnlat.h |
| libbpf-tools/Makefile (diff) |
| libbpf-tools/tcpconnlat.c |
| libbpf-tools/tcpconnlat.bpf.c |
|
| src/cc/export/helpers.h (diff) |
| src/cc/libbpf (diff) |
| introspection/bps.c (diff) |
| src/cc/compat/linux/virtual_bpf.h (diff) |
|
| libbpf-tools/biosnoop.bpf.c |
| libbpf-tools/biosnoop.c |
| libbpf-tools/.gitignore (diff) |
| libbpf-tools/biosnoop.h |
| libbpf-tools/Makefile (diff) |
|
| libbpf-tools/tcpconnect.c (diff) |
| libbpf-tools/tcpconnect.bpf.c (diff) |
| libbpf-tools/maps.bpf.h (diff) |
|
| tools/trace.py (diff) |
|
| man/man8/trace.8 (diff) |
| tools/trace_example.txt (diff) |
|
| tools/trace_example.txt (diff) |
|
| src/cc/compat/linux/virtual_bpf.h (diff) |
| src/cc/libbpf (diff) |
|
| src/cc/CMakeLists.txt (diff) |
|
| tools/fileslower.py (diff) |
Commit
5c272220f1cf8a3bb8fd6814c963b3f9b271fe3a
by yonghong-songlibbpibbpf-tools: fix tcpconnect types usage
The __int128 is not defined for 32-bit platforms, see [1], so replace it by a portable array of __u8.
The usage of this type came from the original tcpconnect.py, and __int128 is still used in most (if not all) original BCC tools to store IPv6 addresses.
[1] https://github.com/iovisor/bcc/issues/3044
Signed-off-by: Anton Protopopov <a.s.protopopov@gmail.com> (commit: 5c27222) |
| libbpf-tools/tcpconnect.h (diff) |
| libbpf-tools/tcpconnect.c (diff) |
|
| libbpf-tools/.gitignore (diff) |
| libbpf-tools/readahead.bpf.c |
| libbpf-tools/readahead.c |
| libbpf-tools/Makefile (diff) |
| libbpf-tools/readahead.h |
|
| libbpf-tools/tcpconnlat.h (diff) |
| libbpf-tools/tcpconnlat.c (diff) |
|
| docs/reference_guide.md (diff) |
Commit
49beed88ee27c8f86e50ac29064664671757d930
by yonghong-songForbid trampolines for archs other than x86_64
The trampoline support check in bcc does not work properly, so the feature is detected even on architectures that do not support it - all archs other than x86_64.
We are checking for bpf_trampoline_link_prog to exist in kernel, which works fine on x86_64 to check if the feature is supported, but it's global function, so it exists also in other archs even when the feature is not supported so it returns True also on other archs.
Adding explicit x86_64 check to support_kfunc function.
Signed-off-by: Jiri Olsa <jolsa@kernel.org> (commit: 49beed8) |
| src/python/bcc/__init__.py (diff) |
|
| docs/kernel-versions.md (diff) |
Commit
f4e65ac41bec1613c7cb54270f09d16411aaf89c
by noreplytools/funccount: support funccount on specified CPU (#3059)
A typical case of this feature: count timer setting on a x86 server for each CPU: for i in `seq 0 39`; do ./funccount.py -i 1 lapic_next_deadline -d 5 -c $i; done
Then we can know the timer setting is balanced of not and do some futher work.
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> (commit: f4e65ac) |
| man/man8/funccount.8 (diff) |
| tools/funccount_example.txt (diff) |
| tools/funccount.py (diff) |
|
| src/python/bcc/__init__.py (diff) |
|
| libbpf-tools/biostacks.bpf.c |
| libbpf-tools/biostacks.c |
| libbpf-tools/trace_helpers.c (diff) |
| libbpf-tools/Makefile (diff) |
| libbpf-tools/biostacks.h |
| libbpf-tools/trace_helpers.h (diff) |
| libbpf-tools/.gitignore (diff) |
|
| src/cc/libbpf (diff) |
|
| debian/changelog (diff) |
Commit
43910c44121999592833cf20e8334997f2b6c470
by yonghong-songsync with libbpf repo
sync with latest libbpf repo.
Strut definition for btf_ext_header is defined in libbpf/src/btf.h previously and used by bcc. Now, the struct is moved to libbpf/src/libbpf_internal.h and not available to bcc. We do not want to include libbpf/src/libbpf_internal.h as it is really libbpf internal. Let us define bcc version of btf_ext_header with struct name bcc_btf_ext_header. The new name is to avoid conflict when compiling with old libbpf package.
Signed-off-by: Yonghong Song <yhs@fb.com> (commit: 43910c4) |
| src/cc/bcc_btf.cc (diff) |
| src/cc/compat/linux/virtual_bpf.h (diff) |
| src/cc/bcc_btf.h (diff) |
| src/cc/libbpf (diff) |
Commit
60de17161fe7f44b534a8da343edbad2427220e3
by yonghong-songfix the exits abnormal due to trace buffer
Some data may be left in the trace buffer, and the format cannot be parsed by trace_fields(), which whill cause an abnormality in the system.
Re-running the program cannot solved, only restart kernel.
Call trace: File "/usr/lib/python2.7/site-packages/kwaibcc/__init__.py", line 1273, in trace_fields pid, cpu, flags, ts = line[:ts_end].split() ValueError: need more than 2 values to unpack
Prevent problems with exception handling.
Signed-off-by: Chen Guanqiao <chen.chenchacha@foxmail.com> (commit: 60de171) |
| src/python/bcc/__init__.py (diff) |
|
| docs/tutorial_bcc_python_developer.md (diff) |
|
| tools/capable.py (diff) |
|
| examples/networking/vlan_filter/data-plane-tracing.c (diff) |
| examples/networking/http_filter/http-parse-simple.c (diff) |
| examples/networking/http_filter/http-parse-complete.c (diff) |
|
| tests/cc/test_usdt_args.cc (diff) |
|
| INSTALL.md (diff) |
|
| tools/memleak.py (diff) |
Commit
e42ac4176998a6dcf0dbf3b6befeaad0a69cb98a
by yonghong-songtools/tcprtt: add tcprtt to trace the RTT of TCP
This program traces TCP RTT(round-trip time) to analyze the quality of network, then help us to distinguish the network latency trouble is from user process or physical network.
Currently, support source address/port and destination address/port as tcp filter.
Suggested-by: Edward Wu <edwardwu@realtek.com> Suggested-by: Martin KaFai Lau <kafai@fb.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> (commit: e42ac41) |
| tools/tcprtt.py |
| man/man8/tcprtt.8 |
| tools/tcprtt_example.txt |
Commit
ba73657cb8c4dab83dfb89eed4a8b3866255569a
by noreplyNetqtop 3037 (#3048)
The tool netqtop uses tracepoints NET_DEV_START_XMIT and NETIF_RECEIVE_SKB to intercept every transmitted and received packet, as a result, considerable performance descent is expected. Details for some performance evaluation can be found at https://github.com/iovisor/bcc/pull/3048 (commit: ba73657) |
| README.md (diff) |
| tools/netqtop.py |
| tools/netqtop_example.txt |
| tools/netqtop.c |
| man/man8/netqtop.8 |
|
| README.md (diff) |
| man/man8/threadsnoop.8 |
| tools/threadsnoop_example.txt |
| tools/threadsnoop.py |
|
| README.md (diff) |
| man/man8/tcpsynbl.8 |
| tools/tcpsynbl.py |
| tools/tcpsynbl_example.txt |
|
| tools/swapin_example.py |
| README.md (diff) |
| man/man8/swapin.8 |
| tools/swapin.py |
|
| libbpf-tools/hardirqs.h |
| libbpf-tools/hardirqs.c |
| libbpf-tools/Makefile (diff) |
| libbpf-tools/hardirqs.bpf.c |
| libbpf-tools/.gitignore (diff) |
|
| libbpf-tools/.gitignore (diff) |
| libbpf-tools/softirqs.h |
| libbpf-tools/softirqs.bpf.c |
| libbpf-tools/softirqs.c |
| libbpf-tools/Makefile (diff) |
|
| libbpf-tools/runqlat.bpf.c |
| libbpf-tools/runqlat.c |
| libbpf-tools/.gitignore (diff) |
| libbpf-tools/trace_helpers.c (diff) |
| libbpf-tools/runqlat.h |
| libbpf-tools/trace_helpers.h (diff) |
| libbpf-tools/Makefile (diff) |
|
| libbpf-tools/.gitignore (diff) |
| libbpf-tools/runqlen.h |
| libbpf-tools/trace_helpers.c (diff) |
| libbpf-tools/runqlen.c |
| libbpf-tools/Makefile (diff) |
| libbpf-tools/trace_helpers.h (diff) |
| libbpf-tools/runqlen.bpf.c |
|
| libbpf-tools/.gitignore (diff) |
| libbpf-tools/numamove.c |
| libbpf-tools/Makefile (diff) |
| libbpf-tools/numamove.bpf.c |
Commit
39a2a8f02cc3871ab375b005a00e296aa668d9ec
by yonghong-songAdd uretprobe example for indirect function
Already there is strlen_hist.py as a nice example of uretprobe. But it can not work correctly if strlen is indirect function(IFUNC). So strlen_hist_ifunc.py is introduced to show how to use uprobe/uretprobe for indirect functions. (commit: 39a2a8f) |
| examples/tracing/strlen_hist_ifunc.py |
|
| tools/tcpstates.py (diff) |
|
| README.md (diff) |
| man/man8/readahead.8 |
| tools/readahead_example.txt |
| tools/readahead.py |
Commit
4cbcd9afa83226405abd773212ed423c5d06fd26
by noreplytcprtt: add --byladdr/--byraddr (#3106)
On a server side, a server listens a local port and accepts lots of connections. To seperate histogram into views by each remote address, so add --byraddr to support this.
Suggested-by: Brendan Gregg <brendan.d.gregg@gmail.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> (commit: 4cbcd9a) |
| README.md (diff) |
| tools/tcprtt.py (diff) |
| man/man8/tcprtt.8 (diff) |
| tools/tcprtt_example.txt (diff) |
|
| tools/funclatency.py (diff) |
| tools/funclatency_example.txt (diff) |
Commit
788303ead582d5fc70066443b2a94f5c482b53d9
by yonghong-songslabratetop: Add memcg_cache_params struct def
struct memcg_cache_params moved from include/linux/slab.h to mm/slab.h in kernel v5.4, causing a compiler error when including slub_def.h or slab_def.h in slabratetop's bpf program.
It has been removed completely from kernel version 5.9.
Add an empty memcg_cache_params struct in slabratetop's bpf program so it will compile with kernel versions 5.4 to 5.8. (commit: 788303e) |
| tools/slabratetop.py (diff) |
Commit
7e3f0c08c7c28757711c0a173b5bd7d9a31cf7ee
by yonghong-songFix v6 source (remote) and dest (local) address
For v6, tcpdrop.py would report the source and destination addresses incorrectly - tcp_drop() covers the input path, where the source of the received packet is the daddr stored in the socket, while the destination of the received packet is the local address. This commit swaps them to be correct and leaves a comment since it is not obvious. (commit: 7e3f0c0) |
| tools/tcpdrop.py (diff) |
Commit
21b810a3b297411452a41336d239002687e5607f
by yonghong-songtools: tcptracer: fix alignement in tcp_ipv6_event_t
On IPv6, tcptracer ports always appears as zeros:
Tracing TCP established connections. Ctrl-C to end. T PID COMM IP SADDR DADDR SPORT DPORT X 7055 nc 4 127.0.0.1 127.0.0.1 49476 9999 C 7074 nc 4 127.0.0.1 127.0.0.1 49478 9999 X 7074 nc 4 127.0.0.1 127.0.0.1 49478 9999 C 7085 nc 6 [::] [0:0:0:1::] 0 0 X 7085 nc 6 [::] [0:0:0:1::] 0 0 C 7086 nc 6 [::] [0:0:0:1::] 0 0
This seems related to alignment issue wrt to the __int128 type in tcp_ipv6_event_t structure. Moving the u8 field ip to the end of the structure fixes the issue.
Fixes #2781 (commit: 21b810a) |
| tools/tcptracer.py (diff) |
|
| tools/biolatency.py (diff) |
|
| libbpf-tools/drsnoop.c (diff) |
| libbpf-tools/biolatency.bpf.c (diff) |
| libbpf-tools/xfsslower.h (diff) |
| libbpf-tools/biopattern.h (diff) |
| libbpf-tools/drsnoop.h (diff) |
| libbpf-tools/readahead.bpf.c (diff) |
| libbpf-tools/tcpconnlat.c (diff) |
| libbpf-tools/numamove.c (diff) |
| libbpf-tools/trace_helpers.c (diff) |
| libbpf-tools/biolatency.h (diff) |
| libbpf-tools/runqslower.bpf.c (diff) |
| libbpf-tools/vfsstat.bpf.c (diff) |
| libbpf-tools/biopattern.c (diff) |
| libbpf-tools/opensnoop.bpf.c (diff) |
| libbpf-tools/cpudist.c (diff) |
| libbpf-tools/tcpconnect.bpf.c (diff) |
| libbpf-tools/xfsslower.c (diff) |
| libbpf-tools/biopattern.bpf.c (diff) |
| libbpf-tools/biostacks.c (diff) |
| libbpf-tools/xfsslower.bpf.c (diff) |
| libbpf-tools/bitesize.bpf.c (diff) |
| libbpf-tools/biostacks.bpf.c (diff) |
| libbpf-tools/tcpconnlat.bpf.c (diff) |
| libbpf-tools/drsnoop_example.txt (diff) |
| libbpf-tools/tcpconnlat.h (diff) |
| libbpf-tools/biolatency.c (diff) |
| libbpf-tools/filelife.bpf.c (diff) |
| libbpf-tools/filelife.h (diff) |
| libbpf-tools/cpudist.bpf.c (diff) |
| libbpf-tools/execsnoop.bpf.c (diff) |
| libbpf-tools/readahead.h (diff) |
| libbpf-tools/readahead.c (diff) |
| libbpf-tools/biosnoop.bpf.c (diff) |
| libbpf-tools/biosnoop.c (diff) |
| libbpf-tools/filelife.c (diff) |
| libbpf-tools/bitesize.h (diff) |
| libbpf-tools/bitesize.c (diff) |
| libbpf-tools/drsnoop.bpf.c (diff) |
| libbpf-tools/biosnoop.h (diff) |
| libbpf-tools/biostacks.h (diff) |
|
| tools/biolatency.py (diff) |
|
| docs/kernel-versions.md (diff) |
| src/cc/compat/linux/virtual_bpf.h (diff) |
| src/cc/export/helpers.h (diff) |
| src/cc/libbpf (diff) |
| introspection/bps.c (diff) |
| src/cc/libbpf.c (diff) |
Commit
5fe35766ac0e2860c7e6c1694a2338365e9497a6
by yonghong-songadd C++ bpf_iter support
bpf iterator is introduced in linux kernel 5.8. https://lore.kernel.org/bpf/20200509175859.2474608-1-yhs@fb.com/ In 5.8, iterator support for task, task_file, bpf_map, netlink_sock and ipv6_route. In 5.9, tcp, udp and hash/array/sk_local_storage map iterators are implemented.
This patch added necessary interface to support bpf_iter in bcc. A few C++ APIs are added to bcc. Two bpf_iter examples, task and sk_local_storage_map, are added to illustrate how bpf iterator can be implemented. Python interface can be added later if there is a need.
Signed-off-by: Yonghong Song <yhs@fb.com> (commit: 5fe3576) |
| src/cc/libbpf.h (diff) |
| docs/reference_guide.md (diff) |
| src/cc/export/helpers.h (diff) |
| src/cc/libbpf.c (diff) |
| examples/cpp/SkLocalStorageIterator.cc |
| examples/cpp/CMakeLists.txt (diff) |
| examples/cpp/TaskIterator.cc |
|
| docs/reference_guide.md (diff) |
|
| tools/bindsnoop.py (diff) |
| tools/tcpconnect.py (diff) |
|
| tools/sslsniff.py (diff) |
Commit
6ce68b940bd520ee827b1ff089f3baa2bb30f93b
by yonghong-songUpdate installation instructions for Arch Linux
The bcc packages were recently moved from the AUR to the standard Arch repos, so the installation instructions for Arch should be updated to reflect that.
Additionally, the Arch "linux-lts" package was upgraded to 4.4.7 in April 2016, so it is safe to assume that any Arch installations that are still in use have been upgraded by this point. Therefore, the note about upgrading to kernel 4.3.1 is removed. (commit: 6ce68b9) |
| INSTALL.md (diff) |
Commit
4354c9ce33496df82c8ffd30497141daae28afaa
by yonghong-songset larger range to get probes evnet for test_usdt2.py
I test test_usdt2.py on aarch64 with kernel-5.9-rc5, gcc-9.2.1 and glibc2.32. with the current range of 3, always get failure: ====================================================================== FAIL: test_attach1 (__main__.TestUDST) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_usdt2.py", line 170, in test_attach1 self.assertTrue(self.evt_st_6 == 1) AssertionError: False is not true
---------------------------------------------------------------------- Ran 1 test in 1.068s
FAILED (failures=1)
Signed-off-by: Chunmei Xu <xuchunmei@linux.alibaba.com> (commit: 4354c9c) |
| tests/python/test_usdt2.py (diff) |
|
| INSTALL.md (diff) |
|
| libbpf-tools/runqlen.bpf.c (diff) |
| libbpf-tools/softirqs.bpf.c (diff) |
|
| libbpf-tools/llcstat.bpf.c |
| libbpf-tools/llcstat.c |
| libbpf-tools/llcstat.h |
| libbpf-tools/.gitignore (diff) |
| libbpf-tools/Makefile (diff) |
|
| tools/dirtop.py (diff) |
Commit
6ba4dc1fb110b1db4a3ba187fa60a152f64c413f
by yonghong-songfix python3 compatible issue for netqtop and tcprtt tools
Otherwise, we have: ... File "bcc/tools/netqtop.py", line 54 print(hd.center(COL_WIDTH)), ^ TabError: inconsistent use of tabs and spaces in indentation ...
File "bcc/tools/tcprtt.py", line 117, in <module> bpf_text = bpf_text.replace(b'LPORTFILTER', b'') TypeError: replace() argument 1 must be str, not bytes ...
Signed-off-by: Yonghong Song <yhs@fb.com> (commit: 6ba4dc1) |
| tools/tcprtt.py (diff) |
| tools/netqtop.py (diff) |
|
| tools/netqtop.py (diff) |
Commit
50f2009c7521e7d245372839cdb6b9cd6924202b
by Daniel Xuuprobe: Add ref_cnt_offset arg to bpf_attach_uprobe
This argument allows callers to tell the kernel to manage USDT semaphore counts. It's better than fiddling with the counts in userspace b/c if the userspace program crashes then the semaphore count does not get decremented.
It's also better b/c the kernel can activate the semaphore for all processes that have the target mapped into memory. Currently with bcc, you have to provide the pid of each process you want to activate a semaphore for and then bcc will go poke /proc/pid/mem at the right offset. (commit: 50f2009) |
| src/cc/libbpf.h (diff) |
| src/cc/api/BPF.h (diff) |
| src/cc/api/BPF.cc (diff) |
| src/cc/libbpf.c (diff) |
Commit
3f0c5f08a57d554640147ad526e0656def0ee251
by Daniel Xuusdt: Calculate and suppply semaphore_offset values in APIs
`semaphore_offset` is the offset from the start of the file the usdt semaphore can be found. This is different than the already exiting `semaphore` value which is the virtual address the usdt semaphore can be found at (after load).
The reason we need to calculate and export this `semaphore_offset` value is b/c the kernel's uprobe refcount API requires the offset and not the vaddr. (commit: 3f0c5f0) |
| src/cc/usdt.h (diff) |
| src/cc/bcc_usdt.h (diff) |
| src/cc/usdt/usdt.cc (diff) |
| src/cc/bcc_elf.c (diff) |
| src/cc/bcc_elf.h (diff) |
|
| src/cc/api/BPF.cc (diff) |
|
| tests/python/test_usdt.py (diff) |
| tests/python/include/folly/tracing/StaticTracepoint-ELFx86.h |
| tests/cc/CMakeLists.txt (diff) |
| tests/python/test_usdt3.py (diff) |
| tests/cc/usdt_test_lib.cc |
| tests/python/include/folly/tracing/StaticTracepoint-ELF.h |
| tests/cc/usdt_test_lib.c |
| tests/python/include/folly/tracing/StaticTracepoint.h (diff) |
| tests/python/test_usdt2.py (diff) |
|
| tests/cc/test_usdt_probes.cc (diff) |
Commit
d4aecc6555688911a8b950d99c430e96ef369576
by yonghong-songRefactor docker image publishing
This adds support to push docker images to quay.io, like other projects in the iovisor org.
It separates docker image builds into a separate github workflow, and refactors the package building process slightly, to be generic, in order to create builds for both ubuntu 16.04 and ubuntu 18.04.
This provides a means to distribute intermediate apt packages between releases, and also enables uploading these as CI artifacts.
As recent releases have not annotated their tags, it drops the requirement for tags to be annotated in selecting the version to use. (commit: d4aecc6) |
| scripts/docker/auth.sh |
| scripts/git-tag.sh (diff) |
| .github/workflows/bcc-test.yml (diff) |
| Dockerfile.ubuntu (diff) |
| scripts/docker/build.sh |
| .gitignore (diff) |
| scripts/docker/push.sh |
| scripts/build-deb.sh (diff) |
| .github/workflows/publish.yml |
|
| .github/workflows/publish.yml (diff) |
| debian/control (diff) |
|
| .github/workflows/publish.yml (diff) |
|
| debian/control (diff) |
|
| scripts/docker/build.sh (diff) |
Commit
48946d2f31afbfb7b4bc7c62a9d3d6f1d2ffc330
by yonghong-songpython: import ABCs from collections.abc
Importing Abstract Base Classes (ABCs) from the collections module is deprecated since Python 3.3, it emits a warning since Python 3.8, and it will stop working in Python 3.10.
Try importing MutableMapping from collections.abc (the preferred way since Python 3.3) and, in case of error (Python < 3.3) fall back to importing it from collections. (commit: 48946d2) |
| src/python/bcc/table.py (diff) |
|
| tools/tcpconnect_example.txt (diff) |
| INSTALL.md (diff) |
| scripts/bpf_demo.ks.erb (diff) |
| Dockerfile.tests (diff) |
| man/man8/tcpconnect.8 (diff) |
| tools/tcpconnect.py (diff) |
| scripts/build-rpm.sh (diff) |
| Dockerfile.ubuntu (diff) |
Commit
1591469305280a9a66635f8af8f0fcb47a839ef7
by yonghong-songUpdate INSTALL.md
For ubuntu focal fossa only instructions given for Eoan worked for me. If we don't add Focal fossa to list people will go to "For other versions" section. which refers to libllvm3.7 which could not be installed on ubuntu focal. Hence this proposed change (commit: 1591469) |
| INSTALL.md (diff) |
|
| INSTALL.md (diff) |
|
| docs/kernel-versions.md (diff) |
| src/cc/export/helpers.h (diff) |
| src/cc/compat/linux/virtual_bpf.h (diff) |
| src/cc/libbpf (diff) |
| src/cc/libbpf.c (diff) |
Commit
ad5b82a5196b222ed2cdc738d8444e8c9546a77f
by yonghong-songupdate debian changelog for release v0.17.0
* Support for kernel up to 5.9 * usdt: add uprobe refcnt support * use newer llvm/clang versions in debian packaging if possible * add bpf iterator C++ support * new bcc tools: tcprtt, netqtop, swapin, tcpsynbl, threadsnoop * tcpconnect: add DNS correlation to connect tracking * new libbpf-tools: llcstat, numamove, runqlen, runqlat, softirgs, hardirqs * doc update, bug fixes and some additional arguments for tools
Signed-off-by: Yonghong Song <yhs@fb.com> (commit: ad5b82a) |
| debian/changelog (diff) |
Commit
12107c6936c6f5d64dd305c8a7d068c07086fd17
by yonghong-songuse correct arch register for the 4th param of x86_64 syscalls
Fix #3150
On x86_64, for syscalls, the calling convension is to use r10 instead of rcx for the 4th parameter. I have verified this with disassembling vmlinux codes. https://www.systutorials.com/x86-64-calling-convention-by-gcc/
bcc previously used rcx for the 4th parameter for all cases. This patch fixed the issue by using r10 for syscalls. A macro PT_REGS_PARM4_SYSCALL() is also introduced in helpers.h to access the 4th parameter for r10.
Signed-off-by: Yonghong Song <yhs@fb.com> (commit: 12107c6) |
| src/cc/frontends/clang/b_frontend_action.cc (diff) |
| src/cc/frontends/clang/loader.cc (diff) |
| src/cc/frontends/clang/arch_helper.h (diff) |
| src/cc/export/helpers.h (diff) |
Commit
11c93f613b43e296f949a231684d544016fd0bcb
by yhsfix compilation issues with latest llvm12 trunk
With latest llvm12 trunk, we got two compilation bugs.
Bug #1: /home/yhs/work/bcc/src/cc/frontends/clang/b_frontend_action.cc: In member function ‘void ebpf::BFrontendAction::DoMiscWorkAround()’: /home/yhs/work/bcc/src/cc/frontends/clang/b_frontend_action.cc:1706:31: error: ‘class clang::SourceManage’ has no member named ‘getBuffer’; did you mean ‘getBufferData’? rewriter_->getSourceMgr().getBuffer(rewriter_->getSourceMgr().getMainFileID())->getBufferSize(), ^~~~~~~~~ getBufferData
This is due to upstream change https://reviews.llvm.org/D89394. To fix, follow upstream examples in https://reviews.llvm.org/D89394.
Bug #2: /home/yhs/work/bcc/src/cc/bpf_module.cc: In member function ‘int ebpf::BPFModule::finalize()’: /home/yhs/work/bcc/src/cc/bpf_module.cc:470:11: error: ‘class llvm::EngineBuilder’ has no member named ‘setUseOrcMCJITReplacement’ builder.setUseOrcMCJITReplacement(false); ^~~~~~~~~~~~~~~~~~~~~~~~~
This is due to upstream https://github.com/llvm/llvm-project/commit/6154c4115cd4b78d0171892aac21e340e72e32bd
It seems builder.setUseOrcMCJITReplacement() is not needed any more. So just remove it from bcc.
Signed-off-by: Yonghong Song <yhs@fb.com> (commit: 11c93f6) |
| src/cc/frontends/clang/b_frontend_action.cc (diff) |
| src/cc/bpf_module_rw_engine.cc (diff) |
| src/cc/bpf_module.cc (diff) |