- 13 Jul, 2016 4 commits
-
-
Brendan Gregg authored
fileslower: try probing vfs_write if __vfs_write is missing
-
Mark Drayton authored
-
Mark Drayton authored
-
Brenden Blanco authored
Build debian packages in docker containers
-
- 12 Jul, 2016 2 commits
-
-
Ivan Babrou authored
-
Brendan Gregg authored
-
- 11 Jul, 2016 3 commits
-
-
Brenden Blanco authored
Full tracepoint support in Clang front-end
-
Trent Schafer authored
-
Sasha Goldshtein authored
Older versions of GCC don't support std::regex even though they support most of C++11. To avoid breaking the build on older systems, such as Ubuntu 14.04, use manual parsing instead of std::regex.
-
- 09 Jul, 2016 3 commits
-
-
Sasha Goldshtein authored
-
Sasha Goldshtein authored
When a probe function refers to a tracepoint arguments structure, such as `struct tracepoint__irq__irq_handler_entry`, add that structure on-the-fly using a Clang frontend action that runs before any other steps take place. Typically, the user will create tracepoint probe functions using the TRACEPOINT_PROBE macro, which avoids the need for specifying the tracepoint category and event twice in the signature of the probe function.
-
Sasha Goldshtein authored
When a function in the BPF program starts with "tracepoint__", parse the rest of the name as a tracepoint category and name and attach the tracepoint automatically. For example: ``` int tracepoint__sched__sched_switch(...) ``` As a result, the sched:sched_switch tracepoint is enabled and the function is attached to that tracepoint.
-
- 08 Jul, 2016 3 commits
-
-
Brenden Blanco authored
On some systems, was seeing a failure at tests/cc/test_c_api.cc:172 due to failure to open the /tmp/perf-pid.map file. Looking through the code, narrowed it down to an invalid use of c_str() on a temporary std::string. Fix it by storing the string in a variable. Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
Mark Drayton authored
-
Brenden Blanco authored
Upstream, params() was renamed to parameters(). In order to support both old and new LLVM, use the unchanged param_begin and param_end API. Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
-
- 02 Jul, 2016 1 commit
-
-
Brendan Gregg authored
-
- 01 Jul, 2016 2 commits
-
-
Mark Drayton authored
* libbcc: fix off-by-one errors in resolving adjacent modules/symbols, add test * libbcc: use binary search in ProcSyms::Module::find_addr()
-
Sasha Goldshtein authored
Add ctypes declarations for `bpf_attach_tracepoint` and `bpf_detach_tracepoint` in libbcc.py. It works anyway, but now it's a bit safer.
-
- 30 Jun, 2016 10 commits
-
-
Brenden Blanco authored
cpudist: Support off-cpu time reports
-
Brenden Blanco authored
bcc: Tracepoint support in libbpf and BPF
-
Sasha Goldshtein authored
The test asserts that we can enable the sched_switch tracepoint and read some events from it. The test is also marked to require kernel 4.7 or later, because that's where the BPF support for tracepoints was introduced.
-
Sasha Goldshtein authored
It seems from experimentation that the calculated timestamps between on- and off-CPU switch events can produce incorrect results, with a later event having a smaller timestamp. Discard events when the resulting delta time would be negative.
-
Sasha Goldshtein authored
The `sched_switch` tracepoint approach requires storing the previous task's tgid in a map and fetching it from there, because it is not available as a tracepoint argument. Instead, placing a kprobe on the `finish_task_switch` function allows cleanly fetching the previous task's pid and tgid from the task_struct.
-
Sasha Goldshtein authored
When the `-O` switch was provided, cpudist was unnecessarily filtering out scheduling events arising from a task waking up when the previous task was not running. On an idle system, this happens a lot, and causes events to be missed. This is now fixed.
-
Sasha Goldshtein authored
Use `/proc/$PID/comm`, which may fail, for example if the original process already exited. This may also produce misleading results if another process got the same pid, but there's no way around this.
-
Sasha Goldshtein authored
Add -O switch, which directs cpudist to collect off-CPU time statistics. Also restructure the code slightly and added examples as appropriate.
-
Sasha Goldshtein authored
Introduce tracepoint support in libbpf via new `bpf_attach_tracepoint` API, which takes the tracepoint category and name (e.g. "sched", "sched_switch"). Attach the tracing program to the tracepoint's id and proceed as usual. Add `attach_tracepoint` API to Python BPF module, which takes the tracepoint description as a single string (e.g. "sched:sched_switch"). Load the BPF program with bpf_prog_type set to TRACEPOINT and then call `bpf_attach_tracepoint` to attach it.
-
Sasha Goldshtein authored
Due to an incorrectly referenced global variable, specifying a pid to filter with a kernel probe produced an error. This is now fixed, for example: ``` TIME PID COMM FUNC 23:46:00 29967 bash sched_switch 23:46:01 29967 bash sched_switch 23:46:01 29967 bash sched_switch ^C ```
-
- 29 Jun, 2016 1 commit
-
-
Sasha Goldshtein authored
* cpudist: summarize on-CPU time per task as a histogram This is the initial implementation of the tool itself, which uses the sched:sched_switch tracepoint to probe task switches. This is a slightly more robust approach than using a kernel function, such as finish_task_switch. When native BCC support for tracepoints is introduced, this tool can be reimplemented and reliance on the current Tracepoint module can be removed. * cpudist: add man page and examples
-
- 27 Jun, 2016 4 commits
-
-
Brendan Gregg authored
tools: fix getting {ext4,btrfs}_file_operations address (ref #583)
-
ygrek authored
-
Brendan Gregg authored
ext4slower: fix getting kallsyms address
-
ygrek authored
$ grep ext4_file_operations /proc/kallsyms ffffffffc0331340 r ext4_file_operations [ext4]
-
- 26 Jun, 2016 4 commits
-
-
Mark Drayton authored
* tcpretrans: support full IPv6 addresses, fix --lossprobe * tcpaccept: support full IPv6 addresses, fix timestamps * tcpconnect: support full IPv6 addresses, fix timestamps * tcpconnlat: support full IPv6 addresses, fix timestamps
-
Brenden Blanco authored
Update installation instructions for Fedora
-
Sasha Goldshtein authored
-
Sasha Goldshtein authored
clang 3.7.0 is known to be buggy, and we recommend that people use 3.7.1. Update install instructions to point to 3.7.1. Compiling BCC on Fedora requires elfutils-libelf-devel. Add this package to the install instructions for Fedora.
-
- 23 Jun, 2016 2 commits
-
-
Brendan Gregg authored
Do not throw exception on ipv6 packets in tcpretrans
-
Ivan Babrou authored
-
- 22 Jun, 2016 1 commit
-
-
Brendan Gregg authored
* kernel version guide * update
-