- 21 Jan, 2017 1 commit
-
-
Brenden Blanco authored
The kernel uses number of possible cpus to size the leaf, not the num of online cpus. Fixup the python side appropriately. Update: use num_possible_cpus() helper instead Signed-off-by: Brenden Blanco <bblanco@gmail.com>
-
- 20 Jan, 2017 3 commits
-
-
Brenden Blanco authored
The python3 version of the percpu helpers (average, sum, etc.) were using a python2 function that has since moved to functools (reduce). Worse, the test case for percpu functionality was not enabled in the cmake file. Better turn that on and make it work. Signed-off-by: Brenden Blanco <bblanco@gmail.com>
-
4ast authored
[tools][memleak.py] add parameter for specifying object to load malloc/free from
-
Maria Kacik authored
-
- 17 Jan, 2017 9 commits
-
-
4ast authored
trace: Allow function signatures in uprobes and kprobes
-
4ast authored
trace, tplist, argdist: UDST probe miscellaneous fixes
-
Sasha Goldshtein authored
§`trace` now allows uprobes and kprobes to have function signatures, which means function parameters can be named and typed, rather than relying on the positional arg1, arg2, etc. arguments. This also enables structure field access, which is impossible with the unnamed arguments due to rewriter limitations. The example requested by @brendangregg, which now works, is the following: §Â``` PID TID COMM FUNC - 777 785 automount SyS_nanosleep sleep for 500000000 ns 777 785 automount SyS_nanosleep sleep for 500000000 ns 777 785 automount SyS_nanosleep sleep for 500000000 ns 777 785 automount SyS_nanosleep sleep for 500000000 ns ^C ```
-
Sasha Goldshtein authored
-
Sasha Goldshtein authored
`trace` would use the incorrect argument index for USDT probes when filtering specifically, e.g. `trace u:lib:tp (arg1 != 0) ...` would actually use the type of the 2nd argument, and not the 1st argument for the type of the filter variable in the generated program. This could cause compilation errors or subtle bugs where the data would be either extended or contracted to fit the wrong argument's type. Additionally, `trace` would use the pid (thread id, `-L`) filter with the `attach_uprobe` API, which expects a tgid (process id). As a result, incorrect filtering would happen.
-
Sasha Goldshtein authored
-
Sasha Goldshtein authored
Oftentimes we want to use the STRCMP helper to compare strings that are not null-terminated, e.g. in USDT probes this often happens. Ignore the null terminator (i.e. loop until the last character excluding the null terminator).
-
Sasha Goldshtein authored
The `trace` and `argdist` tools expect location and argument indices to start at 1 -- the first argument is arg1, and so on. The `tplist` tool now prints UDST argument indices (and location indices, for consistency) as 1-based as well.
-
4ast authored
Use targeted process to resolve library names
-
- 16 Jan, 2017 3 commits
-
-
4ast authored
fix iteration over CPUs
-
Andreas Gerstmayr authored
Since kernel version 4.9.0 BPF stopped working in a KVM guest. The problem are calls to perf_event_open with CPU identifiers which do not exist (ENODEV). The root cause for this is that the current code assumes ascending numbered CPUs. However, this is not always the case (e.g. CPU hotplugging). This patch introduces the get_online_cpus() and get_possible_cpus() helper functions and uses the appropriate function for iterations over CPUs. The BPF_MAP_TYPE_PERF_EVENT_ARRAY map contains now an entry for each possible CPU instead of for each online CPU. Fixes: #893 Signed-off-by: Andreas Gerstmayr <andreas.gerstmayr@catalysts.cc>
-
Brendan Gregg authored
argdist, trace: Support non-C identifier names
-
- 15 Jan, 2017 3 commits
-
-
Paul Chaignon authored
-
Paul Chaignon authored
We need the PID when detaching uprobes to resolve library names to the same path as when attaching
-
Paul Chaignon authored
To resolve library names, bcc_procutils_which_so leverages mapped libraries of the targeted process, if one is given. Uses the kernel's /proc/$pid/maps
-
- 14 Jan, 2017 1 commit
-
-
Sasha Goldshtein authored
When argdist or trace face a function that has characters in its name that are not valid in C identifier, they now replace these characters with an underscore (`_`) when generating function names and structure names to include in the BPF program. As a result, it is now possible to trace functions that have these identifiers in their names, such as Golang functions like `fmt.Println`.
-
- 13 Jan, 2017 2 commits
-
-
4ast authored
add some error hints
-
Brendan Gregg authored
-
- 11 Jan, 2017 10 commits
-
-
4ast authored
profile: increase unique stack default to 10k
-
4ast authored
trace: allow tracing of functions containing a dot (golang)
-
4ast authored
statsnoop: refactor
-
Brendan Gregg authored
-
Brendan Gregg authored
-
4ast authored
gethostlatency: remove unused code
-
Brendan Gregg authored
-
Brendan Gregg authored
-
4ast authored
add a few funccount examples
-
Brendan Gregg authored
-
- 09 Jan, 2017 4 commits
-
-
4ast authored
snapcraft: add cpuunclaimed to snapcraft wrapper rules
-
4ast authored
Add missing helper prototypes
-
4ast authored
Fixes bio{snoop,top} on 4.10
-
Mauricio Vasquez B authored
Signed-off-by: Mauricio Vasquez B <mauricio.vasquez@polito.it>
-
- 08 Jan, 2017 1 commit
-
-
Ryan Leary authored
This commit fixes #888. The 2 scripts run the same check, and now run basically the same code to do it. Tested on 4.10-rc2.
-
- 07 Jan, 2017 2 commits
-
-
Brenden Blanco authored
Add -fno-stack-protector to CFLAGS
-
Rolf Neugebauer authored
When compiling ebpf programs on Alpine Linux the compiler throws the following error: LLVM ERROR: Cannot select: 0x56049b79dcb0: ch,glue = BPFISD::CALL 0x56049a93ad60, TargetExternalSymbol:i64'__stack_chk_fail' 0x56049b391500: i64 = TargetExternalSymbol'__stack_chk_fail' In function: waker Disabling the stack protector explicitly with '-fno-stack-protector' fixes this error. clang version 3.8.1 (tags/RELEASE_381/final) Target: x86_64-alpine-linux-musl Thread model: posix InstalledDir: /usr/bin Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
-
- 05 Jan, 2017 1 commit
-
-
Brenden Blanco authored
add missing inclusion guards in bcc/proto.h
-