ygrek [Mon, 27 Jun 2016 18:07:47 +0000 (11:07 -0700)]
ext4slower: fix getting kallsyms address
$ grep ext4_file_operations /proc/kallsyms
ffffffffc0331340 r ext4_file_operations [ext4]
Mark Drayton [Sun, 26 Jun 2016 20:14:44 +0000 (21:14 +0100)]
IPv6 support for tcp* tools (#582)
* 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 [Sun, 26 Jun 2016 16:15:30 +0000 (09:15 -0700)]
Merge pull request #581 from goldshtn/docs-fixes
Update installation instructions for Fedora
Sasha Goldshtein [Sun, 26 Jun 2016 13:19:56 +0000 (16:19 +0300)]
Merge branch 'master' into docs-fixes
Sasha Goldshtein [Sun, 26 Jun 2016 13:15:39 +0000 (06:15 -0700)]
Update installation instructions for Fedora
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.
Brendan Gregg [Thu, 23 Jun 2016 18:05:29 +0000 (11:05 -0700)]
Merge pull request #579 from bobrik/fix-ipv6-print
Do not throw exception on ipv6 packets in tcpretrans
Ivan Babrou [Thu, 23 Jun 2016 17:11:25 +0000 (18:11 +0100)]
Do not throw exception on ipv6 packets in tcpretrans
Brendan Gregg [Wed, 22 Jun 2016 00:12:38 +0000 (17:12 -0700)]
kernel version guide (#577)
* kernel version guide
* update
4ast [Tue, 21 Jun 2016 15:51:11 +0000 (08:51 -0700)]
Merge pull request #576 from markdrayton/perf-pid-map-fixes
Fix nits for /tmp/perf-pid.map support
Mark Drayton [Tue, 21 Jun 2016 12:37:27 +0000 (13:37 +0100)]
Fix nits for /tmp/perf-pid.map support
4ast [Mon, 20 Jun 2016 16:47:30 +0000 (09:47 -0700)]
Merge pull request #573 from markdrayton/pid-map
Add support for reading symbols from /tmp/perf-pid.map
Brendan Gregg [Wed, 15 Jun 2016 18:50:24 +0000 (11:50 -0700)]
Merge pull request #572 from iovisor/ast_dev
fix install instruction to mention llvm >= 3.7.1
Brendan Gregg [Wed, 15 Jun 2016 18:42:05 +0000 (11:42 -0700)]
Merge branch 'master' into ast_dev
Alexei Starovoitov [Wed, 15 Jun 2016 16:39:28 +0000 (12:39 -0400)]
fix install instruction to mention llvm >= 3.7.1
Signed-off-by: Alexei Starovoitov <ast@fb.com>
Mark Drayton [Wed, 15 Jun 2016 10:53:24 +0000 (11:53 +0100)]
Add support for reading symbols from /tmp/perf-pid.map
This adds basic support for /tmp/perf-pid.map. To cope with processes in
containers, it supports:
* mapping from BCC's PID namespace to the target process's PID namespace
using /proc/pid/status
* resolving a target process's root filesystem using /proc/pid/root
4ast [Wed, 15 Jun 2016 05:14:57 +0000 (22:14 -0700)]
Merge pull request #571 from iovisor/fix_568
Check for NULL result from bpf_attach_kprobe
Brenden Blanco [Wed, 15 Jun 2016 03:57:03 +0000 (20:57 -0700)]
Check for NULL result from bpf_attach_kprobe
The check for NULL in the return value from C functions was comparing to
None incorrectly, causing an error check to pass improperly. Simply
check the truthiness of the return instead seems to be more resilient.
Add a test as well.
Fixes: #568
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Mon, 13 Jun 2016 11:59:42 +0000 (04:59 -0700)]
Merge pull request #563 from qmonnet/debug-output
libbpf.c: Prepend BPF syscall error to log_bug when debug is enabled.
Quentin Monnet [Thu, 9 Jun 2016 12:55:29 +0000 (14:55 +0200)]
python: With DEBUG_BPF, print BPF error even if log_buf is not empty.
When BPF syscall fails and DEBUG_FLAG has been provided to a Python
caller script, the BPF error string would be printed only if log_buf had
not been filled by the kernel. This commit removes this requirement,
printing the error string even if log_buf is not empty.
Signed-off-by: Quentin Monnet <quentin.monnet@6wind.com>
Quentin Monnet [Thu, 9 Jun 2016 12:55:29 +0000 (14:55 +0200)]
python: Print BPF syscall error if DEBUG_BPF is on but log_buf is empty.
Commit
759029fea8066b41b54be5447137db95cb1313c4 provided an option to
store the output from BPF syscall into a buffer (and not to print it
systematically to standard output) on program load in libbpf.c.
But doing so, it only stores the content of attr.log_buf, while the
error string--resulting from a failed BPF syscall--is no more displayed
when the DEBUG_BPF flag is used in the Python script responsible for
converting and injecting the code.
This commit proposes a fix for this bug by printing the error message
(associated to the return value from the syscall) from the Python
caller, when all the following conditions are met:
- the syscall fails,
- the DEBUG_BPF flag has been provided, and
- log_buf is empty (has not been filled by kernel).
Note: when DEBUG_BPF is not provided, the error string is printed in the
C wrapper in libbpf.c (bpf_prog_load) anyway.
Fixes:
759029fe ("Add option for custom log string to bpf_prog_load")
Signed-off-by: Quentin Monnet <quentin.monnet@6wind.com>
Brendan Gregg [Wed, 8 Jun 2016 18:44:49 +0000 (11:44 -0700)]
Merge pull request #562 from evverx/change-kernel-user-stacks-order
Change kernel/user stacks order
Evgeny Vereshchagin [Tue, 7 Jun 2016 20:33:54 +0000 (06:33 +1000)]
offcputime: add the -d option
Closes #559
Evgeny Vereshchagin [Tue, 7 Jun 2016 20:06:33 +0000 (06:06 +1000)]
offcputime: change user/kernel stack order
see #559
Brendan Gregg [Tue, 7 Jun 2016 15:49:19 +0000 (08:49 -0700)]
Merge pull request #561 from evverx/folded-dont-miss-backtrace-part
offcputime -f: don't miss backtrace bounds
Evgeny Vereshchagin [Tue, 7 Jun 2016 08:00:01 +0000 (18:00 +1000)]
offcputime -f: don't miss backtrace bounds
See #559
Brendan Gregg [Mon, 6 Jun 2016 19:45:02 +0000 (12:45 -0700)]
Merge pull request #560 from evverx/clarify-offcputime
Update manpage for offcputime
Brendan Gregg [Mon, 6 Jun 2016 18:18:54 +0000 (11:18 -0700)]
Merge pull request #554 from evverx/fix-p-option
Fix tools[/old]/offcputime -p PID
Evgeny Vereshchagin [Mon, 6 Jun 2016 09:25:54 +0000 (09:25 +0000)]
Update manpage for offcputime
Closes #558
Evgeny Vereshchagin [Fri, 27 May 2016 06:13:52 +0000 (06:13 +0000)]
Fix tools[/old]/offcputime -p PID
We should extract pid before THREAD_FILTER
4ast [Fri, 3 Jun 2016 01:15:43 +0000 (18:15 -0700)]
Merge pull request #555 from markdrayton/execsnoop
execsnoop: use BPF_PERF_OUTPUT, add PPID
Mark Drayton [Thu, 2 Jun 2016 09:53:34 +0000 (10:53 +0100)]
execsnoop: show PPID in output
Mark Drayton [Thu, 2 Jun 2016 09:53:20 +0000 (10:53 +0100)]
execsnoop: use BPF_PERF_OUTPUT instead of trace pipe
Brenden Blanco [Wed, 1 Jun 2016 01:21:10 +0000 (18:21 -0700)]
Merge pull request #557 from ryanmiao/mypr
set use_errno to True for libbcc.so
Brenden Blanco [Wed, 1 Jun 2016 01:16:06 +0000 (18:16 -0700)]
Merge pull request #544 from abirchall/abirchall_release
Add user space stack traces to offcputime
Jincheng Miao [Sun, 29 May 2016 05:17:03 +0000 (13:17 +0800)]
set use_errno to True for libbcc.so
Currently, errno could not be accessed by libbcc.py, like:
```
binding socket to 'eth0'
cannot create raw socket: Operation not permitted
Traceback (most recent call last):
File "/home/ryan/Software/bcc/examples/networking/http_filter/http-parse-simple.py", line 73, in <module>
BPF.attach_raw_socket(function_http_filter, interface)
File "/usr/lib/python2.7/site-packages/bcc/__init__.py", line 330, in attach_raw_socket
raise Exception("Failed to open raw device %s: %s" % (dev, errstr))
Exception: Failed to open raw device eth0: Success
```
The exception prints the errno as `Success`, instead of `EPERM`.
This patch would fix this problem.
Signed-off-by: Jincheng Miao <jincheng.miao@gmail.com>
Brenden Blanco [Fri, 27 May 2016 00:42:13 +0000 (17:42 -0700)]
Merge pull request #552 from evverx/install-tools-old
Install tools/old
Evgeny Vereshchagin [Thu, 26 May 2016 09:11:44 +0000 (09:11 +0000)]
Point people to tools/old
Evgeny Vereshchagin [Thu, 26 May 2016 08:50:50 +0000 (08:50 +0000)]
Install tools/old too
4ast [Tue, 24 May 2016 20:30:39 +0000 (13:30 -0700)]
Merge pull request #551 from vmg/vmg/lua-para
lua: Allow LuaJIT parameterized types in `open_perf_buffer`
Vicent Marti [Tue, 24 May 2016 15:57:34 +0000 (17:57 +0200)]
lua: Allow LuaJIT parameterized types in `open_perf_buffer`
4ast [Tue, 24 May 2016 15:43:51 +0000 (08:43 -0700)]
Merge pull request #550 from markdrayton/trace-fields
Use BPF_PERF_OUTPUT for fileslower and stacksnoop
Mark Drayton [Tue, 24 May 2016 14:01:01 +0000 (07:01 -0700)]
Use BPF_PERF_OUTPUT for fileslower and stacksnoop
Andrew Birchall [Tue, 24 May 2016 08:44:41 +0000 (01:44 -0700)]
Update documentation and man page for offcputime
Andrew Birchall [Thu, 5 May 2016 17:56:40 +0000 (10:56 -0700)]
Add user space stack traces to offcputime
Summary:
* generalize `KernelSymbolCache` into `SymbolCache` which supports user/kernel space symbols
* create `BPF.sym()` for resolving user/kernel space symbols
* `_ksym_cache` => `_sym_caches` and create `BPF._sym_cache()` to leverage the symbol caches
* update `tools/offcputime.py` to print user space stack traces
Test Plan:
```
dev[bcc](abirchall_next): ~/bcc_run_tool.sh offcputime -U -k -f 1
ERROR: Displaying user stacks for kernel threads doesn't make sense.
devbig680[bcc](abirchall_next): ~/bcc_run_tool.sh offcputime -K -f 1 | grep python2 | head -n 1
python2.7;system_call_fastpath;sys_futex;do_futex;futex_wait;futex_wait_queue_me;schedule 19
dev[bcc](abirchall_next): ~/bcc_run_tool.sh offcputime -U -f 1 | grep python2 | head -n 1
python2.7;clone;start_thread;t_bootstrap;PyEval_CallObjectWithKeywords;PyObject_Call;instancemethod_call;PyObject_Call;function_call;PyEval_EvalCodeEx;PyEval_EvalFrameEx;PyObject_Call;function_call;PyEval_EvalCodeEx;PyEval_EvalFrameEx;time_sleep;PyEval_RestoreThread 5
devbig680[bcc](abirchall_next): ~/bcc_run_tool.sh offcputime -f 1 | grep python2 | head -n 1
python2.7;system_call_fastpath;sys_futex;do_futex;futex_wait;futex_wait_queue_me;schedule;[unknown];__libc_start_main;Py_Main;RunModule;PyObject_Call;function_call;PyEval_EvalCodeEx;PyEval_EvalFrameEx;PyEval_EvalFrameEx;PyEval_EvalCodeEx;PyEval_EvalFrameEx;lock_PyThread_acquire_lock;PyEval_RestoreThread 39
```
Brenden Blanco [Mon, 23 May 2016 02:55:06 +0000 (19:55 -0700)]
Merge pull request #535 from MQasimSarfraz/patch-1
Updated monitor.c to take care of host byte order
Brenden Blanco [Fri, 20 May 2016 17:31:30 +0000 (10:31 -0700)]
Merge pull request #546 from iamkafai/master
Fix a few fd leaks
Martin KaFai Lau [Fri, 20 May 2016 06:04:41 +0000 (23:04 -0700)]
This diff fixes a few fd leaks after reading files under
/sys/kernel/debug/tracing.
Qasim Sarfraz [Thu, 19 May 2016 10:02:26 +0000 (15:02 +0500)]
Removing htons in tunnel.py for consistency.
Brendan Gregg [Tue, 17 May 2016 20:41:33 +0000 (13:41 -0700)]
Merge pull request #543 from abirchall/abirchall_release
add --kernel-threads-only to tools/offcputime
Andrew Birchall [Wed, 4 May 2016 23:03:34 +0000 (16:03 -0700)]
add --kernel-threads-only to tools/offcputime
Summary:
Adds `--kernel-threads-only` arg
The kernel-threads-only arg is exclusive with pid/user-threads-only via `parser.add_mutually_exclusive_group`.
The output message now indicates what we are tracing (pid/user threads/kernel threads/all threads).
Removed the --verbose arg (unused).
Test Plan:
Run with combinations of the args; validate output looks sane:
// test mutually exclusive group
```
devbig680[bcc](abirchall_dev): ~/bcc_run_tool.sh offcputime -k -u 1
[Running] /data/users/abirchall/bcc/tools/offcputime.py -k -u 1
usage: offcputime.py [-h] [-p PID | -k | -u] [-v] [-f] [duration]
offcputime.py: error: argument -u/--user-threads-only: not allowed with argument -k/--kernel-threads-only
```
// kernel threads only
```
devbig680[bcc](abirchall_dev): ~/bcc_run_tool.sh offcputime -f -k 1
[Running] /data/users/abirchall/bcc/tools/offcputime.py -f -k 1
swapper/21;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 11
swapper/16;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 19
swapper/22;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 20
swapper/31;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 20
swapper/23;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 67
swapper/25;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 74
...
```
`~/bcc_run_tool.sh offcputime -f --kernel-threads-only 1`
// user threads only
`~/bcc_run_tool.sh offcputime -f --user-threads-only 1`
`~/bcc_run_tool.sh offcputime -f -u 1`
// specific pid
`~/bcc_run_tool.sh offcputime -f -p $(pidof hphpi) 1`
```
devbig680[bcc](abirchall_dev): ~/bcc_run_tool.sh offcputime --pid $(pidof mcrouter) 10 | head
[Running] /data/users/abirchall/bcc/tools/offcputime.py --pid 95929 10
Tracing off-CPU time (us) of PID 95929 by kernel stack for 10 secs.
```
Note that this last case (specific PID) doesn't appear to be working; I can debug that in a follow up commit.
4ast [Tue, 17 May 2016 18:10:48 +0000 (11:10 -0700)]
Merge pull request #533 from abirchall/abirchall_dev
handle ENOMEM in tools/offcputime
Andrew Birchall [Thu, 12 May 2016 01:31:49 +0000 (18:31 -0700)]
move ENOMEM comment; create --stack-storage-size arg; misc cleanup
Summary:
* move ENOMEM comment from tools/offcputime.py to src/cc/export/helpers.h
* create --stack-storage-size arg to allow the user to set the stack storage size
* requires a positive_nonzero_int type checking function for argparse
* clean up the rest of the args a bit
* use parser.add_mutually_exclusive_group instead of manually handling the
mutual exclusion
* use positive_nonzero_int for duration arg
* use positive_int for pid arg
* only print a warning about increasing the storage size if at least one of the
get_stackid errors was a -ENOMEM
* remove the debug param (we can add this manually when testing)
* fix a bug where all processes are traced when specifying pid of 0
Test Plan:
```
devbig680[bcc](no branch, rebasing abirchall_dev): ~/bcc_run_tool.sh offcputime --help
[Running] /data/users/abirchall/bcc/tools/offcputime.py --help
usage: offcputime.py [-h] [-u | -p PID] [-v] [-f]
[--stack-storage-size STACK_STORAGE_SIZE]
[duration]
Summarize off-CPU time by kernel stack trace
positional arguments:
duration duration of trace, in seconds
optional arguments:
-h, --help show this help message and exit
-u, --useronly user threads only (no kernel threads)
-p PID, --pid PID trace this PID only
-v, --verbose show raw addresses
-f, --folded output folded format
--stack-storage-size STACK_STORAGE_SIZE
the number of unique stack traces that can be stored
and displayed
examples:
./offcputime # trace off-CPU stack time until Ctrl-C
./offcputime 5 # trace for 5 seconds only
./offcputime -f 5 # 5 seconds, and output in folded format
./offcputime -u # don't include kernel threads (user only)
./offcputime -p 185 # trace fo PID 185 only
devbig680[bcc](no branch, rebasing abirchall_dev): ~/bcc_run_tool.sh offcputime -f 0
[Running] /data/users/abirchall/bcc/tools/offcputime.py -f 0
usage: offcputime.py [-h] [-u | -p PID] [-v] [-f]
[--stack-storage-size STACK_STORAGE_SIZE]
[duration]
offcputime.py: error: argument duration: must be positive and nonzero
devbig680[bcc](no branch, rebasing abirchall_dev): ~/bcc_run_tool.sh offcputime -f -1
[Running] /data/users/abirchall/bcc/tools/offcputime.py -f -1
usage: offcputime.py [-h] [-u | -p PID] [-v] [-f]
[--stack-storage-size STACK_STORAGE_SIZE]
[duration]
offcputime.py: error: argument duration: must be positive and nonzero
devbig680[bcc](no branch, rebasing abirchall_dev): ~/bcc_run_tool.sh offcputime --stack-storage-size 0 -f 1
[Running] /data/users/abirchall/bcc/tools/offcputime.py --stack-storage-size 0 -f 1
usage: offcputime.py [-h] [-u | -p PID] [-v] [-f]
[--stack-storage-size STACK_STORAGE_SIZE]
[duration]
offcputime.py: error: argument --stack-storage-size: must be positive and nonzero
devbig680[bcc](no branch, rebasing abirchall_dev): ~/bcc_run_tool.sh offcputime --stack-storage-size 1 -f 1
[Running] /data/users/abirchall/bcc/tools/offcputime.py --stack-storage-size 1 -f 1
swapper/27;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 7
swapper/29;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 102
swapper/25;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 113
swapper/26;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 138
swapper/28;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 164
swapper/30;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 177
swapper/24;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 980
swapper/31;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 1556
swapper/1;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2038
swapper/3;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2190
swapper/2;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2235
swapper/15;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2260
swapper/13;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2450
swapper/6;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2646
swapper/12;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2675
swapper/11;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2769
swapper/8;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2885
swapper/4;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 3134
swapper/10;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 3416
swapper/14;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 3702
swapper/7;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 4343
swapper/9;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 5397
swapper/5;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 6836
swapper/17;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 13792
swapper/19;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 14488
swapper/22;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 15298
swapper/18;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 15735
swapper/20;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 17333
swapper/16;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 17645
swapper/23;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 17681
swapper/21;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 18607
WARNING: 92 stack traces could not be displayed. Consider increasing --stack-storage-size.
Andrew Birchall [Tue, 3 May 2016 23:54:00 +0000 (16:54 -0700)]
handle ENOMEM in tools/offcputime
Summary:
BPF_STACK_TRACE(_name, _size) will allocate space for _size stack traces
(see https://github.com/torvalds/linux/blob/master/kernel/bpf/stackmap.c#L30-L50).
If we've already used all of this space, subsequent calls to bpf_get_stackid()
will return -ENOMEM (see https://github.com/torvalds/linux/blob/master/kernel/bpf/stackmap.c#L173-L176).
This causes our BPF bytecode to store this value in key_t.stack_id and
subsequently causes our python application to crash due to a KeyError when
invoking stack_traces.walk(k.stack_id).
Let's avoid calling stack_traces.walk(k.stack_id) with back stackid's
Test Plan:
Run offcputime.py in an extreme case; with space for only a single stack trace
```
devbig680[bcc](tools): sed_in_file 's/BPF_STACK_TRACE(stack_traces, 1024)/BPF_STACK_TRACE(stack_traces, 1)/' tools/offcputime.py && \
> ~/bcc_run_tool.sh offcputime -f 5; \
> git reset --hard HEAD
swapper/30;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 496
swapper/26;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 553
swapper/28;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 604
swapper/31;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 692
swapper/23;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 713
swapper/18;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 919
swapper/16;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 1051
swapper/20;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 1056
swapper/21;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 1585
swapper/24;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 1597
swapper/27;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 1610
swapper/17;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 1674
swapper/22;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2390
swapper/25;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2574
swapper/19;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 2589
swapper/29;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 8428
swapper/8;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 15272
swapper/15;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 15591
swapper/11;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 17934
swapper/9;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 18100
swapper/14;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 18266
swapper/10;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 20124
swapper/12;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 20887
swapper/13;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 23453
swapper/3;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 27296
swapper/5;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 29094
swapper/6;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 29799
swapper/7;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 31522
swapper/1;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 32269
swapper/4;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 35585
swapper/2;start_secondary;cpu_startup_entry;schedule_preempt_disabled;schedule 37627
WARNING: 249 stack traces could not be displayed. Consider increasing stack trace storage size.
HEAD is now at d3365e9 [RFC] handle ENOMEM in tools/offcputime`
```
4ast [Mon, 16 May 2016 14:23:21 +0000 (07:23 -0700)]
Merge pull request #542 from mbertrone/master
http_filter fixes
Bertrone Matteo [Mon, 16 May 2016 13:46:01 +0000 (06:46 -0700)]
invalid access fixed. parameter for specify the interface added
Qasim Sarfraz [Fri, 13 May 2016 13:15:43 +0000 (18:15 +0500)]
Merge branch 'master' into patch-1
Qasim Sarfraz [Wed, 11 May 2016 07:37:55 +0000 (12:37 +0500)]
Avoid byte swap for vxlan port
Signed-off-by: MQasimSarfraz <qasims@example.com>
4ast [Fri, 13 May 2016 00:26:02 +0000 (17:26 -0700)]
Merge pull request #539 from markdrayton/lua-tools
Lua ports of biosnoop and stacksnoop
Mark Drayton [Wed, 20 Apr 2016 21:11:00 +0000 (14:11 -0700)]
Lua ports of biosnoop and stacksnoop
Brenden Blanco [Thu, 12 May 2016 16:06:21 +0000 (09:06 -0700)]
Merge pull request #541 from zaafar/master
updated cmake system to include lua and new networking example
Zaafar Ahmed [Wed, 11 May 2016 22:38:35 +0000 (03:38 +0500)]
Updated the cmake file system to include lua and new networking tools.
4ast [Wed, 11 May 2016 20:58:14 +0000 (13:58 -0700)]
Merge pull request #536 from valkum/master
Add new example with test case for for unroll, as requested.
Brenden Blanco [Wed, 11 May 2016 20:48:54 +0000 (13:48 -0700)]
Merge pull request #538 from iovisor/luajit_header_revert
Revert "Force lua main.c to include luajit headers"
Brenden Blanco [Wed, 11 May 2016 19:57:16 +0000 (12:57 -0700)]
Revert "Force lua main.c to include luajit headers"
This reverts commit
c21b9c036cba26e2927fbb5e46985faa73ef743e.
Instead, use `LUAJIT_DIR=/usr/include/luajit-2.0 cmake ..` or similar as
required.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Valkum [Wed, 11 May 2016 18:34:30 +0000 (20:34 +0200)]
Missed this one by extracting this from my actual program.
Valkum [Wed, 11 May 2016 12:47:35 +0000 (14:47 +0200)]
Add dns_matching example with test case for for unroll, as requested at iovisor-dev@lists.iovisor.org
Brenden Blanco [Fri, 6 May 2016 18:29:41 +0000 (11:29 -0700)]
Merge pull request #531 from kivikakk/lua-install-docs
Lua installation instructions.
Nicole Izumi [Fri, 6 May 2016 18:19:14 +0000 (11:19 -0700)]
Lua installation instructions.
Brenden Blanco [Fri, 6 May 2016 14:09:18 +0000 (07:09 -0700)]
Merge pull request #518 from vmg/vmg/lua-usdt-2
[RFC] New USDT API
Vicent Marti [Fri, 6 May 2016 08:51:54 +0000 (10:51 +0200)]
cc: Use `unique_ptr` instead of `shared_ptr`
Vicent Marti [Wed, 4 May 2016 14:59:57 +0000 (16:59 +0200)]
cc: Style fixes
Vicent Marti [Wed, 4 May 2016 14:58:51 +0000 (16:58 +0200)]
cc: Better memory handling for USDT probes
Vicent Marti [Wed, 4 May 2016 11:01:55 +0000 (13:01 +0200)]
usdt: Implement `bpf_usdt_readarg` as frontend action
Vicent Marti [Sun, 1 May 2016 11:41:33 +0000 (13:41 +0200)]
cc: Style fixes
Vicent Marti [Sun, 1 May 2016 11:40:43 +0000 (13:40 +0200)]
lua: Fix tests
Vicent Marti [Sun, 1 May 2016 10:54:51 +0000 (12:54 +0200)]
lua: Implement "Hello world" USDT example
Vicent Marti [Sun, 1 May 2016 10:54:25 +0000 (12:54 +0200)]
lua: Implement an USDT helper
Vicent Marti [Sun, 1 May 2016 10:53:46 +0000 (12:53 +0200)]
cc: Wrap the USDT probe context in a C API
Vicent Marti [Sun, 1 May 2016 10:52:46 +0000 (12:52 +0200)]
cc: Implement `bcc_resolve_global_addr` helper
4ast [Thu, 5 May 2016 20:44:13 +0000 (13:44 -0700)]
Merge pull request #530 from iovisor/bblanco_dev
Add check for number of arguments
Brenden Blanco [Thu, 5 May 2016 19:05:07 +0000 (12:05 -0700)]
Fixup tplist and argdist for python3 compat
sys.exc_value and sys.exc_type should come from sys.exc_info()
Convert (decode) char* return values from C functions to a native python
str.
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Thu, 5 May 2016 18:37:59 +0000 (11:37 -0700)]
Add check for number of arguments
There are two problems here:
1. bcc is leaving the extra function parameters in the prototype, when
these really just serve as an annotation on the method being traced.
They aren't really passed into the function. LLVM lowering phase later
errors out on such functions.
2. bcc doesn't limit the size of the argument list, when currently it
just supports up to the number of arguments held in registers (6).
Fix 1. by rewriting the arguments out of the prototype and into the
preamble where they are currently being initialized.
Fix 2. by enforcing the limit and returning a more meaningful error
message.
Added a test case.
Extra fix included for string type on python3.
Fixes: #497
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
Brenden Blanco [Thu, 5 May 2016 15:36:22 +0000 (08:36 -0700)]
Merge pull request #529 from rnav/ptregs_helpers_v2
Introduce helpers to access pt_regs in an arch-independent manner
Naveen N. Rao [Tue, 3 May 2016 09:24:21 +0000 (14:54 +0530)]
cc: introduce helpers to access pt_regs in an arch-independent manner
Convert some of the examples and tools to use the new helpers.
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Brenden Blanco [Thu, 5 May 2016 06:20:37 +0000 (23:20 -0700)]
Merge pull request #528 from iovisor/bblanco_dev
fix llvm 3.9 build
Brenden Blanco [Thu, 5 May 2016 06:13:01 +0000 (23:13 -0700)]
fix llvm 3.9 build
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
4ast [Thu, 5 May 2016 00:19:49 +0000 (17:19 -0700)]
Merge pull request #524 from iovisor/luajit_header
Force lua main.c to include luajit headers
Brenden Blanco [Wed, 4 May 2016 06:49:37 +0000 (23:49 -0700)]
Force lua main.c to include luajit headers
On my system, when both lua and luajit are installed, multiple headers
exist in /usr/include. However, my lua installation is 5.3, which has
some api-breaking changes, which means that the standard lua.h must not
be included.
Simply force lua.h to come from luajit-2.0 directory.
4ast [Tue, 3 May 2016 16:49:57 +0000 (09:49 -0700)]
Merge pull request #523 from iovisor/bblanco_dev
Make style-check test non-blocking
Brenden Blanco [Tue, 3 May 2016 16:39:54 +0000 (09:39 -0700)]
Make style-check test non-blocking
Since the codebase is as of yet inconsistent, disable per-commit style
check enforcement.
This should be turned back on once the codebase style is consistent.
Brendan Gregg [Tue, 3 May 2016 16:18:23 +0000 (09:18 -0700)]
Merge pull request #521 from iovisor/bblanco_dev
Adjust pid filtering/display in runqlat
Brenden Blanco [Tue, 3 May 2016 06:32:44 +0000 (23:32 -0700)]
Adjust pid filtering/display in runqlat
The filtering and display of pids in the runqlat tool was not correct.
Internally, the kernel keeps pid and tgid, which correspond to thread-id
and user process-id, respectively. The runqlat tool was filtering and
displaying pid instead of tgid.
Change -P and -p options to filter by tgid, and add a new option to give
a breakdown by pid (thread-id).
Update the docs with the -L option.
4ast [Mon, 2 May 2016 15:46:58 +0000 (08:46 -0700)]
Merge pull request #519 from iovisor/bblanco_dev
Fixes for clang frontend bugs and misc
Brenden Blanco [Mon, 2 May 2016 15:34:47 +0000 (08:34 -0700)]
Merge branch 'master' into bblanco_dev
4ast [Mon, 2 May 2016 15:34:15 +0000 (08:34 -0700)]
Merge pull request #520 from rnav/powerpc-support-v2
Powerpc support v2
Naveen N. Rao [Fri, 29 Apr 2016 11:16:05 +0000 (16:46 +0530)]
tests: fix a few tests to use the right register on powerpc
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Naveen N. Rao [Fri, 29 Apr 2016 11:14:41 +0000 (16:44 +0530)]
tests: only test arch-specific symbols
__per_cpu_start has a different address on each architecture. Instead,
use a arch-unique symbol for the test.
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Naveen N. Rao [Fri, 29 Apr 2016 11:12:58 +0000 (16:42 +0530)]
cc: add powerpc support
Basic support for building on powerpc. Tested on ppc64le.
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Brenden Blanco [Mon, 2 May 2016 05:42:04 +0000 (22:42 -0700)]
Fix errors on python3
Brenden Blanco [Mon, 2 May 2016 04:31:16 +0000 (21:31 -0700)]
Use local key/leaf definition instead of bpf_tunnel_key
Even after fixing the nested union issue in the preceding commits, this
example was failing. The reason was that the kernel was filling in all
bits of the bpf_tunnel_key, which in recent kernels includes non-zero
fields such as ttl. That non-zero field would break the lookup in the
tunkey2if table, which was populated assuming all extra bytes would be
zero.
Fix it by defining a simpler key structure, and copy the required fields
out from the local variable.
Fixes: #510