- 21 Feb, 2017 1 commit
-
-
4ast authored
Support base + index * scale addressing for USDT arguments
-
- 20 Feb, 2017 4 commits
-
-
4ast authored
trace, argdist: Treat small USDT arguments correctly
-
Sasha Goldshtein authored
trace and argdist currently only work correctly for USDT arguments whose size is exactly 8 bytes. Smaller types, such as chars, shorts, ints (signed or unsigned) are not treated correctly. The reason is that the produced program would invoke the `bpf_usdt_readarg` helper with the address of a u64 local variable, and then cast that variable to the user-specified type derived from the format string. However, the `bpf_usdt_readarg` rewriting then passes `sizeof(u64)` to the generated `bpf_..._readarg` macro, which then fails to read anything because the provided size doesn't match the argument size it knows about. The fix is fairly easy: instead of declaring a u64 unconditionally and reading into that variable with `bpf_usdt_readarg`, declare a variable that has the correct type according to what we know about the USDT probe.
-
4ast authored
Fix file descriptor leak
-
Paul Chaignon authored
-
- 19 Feb, 2017 1 commit
-
-
Sasha Goldshtein authored
It turns out that some software will have USDT probe arguments referencing memory using the full `nnn@(%basereg + %idxreg * scale` syntax. This is represented as `nnn@(%basereg,%idxreg,scale)` in the `NT_STAPSDT` note, encountered in building a recent version of PostgreSQL on FC25. This format is now recognized by the USDT parser, and the correct BPF code is emitted to retrieve arguments that reference memory using this full addressing syntax.`
-
- 16 Feb, 2017 10 commits
-
-
Brenden Blanco authored
llcstat: fix TypeError on python3
-
Brendan Gregg authored
dbslower and dbstat
-
Brendan Gregg authored
-
Brenden Blanco authored
syscount: Summarize syscall counts and latencies
-
Brenden Blanco authored
Adds zlib1g-dev Debian package build dependency
-
Alexandros authored
When building from source in Debian, zlib1g-dev is needed or else '/usr/bin/ld: cannot find -lz' error will occur.
-
Sasha Goldshtein authored
This new tool attaches to the raw_syscalls:sys_enter and sys_exit tracepoints, and collects frequency counts and optionally latencies of syscalls (aggregated by syscall or by process). It is a fairly natural and efficient extension of Brendan Gregg's syscount from perf-tools. Options include latency tracing, interval printouts, process filtering, summarizing only failed syscalls, and more. NOTE: The translation of syscall numbers to names is performed using a static list, borrowed from strace sources. It is accurate up to syscall 313, and does not include the bpf() syscall, for example. Also, it is only relevant for x86_64. Basic example: ``` $ syscount -P Tracing syscalls, printing top 10... Ctrl+C to quit. [10:13:21] PID COMM COUNT 30216 sshd 533 31391 vi 494 25188 screen 134 25776 mysqld 24 31394 python 10 494 systemd-journal 5 ^C $ syscount -L Tracing syscalls, printing top 10... Ctrl+C to quit. [10:13:34] SYSCALL COUNT TIME (us) select 132 1902458.009 nanosleep 166 11136.305 write 89 41.308 ftruncate 1 33.217 stat 1 22.117 fstat 1 6.134 [unknown: 321] 28 4.553 ioctl 7 4.544 wait4 166 3.962 timerfd_settime 1 3.786 ^C ``` Related: #786
-
Sasha Goldshtein authored
-
Sasha Goldshtein authored
This tool traces MySQL/PostgreSQL queries, and aggregates their latencies into a histogram. The histogram is then printed when the tool is stopped, or at user-specified intervals.
-
Sasha Goldshtein authored
This tool traces MySQL/PostgreSQL queries, including an optional minimum duration threshold. This is based on `mysqld_qslower` but adapted to automatically detect MySQL/PostgreSQL processes, and a couple of other code fixes. I believe at this time, `mysqld_qslower` can be retired, as this tool completely supersedes it.
-
- 15 Feb, 2017 4 commits
-
-
Brenden Blanco authored
Revert "undo rebase"
-
Rafael Fonseca authored
This reverts commit a112514c. The changes the commit reverted are legit and should not have been reverted.
-
Brenden Blanco authored
Move monotonic_time to BPF class, use CLOCK_MONOTONIC
-
Rafael Fonseca authored
The bytes object has no __format__ method of its own, inheriting it from object, so an exception is thrown in python3 when it's passed to a formatted string since formatting instructions are type specific. $: ./llcstat Running for 10 seconds or hit Ctrl-C to end. PID NAME CPU REFERENCE MISS HIT% Traceback (most recent call last): File "./llcstat", line 108, in <module> (float(hit) / float(v.value)) * 100.0)) TypeError: non-empty format string passed to object.__format__
-
- 14 Feb, 2017 9 commits
-
-
Brenden Blanco authored
Add pkg-config file to Debian packages.
-
Marcin Ślusarz authored
-
Brenden Blanco authored
filetop: Fix TypeError by not mixing bytes and str.
-
Rafael Fonseca authored
When executing the filetop command tool, the following message was generated: Traceback (most recent call last): File "/usr/share/bcc/tools/filetop", line 190, in <module> name = name[:-3] + "..." TypeError: can't concat bytes to str Also, by decoding the bytes we print the strings without a leading "b'" making the output more readable.
-
Brenden Blanco authored
Add optional kernel flags for running networking examples in INSTALL.md
-
Brenden Blanco authored
-
Brenden Blanco authored
tools/trace accepts abspath arguments to -I (and some doc tweaks)
-
Brenden Blanco authored
Fix ucalls
-
Brenden Blanco authored
fixes #962 - fix lambda on both py2 and py3
-
- 13 Feb, 2017 11 commits
-
-
Brendan Gregg authored
gethostlatency: Filter by process ID
-
Paul Chaignon authored
-
4ast authored
u* tools: Gracefully handle missing probes
-
ShelbyFrances authored
-
ShelbyFrances authored
-
ShelbyFrances authored
-
Sasha Goldshtein authored
When the target process is missing the required USDT probes, it can be a simple mistake (e.g. attaching a script as Java to a Python process), or a runtime that is not instrumented with the required probes. Attempt to gracefully handle the error and print a helpful message instructing the user why the error might have occurred. ``` $ uthreads -l java $(pidof python) Error attaching USDT probes: the specified pid might not contain the given language's runtime, or the runtime was not built with the required USDT probes. Look for a configure flag similar to --with-dtrace or --enable-dtrace. To check which probes are present in the process, use the tplist tool. ```
-
4ast authored
u* tools: PHP support
-
4ast authored
ugc: Add -M for minimum time and -F for text filtering
-
Rafael Fonseca authored
See: https://www.python.org/dev/peps/pep-3113/
-
Rafael Fonseca authored
$ ucalls File "./ucalls", line 239 data = map(lambda (k, v): (k.clazz + "." + k.method, ^ SyntaxError: invalid syntax See: https://www.python.org/dev/peps/pep-3113/
-