Console Output
Skipping 343 KB..
Full Logmake[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 11%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf.c.o
[ 11%] Building C object src/cc/CMakeFiles/bpf-static.dir/perf_reader.c.o
[ 13%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf_errno.c.o
[ 13%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/bpf.c.o
[ 13%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf_probes.c.o
[ 16%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/netlink.c.o
[ 16%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/xsk.c.o
[ 19%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/btf_dump.c.o
[ 19%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/bpf_prog_linfo.c.o
[ 19%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/nlattr.c.o
[ 22%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/hashmap.c.o
[ 22%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/libbpf.c.o
[ 22%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/ringbuf.c.o
[ 25%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/btf.c.o
[ 25%] Building C object src/cc/CMakeFiles/bpf-static.dir/libbpf/src/str_error.c.o
[ 25%] Linking C static library libbcc_bpf.a
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 25%] Built target bpf-static
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
Scanning dependencies of target api-static
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 25%] Building CXX object src/cc/api/CMakeFiles/api-static.dir/BPF.cc.o
[ 25%] Building CXX object src/cc/api/CMakeFiles/api-static.dir/BPFTable.cc.o
[ 27%] Linking CXX static library libapi-static.a
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 27%] Built target api-static
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
Scanning dependencies of target usdt-static
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 27%] Building CXX object src/cc/usdt/CMakeFiles/usdt-static.dir/usdt_args.cc.o
[ 27%] Linking CXX static library libclang_frontend.a
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 27%] Built target clang_frontend
[ 27%] Building CXX object src/cc/usdt/CMakeFiles/usdt-static.dir/usdt.cc.o
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 27%] [FLEX][Lexer] Building scanner with flex 2.6.0
lexer.ll:110: warning, -s option given but default rule can be matched
[ 27%] [BISON][Parser] Building parser with bison 3.0.4
parser.yy:19.9-17: warning: deprecated directive, use ‘%define api.namespace ebpf::cc’ [-Wdeprecated]
%define namespace "ebpf::cc"
^^^^^^^^^
parser.yy:19.9-17: warning: %define variable 'api.namespace' requires '{...}' values [-Wdeprecated]
%define namespace "ebpf::cc"
^^^^^^^^^
parser.yy:20.9-25: warning: %define variable 'parser_class_name' requires '{...}' values [-Wdeprecated]
%define parser_class_name "BisonParser"
^^^^^^^^^^^^^^^^^
Scanning dependencies of target b_frontend
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 30%] Building CXX object src/cc/frontends/b/CMakeFiles/b_frontend.dir/loader.cc.o
[ 33%] Linking CXX static library libusdt-static.a
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 33%] Built target usdt-static
[ 33%] Building CXX object src/cc/frontends/b/CMakeFiles/b_frontend.dir/codegen_llvm.cc.o
[ 36%] Building CXX object src/cc/frontends/b/CMakeFiles/b_frontend.dir/node.cc.o
[ 36%] Building CXX object src/cc/frontends/b/CMakeFiles/b_frontend.dir/parser.cc.o
[ 36%] Building CXX object src/cc/frontends/b/CMakeFiles/b_frontend.dir/printer.cc.o
[ 38%] Building CXX object src/cc/frontends/b/CMakeFiles/b_frontend.dir/type_check.cc.o
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
Scanning dependencies of target usdt_test_lib
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 38%] Building C object tests/cc/CMakeFiles/usdt_test_lib.dir/usdt_test_lib.c.o
[ 41%] Linking C shared library libusdt_test_lib.so
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 41%] Built target usdt_test_lib
[ 41%] Building CXX object src/cc/frontends/b/CMakeFiles/b_frontend.dir/parser.yy.cc.o
[ 41%] Building CXX object src/cc/frontends/b/CMakeFiles/b_frontend.dir/lexer.ll.cc.o
/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/src/cc/frontends/b/lexer.ll.cc: In member function ‘virtual int ebpf::cc::Lexer::yylex()’:
/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/src/cc/frontends/b/lexer.ll.cc:764:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( yyl = 0; yyl < yyleng; ++yyl )
^
/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/src/cc/frontends/b/lexer.ll.cc: In member function ‘int ebpfccFlexLexer::yy_get_next_buffer()’:
/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/src/cc/frontends/b/lexer.ll.cc:1506:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
^
[ 44%] Linking CXX static library libb_frontend.a
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 44%] Built target b_frontend
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
Scanning dependencies of target bcc-shared
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
Scanning dependencies of target bcc-static
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 47%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/link_all.cc.o
[ 50%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/bcc_common.cc.o
[ 50%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/bcc_common.cc.o
[ 50%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/bpf_module.cc.o
[ 50%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/bpf_module.cc.o
[ 50%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/bcc_btf.cc.o
[ 52%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/bcc_btf.cc.o
[ 55%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/exported_files.cc.o
[ 55%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/exported_files.cc.o
[ 55%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/bpf_module_rw_engine.cc.o
[ 58%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/bpf_module_rw_engine.cc.o
[ 58%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/table_storage.cc.o
[ 58%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/table_storage.cc.o
[ 61%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/shared_table.cc.o
[ 61%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/shared_table.cc.o
[ 61%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/bpffs_table.cc.o
[ 63%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/bpffs_table.cc.o
[ 66%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/json_map_decl_visitor.cc.o
[ 66%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/json_map_decl_visitor.cc.o
[ 66%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/common.cc.o
[ 66%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/bcc_syms.cc.o
[ 66%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/usdt/usdt.cc.o
[ 69%] Building C object src/cc/CMakeFiles/bcc-shared.dir/bcc_elf.c.o
[ 69%] Building C object src/cc/CMakeFiles/bcc-shared.dir/bcc_perf_map.c.o
[ 69%] Building C object src/cc/CMakeFiles/bcc-shared.dir/bcc_proc.c.o
[ 72%] Building CXX object src/cc/CMakeFiles/bcc-shared.dir/common.cc.o
[ 75%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/usdt/usdt_args.cc.o
[ 75%] Linking CXX shared library libbcc.so
[ 75%] Building CXX object src/cc/CMakeFiles/bcc-static.dir/bcc_syms.cc.o
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 75%] Built target bcc-shared
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
Scanning dependencies of target test_libbcc
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 75%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_libbcc.cc.o
[ 75%] Building C object src/cc/CMakeFiles/bcc-static.dir/bcc_elf.c.o
[ 77%] Building C object src/cc/CMakeFiles/bcc-static.dir/bcc_perf_map.c.o
[ 77%] Building C object src/cc/CMakeFiles/bcc-static.dir/bcc_proc.c.o
[ 77%] Linking CXX static library libbcc.a
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 77%] Built target bcc-static
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
Scanning dependencies of target test_static
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make[2]: Entering directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 77%] Building C object tests/cc/CMakeFiles/test_static.dir/test_static.c.o
[ 80%] Linking CXX executable test_static
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[ 80%] Built target test_static
[ 83%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_c_api.cc.o
[ 83%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_array_table.cc.o
[ 83%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_bpf_table.cc.o
[ 86%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_cg_storage.cc.o
[ 86%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_hash_table.cc.o
[ 88%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_map_in_map.cc.o
[ 88%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_perf_event.cc.o
[ 88%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_pinned_table.cc.o
[ 91%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_prog_table.cc.o
[ 91%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_queuestack_table.cc.o
[ 91%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_shared_table.cc.o
[ 94%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_sk_storage.cc.o
[ 94%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_sock_table.cc.o
[ 94%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_usdt_args.cc.o
[ 97%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_usdt_probes.cc.o
[ 97%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/utils.cc.o
[100%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_parse_tracepoint.cc.o
[100%] Linking CXX executable test_libbcc
make[2]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
[100%] Built target test_libbcc
make[1]: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build'
make: Leaving directory '/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/cc'
+ ctest -V -D ExperimentalTest --no-compress-output
UpdateCTestConfiguration from :/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/DartConfiguration.tcl
Cannot find file: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/DartConfiguration.tcl
Site:
Build name: (empty)
Create new tag: 20200715-1611 - Experimental
UpdateCTestConfiguration from :/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/DartConfiguration.tcl
Cannot find file: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/DartConfiguration.tcl
Test project /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build
Constructing a list of tests
Checking test dependency graph...
Checking test dependency graph end
test 1
Start 1: style-check
1: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/scripts/c-style-check.sh
1: Test timeout computed to be: 9.99988e+06
1: diff --git a/libbpf-tools/map_helpers.c b/libbpf-tools/map_helpers.c
1: index 5b562a2..bc685f3 100644
1: --- a/libbpf-tools/map_helpers.c
1: +++ b/libbpf-tools/map_helpers.c
1: @@ -1,8 +1,8 @@
1: // SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
1: // Copyright (c) 2020 Anton Protopopov
1: -#include <stdlib.h>
1: -#include <stdio.h>
1: #include <errno.h>
1: +#include <stdio.h>
1: +#include <stdlib.h>
1:
1: #include "map_helpers.h"
1:
1: @@ -10,97 +10,86 @@
1:
1: static bool batch_map_ops = true; /* hope for the best */
1:
1: -static int
1: -dump_hash_iter(int map_fd, void *keys, __u32 key_size,
1: - void *values, __u32 value_size, __u32 *count,
1: - void *invalid_key)
1: -{
1: - __u8 key[key_size], next_key[key_size];
1: - __u32 n = 0;
1: - int err;
1: -
1: - /* First get keys */
1: - __builtin_memcpy(key, invalid_key, key_size);
1: - while (n < *count) {
1: - err = bpf_map_get_next_key(map_fd, key, next_key);
1: - if (err && errno != ENOENT) {
1: - return -1;
1: - } else if (err) {
1: - break;
1: - }
1: - __builtin_memcpy(key, next_key, key_size);
1: - __builtin_memcpy(keys + key_size * n, next_key, key_size);
1: - n++;
1: - }
1: -
1: - /* Now read values */
1: - for (int i = 0; i < n; i++) {
1: - err = bpf_map_lookup_elem(map_fd, keys + key_size * i,
1: - values + value_size * i);
1: - if (err)
1: - return -1;
1: - }
1: -
1: - *count = n;
1: - return 0;
1: +static int dump_hash_iter(int map_fd, void *keys, __u32 key_size, void *values,
1: + __u32 value_size, __u32 *count, void *invalid_key) {
1: + __u8 key[key_size], next_key[key_size];
1: + __u32 n = 0;
1: + int err;
1: +
1: + /* First get keys */
1: + __builtin_memcpy(key, invalid_key, key_size);
1: + while (n < *count) {
1: + err = bpf_map_get_next_key(map_fd, key, next_key);
1: + if (err && errno != ENOENT) {
1: + return -1;
1: + } else if (err) {
1: + break;
1: + }
1: + __builtin_memcpy(key, next_key, key_size);
1: + __builtin_memcpy(keys + key_size * n, next_key, key_size);
1: + n++;
1: + }
1: +
1: + /* Now read values */
1: + for (int i = 0; i < n; i++) {
1: + err = bpf_map_lookup_elem(map_fd, keys + key_size * i,
1: + values + value_size * i);
1: + if (err)
1: + return -1;
1: + }
1: +
1: + *count = n;
1: + return 0;
1: }
1:
1: -static int
1: -dump_hash_batch(int map_fd, void *keys, __u32 key_size,
1: - void *values, __u32 value_size, __u32 *count)
1: -{
1: - void *in = NULL, *out;
1: - __u32 n, n_read = 0;
1: - int err = 0;
1: -
1: - while (n_read < *count && !err) {
1: - n = *count - n_read;
1: - err = bpf_map_lookup_batch(map_fd, &in, &out,
1: - keys + n_read * key_size,
1: - values + n_read * value_size,
1: - &n, NULL);
1: - if (err && errno != ENOENT) {
1: - return -1;
1: - }
1: - n_read += n;
1: - in = out;
1: - }
1: -
1: - *count = n_read;
1: - return 0;
1: +static int dump_hash_batch(int map_fd, void *keys, __u32 key_size, void *values,
1: + __u32 value_size, __u32 *count) {
1: + void *in = NULL, *out;
1: + __u32 n, n_read = 0;
1: + int err = 0;
1: +
1: + while (n_read < *count && !err) {
1: + n = *count - n_read;
1: + err = bpf_map_lookup_batch(map_fd, &in, &out, keys + n_read * key_size,
1: + values + n_read * value_size, &n, NULL);
1: + if (err && errno != ENOENT) {
1: + return -1;
1: + }
1: + n_read += n;
1: + in = out;
1: + }
1: +
1: + *count = n_read;
1: + return 0;
1: }
1:
1: -int dump_hash(int map_fd,
1: - void *keys, __u32 key_size,
1: - void *values, __u32 value_size,
1: - __u32 *count, void *invalid_key)
1: -{
1: - int err;
1: -
1: - if (!keys || !values || !count || !key_size || !value_size) {
1: - errno = EINVAL;
1: - return -1;
1: - }
1: -
1: - if (batch_map_ops) {
1: - err = dump_hash_batch(map_fd, keys, key_size,
1: - values, value_size, count);
1: - if (err) {
1: - if (errno != EINVAL) {
1: - return -1;
1: -
1: - /* assume that batch operations are not
1: - * supported and try non-batch mode */
1: - batch_map_ops = false;
1: - }
1: - }
1: - }
1: -
1: - if (!invalid_key) {
1: - errno = EINVAL;
1: - return -1;
1: - }
1: -
1: - return dump_hash_iter(map_fd, keys, key_size,
1: - values, value_size, count, invalid_key);
1: +int dump_hash(int map_fd, void *keys, __u32 key_size, void *values,
1: + __u32 value_size, __u32 *count, void *invalid_key) {
1: + int err;
1: +
1: + if (!keys || !values || !count || !key_size || !value_size) {
1: + errno = EINVAL;
1: + return -1;
1: + }
1: +
1: + if (batch_map_ops) {
1: + err = dump_hash_batch(map_fd, keys, key_size, values, value_size, count);
1: + if (err) {
1: + if (errno != EINVAL) {
1: + return -1;
1: +
1: + /* assume that batch operations are not
1: + * supported and try non-batch mode */
1: + batch_map_ops = false;
1: + }
1: + }
1: + }
1: +
1: + if (!invalid_key) {
1: + errno = EINVAL;
1: + return -1;
1: + }
1: +
1: + return dump_hash_iter(map_fd, keys, key_size, values, value_size, count,
1: + invalid_key);
1: }
1: diff --git a/libbpf-tools/map_helpers.h b/libbpf-tools/map_helpers.h
1: index 2d5cb02..1cb31ac 100644
1: --- a/libbpf-tools/map_helpers.h
1: +++ b/libbpf-tools/map_helpers.h
1: @@ -5,7 +5,7 @@
1:
1: #include <bpf/bpf.h>
1:
1: -int dump_hash(int map_fd, void *keys, __u32 key_size,
1: - void *values, __u32 value_size, __u32 *count, void *invalid_key);
1: +int dump_hash(int map_fd, void *keys, __u32 key_size, void *values,
1: + __u32 value_size, __u32 *count, void *invalid_key);
1:
1: #endif /* __MAP_HELPERS_H */
1: diff --git a/libbpf-tools/maps.bpf.h b/libbpf-tools/maps.bpf.h
1: index 5e43d27..dbe2daa 100644
1: --- a/libbpf-tools/maps.bpf.h
1: +++ b/libbpf-tools/maps.bpf.h
1: @@ -6,21 +6,21 @@
1: #include <bpf/bpf_helpers.h>
1: #include <errno.h>
1:
1: -static __always_inline void *
1: -bpf_map_lookup_or_try_init(void *map, const void *key, const void *init)
1: -{
1: - void *val;
1: - long err;
1: +static __always_inline void *bpf_map_lookup_or_try_init(void *map,
1: + const void *key,
1: + const void *init) {
1: + void *val;
1: + long err;
1:
1: - val = bpf_map_lookup_elem(map, key);
1: - if (val)
1: - return val;
1: + val = bpf_map_lookup_elem(map, key);
1: + if (val)
1: + return val;
1:
1: - err = bpf_map_update_elem(map, key, init, BPF_NOEXIST);
1: - if (err && err != -EEXIST)
1: - return 0;
1: + err = bpf_map_update_elem(map, key, init, BPF_NOEXIST);
1: + if (err && err != -EEXIST)
1: + return 0;
1:
1: - return bpf_map_lookup_elem(map, key);
1: + return bpf_map_lookup_elem(map, key);
1: }
1:
1: #endif /* __MAPS_BPF_H */
1: diff --git a/libbpf-tools/syscount.bpf.c b/libbpf-tools/syscount.bpf.c
1: index 98b77ef..bbde518 100644
1: --- a/libbpf-tools/syscount.bpf.c
1: +++ b/libbpf-tools/syscount.bpf.c
1: @@ -2,12 +2,12 @@
1: // Copyright (c) 2020 Anton Protopopov
1: //
1: // Based on syscount(8) from BCC by Sasha Goldshtein
1: -#include "vmlinux.h"
1: +#include "syscount.h"
1: +#include <bpf/bpf_core_read.h>
1: #include <bpf/bpf_helpers.h>
1: #include <bpf/bpf_tracing.h>
1: -#include <bpf/bpf_core_read.h>
1: -#include "syscount.h"
1: #include "maps.bpf.h"
1: +#include "vmlinux.h"
1:
1: const volatile bool count_by_process = false;
1: const volatile bool measure_latency = false;
1: diff --git a/libbpf-tools/syscount.c b/libbpf-tools/syscount.c
1: index 3ccf7ab..59bf5eb 100644
1: --- a/libbpf-tools/syscount.c
1: +++ b/libbpf-tools/syscount.c
1: @@ -434,8 +434,8 @@ int main(int argc, char **argv)
1: }
1:
1: if (signal(SIGINT, sig_int) == SIG_ERR) {
1: - warn("can't set signal handler: %s\n", strerror(errno));
1: - goto cleanup_obj;
1: + warn("can't set signal handler: %s\n", strerror(errno));
1: + goto cleanup_obj;
1: }
1:
1: compar = env.latency ? compar_latency : compar_count;
1: diff --git a/libbpf-tools/tcpconnect.bpf.c b/libbpf-tools/tcpconnect.bpf.c
1: index 734f529..d5eabae 100644
1: --- a/libbpf-tools/tcpconnect.bpf.c
1: +++ b/libbpf-tools/tcpconnect.bpf.c
1: @@ -4,8 +4,8 @@
1: // Based on tcpconnect(8) from BCC by Brendan Gregg
1: #include "vmlinux.h"
1:
1: -#include <bpf/bpf_helpers.h>
1: #include <bpf/bpf_core_read.h>
1: +#include <bpf/bpf_helpers.h>
1: #include <bpf/bpf_tracing.h>
1:
1: #include "maps.bpf.h"
1: @@ -18,201 +18,187 @@ const volatile pid_t filter_pid;
1: const volatile uid_t filter_uid = -1;
1:
1: /* Define here, because there are conflicts with include files */
1: -#define AF_INET 2
1: -#define AF_INET6 10
1: +#define AF_INET 2
1: +#define AF_INET6 10
1:
1: struct {
1: - __uint(type, BPF_MAP_TYPE_HASH);
1: - __uint(max_entries, MAX_ENTRIES);
1: - __type(key, u32);
1: - __type(value, struct sock *);
1: - __uint(map_flags, BPF_F_NO_PREALLOC);
1: + __uint(type, BPF_MAP_TYPE_HASH);
1: + __uint(max_entries, MAX_ENTRIES);
1: + __type(key, u32);
1: + __type(value, struct sock *);
1: + __uint(map_flags, BPF_F_NO_PREALLOC);
1: } sockets SEC(".maps");
1:
1: struct {
1: - __uint(type, BPF_MAP_TYPE_HASH);
1: - __uint(max_entries, MAX_ENTRIES);
1: - __type(key, struct ipv4_flow_key);
1: - __type(value, u64);
1: - __uint(map_flags, BPF_F_NO_PREALLOC);
1: + __uint(type, BPF_MAP_TYPE_HASH);
1: + __uint(max_entries, MAX_ENTRIES);
1: + __type(key, struct ipv4_flow_key);
1: + __type(value, u64);
1: + __uint(map_flags, BPF_F_NO_PREALLOC);
1: } ipv4_count SEC(".maps");
1:
1: struct {
1: - __uint(type, BPF_MAP_TYPE_HASH);
1: - __uint(max_entries, MAX_ENTRIES);
1: - __type(key, struct ipv6_flow_key);
1: - __type(value, u64);
1: - __uint(map_flags, BPF_F_NO_PREALLOC);
1: + __uint(type, BPF_MAP_TYPE_HASH);
1: + __uint(max_entries, MAX_ENTRIES);
1: + __type(key, struct ipv6_flow_key);
1: + __type(value, u64);
1: + __uint(map_flags, BPF_F_NO_PREALLOC);
1: } ipv6_count SEC(".maps");
1:
1: struct {
1: - __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
1: - __uint(key_size, sizeof(u32));
1: - __uint(value_size, sizeof(u32));
1: + __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
1: + __uint(key_size, sizeof(u32));
1: + __uint(value_size, sizeof(u32));
1: } events SEC(".maps");
1:
1: -static __always_inline bool filter_port(__u16 port)
1: -{
1: - if (filter_ports_len == 0)
1: - return false;
1: +static __always_inline bool filter_port(__u16 port) {
1: + if (filter_ports_len == 0)
1: + return false;
1:
1: - for (int i = 0; i < filter_ports_len; i++) {
1: - if (port == filter_ports[i])
1: - return false;
1: - }
1: - return true;
1: + for (int i = 0; i < filter_ports_len; i++) {
1: + if (port == filter_ports[i])
1: + return false;
1: + }
1: + return true;
1: }
1:
1: -static __always_inline int
1: -enter_tcp_connect(struct pt_regs *ctx, struct sock *sk)
1: -{
1: - __u64 pid_tgid = bpf_get_current_pid_tgid();
1: - __u32 pid = pid_tgid >> 32;
1: - __u32 tid = pid_tgid;
1: - __u32 uid;
1: +static __always_inline int enter_tcp_connect(struct pt_regs *ctx,
1: + struct sock *sk) {
1: + __u64 pid_tgid = bpf_get_current_pid_tgid();
1: + __u32 pid = pid_tgid >> 32;
1: + __u32 tid = pid_tgid;
1: + __u32 uid;
1:
1: - if (filter_pid && pid != filter_pid)
1: - return 0;
1: + if (filter_pid && pid != filter_pid)
1: + return 0;
1:
1: - uid = bpf_get_current_uid_gid();
1: - if (filter_uid != (uid_t) -1 && uid != filter_uid)
1: - return 0;
1: + uid = bpf_get_current_uid_gid();
1: + if (filter_uid != (uid_t)-1 && uid != filter_uid)
1: + return 0;
1:
1: - bpf_map_update_elem(&sockets, &tid, &sk, 0);
1: - return 0;
1: + bpf_map_update_elem(&sockets, &tid, &sk, 0);
1: + return 0;
1: }
1:
1: -static __always_inline void count_v4(struct sock *sk, __u16 dport)
1: -{
1: - struct ipv4_flow_key key = {};
1: - static __u64 zero;
1: - __u64 *val;
1: -
1: - BPF_CORE_READ_INTO(&key.saddr, sk, __sk_common.skc_rcv_saddr);
1: - BPF_CORE_READ_INTO(&key.daddr, sk, __sk_common.skc_daddr);
1: - key.dport = dport;
1: - val = bpf_map_lookup_or_try_init(&ipv4_count, &key, &zero);
1: - if (val)
1: - __atomic_add_fetch(val, 1, __ATOMIC_RELAXED);
1: +static __always_inline void count_v4(struct sock *sk, __u16 dport) {
1: + struct ipv4_flow_key key = {};
1: + static __u64 zero;
1: + __u64 *val;
1: +
1: + BPF_CORE_READ_INTO(&key.saddr, sk, __sk_common.skc_rcv_saddr);
1: + BPF_CORE_READ_INTO(&key.daddr, sk, __sk_common.skc_daddr);
1: + key.dport = dport;
1: + val = bpf_map_lookup_or_try_init(&ipv4_count, &key, &zero);
1: + if (val)
1: + __atomic_add_fetch(val, 1, __ATOMIC_RELAXED);
1: }
1:
1: -static __always_inline void count_v6(struct sock *sk, __u16 dport)
1: -{
1: - struct ipv6_flow_key key = {};
1: - static const __u64 zero;
1: - __u64 *val;
1: -
1: - BPF_CORE_READ_INTO(&key.saddr, sk,
1: - __sk_common.skc_v6_rcv_saddr.in6_u.u6_addr32);
1: - BPF_CORE_READ_INTO(&key.daddr, sk,
1: - __sk_common.skc_v6_daddr.in6_u.u6_addr32);
1: - key.dport = dport;
1: -
1: - val = bpf_map_lookup_or_try_init(&ipv6_count, &key, &zero);
1: - if (val)
1: - __atomic_add_fetch(val, 1, __ATOMIC_RELAXED);
1: +static __always_inline void count_v6(struct sock *sk, __u16 dport) {
1: + struct ipv6_flow_key key = {};
1: + static const __u64 zero;
1: + __u64 *val;
1: +
1: + BPF_CORE_READ_INTO(&key.saddr, sk,
1: + __sk_common.skc_v6_rcv_saddr.in6_u.u6_addr32);
1: + BPF_CORE_READ_INTO(&key.daddr, sk, __sk_common.skc_v6_daddr.in6_u.u6_addr32);
1: + key.dport = dport;
1: +
1: + val = bpf_map_lookup_or_try_init(&ipv6_count, &key, &zero);
1: + if (val)
1: + __atomic_add_fetch(val, 1, __ATOMIC_RELAXED);
1: }
1:
1: -static __always_inline void
1: -trace_v4(struct pt_regs *ctx, pid_t pid, struct sock *sk, __u16 dport)
1: -{
1: - struct event event = {};
1: -
1: - event.af = AF_INET;
1: - event.pid = pid;
1: - event.uid = bpf_get_current_uid_gid();
1: - event.ts_us = bpf_ktime_get_ns() / 1000;
1: - BPF_CORE_READ_INTO(&event.saddr_v4, sk, __sk_common.skc_rcv_saddr);
1: - BPF_CORE_READ_INTO(&event.daddr_v4, sk, __sk_common.skc_daddr);
1: - event.dport = dport;
1: - bpf_get_current_comm(event.task, sizeof(event.task));
1: -
1: - bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU,
1: - &event, sizeof(event));
1: +static __always_inline void trace_v4(struct pt_regs *ctx, pid_t pid,
1: + struct sock *sk, __u16 dport) {
1: + struct event event = {};
1: +
1: + event.af = AF_INET;
1: + event.pid = pid;
1: + event.uid = bpf_get_current_uid_gid();
1: + event.ts_us = bpf_ktime_get_ns() / 1000;
1: + BPF_CORE_READ_INTO(&event.saddr_v4, sk, __sk_common.skc_rcv_saddr);
1: + BPF_CORE_READ_INTO(&event.daddr_v4, sk, __sk_common.skc_daddr);
1: + event.dport = dport;
1: + bpf_get_current_comm(event.task, sizeof(event.task));
1: +
1: + bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &event, sizeof(event));
1: }
1:
1: -static __always_inline void
1: -trace_v6(struct pt_regs *ctx, pid_t pid, struct sock *sk, __u16 dport)
1: -{
1: - struct event event = {};
1: -
1: - event.af = AF_INET6;
1: - event.pid = pid;
1: - event.uid = bpf_get_current_uid_gid();
1: - event.ts_us = bpf_ktime_get_ns() / 1000;
1: - BPF_CORE_READ_INTO(&event.saddr_v6, sk,
1: - __sk_common.skc_v6_rcv_saddr.in6_u.u6_addr32);
1: - BPF_CORE_READ_INTO(&event.daddr_v6, sk,
1: - __sk_common.skc_v6_daddr.in6_u.u6_addr32);
1: - event.dport = dport;
1: - bpf_get_current_comm(event.task, sizeof(event.task));
1: -
1: - bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU,
1: - &event, sizeof(event));
1: +static __always_inline void trace_v6(struct pt_regs *ctx, pid_t pid,
1: + struct sock *sk, __u16 dport) {
1: + struct event event = {};
1: +
1: + event.af = AF_INET6;
1: + event.pid = pid;
1: + event.uid = bpf_get_current_uid_gid();
1: + event.ts_us = bpf_ktime_get_ns() / 1000;
1: + BPF_CORE_READ_INTO(&event.saddr_v6, sk,
1: + __sk_common.skc_v6_rcv_saddr.in6_u.u6_addr32);
1: + BPF_CORE_READ_INTO(&event.daddr_v6, sk,
1: + __sk_common.skc_v6_daddr.in6_u.u6_addr32);
1: + event.dport = dport;
1: + bpf_get_current_comm(event.task, sizeof(event.task));
1: +
1: + bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &event, sizeof(event));
1: }
1:
1: -static __always_inline int
1: -exit_tcp_connect(struct pt_regs *ctx, int ret, int ip_ver)
1: -{
1: - __u64 pid_tgid = bpf_get_current_pid_tgid();
1: - __u32 pid = pid_tgid >> 32;
1: - __u32 tid = pid_tgid;
1: - struct sock **skpp;
1: - struct sock *sk;
1: - __u16 dport;
1: -
1: - skpp = bpf_map_lookup_elem(&sockets, &tid);
1: - if (!skpp)
1: - return 0;
1: -
1: - if (ret)
1: - goto end;
1: -
1: - sk = *skpp;
1: -
1: - BPF_CORE_READ_INTO(&dport, sk, __sk_common.skc_dport);
1: - if (filter_port(dport))
1: - goto end;
1: -
1: - if (do_count) {
1: - if (ip_ver == 4)
1: - count_v4(sk, dport);
1: - else
1: - count_v6(sk, dport);
1: - } else {
1: - if (ip_ver == 4)
1: - trace_v4(ctx, pid, sk, dport);
1: - else
1: - trace_v6(ctx, pid, sk, dport);
1: - }
1: +static __always_inline int exit_tcp_connect(struct pt_regs *ctx, int ret,
1: + int ip_ver) {
1: + __u64 pid_tgid = bpf_get_current_pid_tgid();
1: + __u32 pid = pid_tgid >> 32;
1: + __u32 tid = pid_tgid;
1: + struct sock **skpp;
1: + struct sock *sk;
1: + __u16 dport;
1: +
1: + skpp = bpf_map_lookup_elem(&sockets, &tid);
1: + if (!skpp)
1: + return 0;
1: +
1: + if (ret)
1: + goto end;
1: +
1: + sk = *skpp;
1: +
1: + BPF_CORE_READ_INTO(&dport, sk, __sk_common.skc_dport);
1: + if (filter_port(dport))
1: + goto end;
1: +
1: + if (do_count) {
1: + if (ip_ver == 4)
1: + count_v4(sk, dport);
1: + else
1: + count_v6(sk, dport);
1: + } else {
1: + if (ip_ver == 4)
1: + trace_v4(ctx, pid, sk, dport);
1: + else
1: + trace_v6(ctx, pid, sk, dport);
1: + }
1:
1: end:
1: - bpf_map_delete_elem(&sockets, &tid);
1: - return 0;
1: + bpf_map_delete_elem(&sockets, &tid);
1: + return 0;
1: }
1:
1: SEC("kprobe/tcp_v4_connect")
1: -int BPF_KPROBE(kprobe__tcp_v4_connect, struct sock *sk)
1: -{
1: - return enter_tcp_connect(ctx, sk);
1: +int BPF_KPROBE(kprobe__tcp_v4_connect, struct sock *sk) {
1: + return enter_tcp_connect(ctx, sk);
1: }
1:
1: SEC("kretprobe/tcp_v4_connect")
1: -int BPF_KRETPROBE(kretprobe__tcp_v4_connect, int ret)
1: -{
1: - return exit_tcp_connect(ctx, ret, 4);
1: +int BPF_KRETPROBE(kretprobe__tcp_v4_connect, int ret) {
1: + return exit_tcp_connect(ctx, ret, 4);
1: }
1:
1: SEC("kprobe/tcp_v6_connect")
1: -int BPF_KPROBE(kprobe__tcp_v6_connect, struct sock *sk)
1: -{
1: - return enter_tcp_connect(ctx, sk);
1: +int BPF_KPROBE(kprobe__tcp_v6_connect, struct sock *sk) {
1: + return enter_tcp_connect(ctx, sk);
1: }
1:
1: SEC("kretprobe/tcp_v6_connect")
1: -int BPF_KRETPROBE(kretprobe__tcp_v6_connect, int ret)
1: -{
1: - return exit_tcp_connect(ctx, ret, 6);
1: +int BPF_KRETPROBE(kretprobe__tcp_v6_connect, int ret) {
1: + return exit_tcp_connect(ctx, ret, 6);
1: }
1:
1: char LICENSE[] SEC("license") = "GPL";
1: diff --git a/libbpf-tools/tcpconnect.c b/libbpf-tools/tcpconnect.c
1: index fde6440..d679b65 100644
1: --- a/libbpf-tools/tcpconnect.c
1: +++ b/libbpf-tools/tcpconnect.c
1: @@ -2,420 +2,400 @@
1: // Copyright (c) 2020 Anton Protopopov
1: //
1: // Based on tcpconnect(8) from BCC by Brendan Gregg
1: -#include <sys/resource.h>
1: -#include <arpa/inet.h>
1: +#include "tcpconnect.h"
1: #include <argp.h>
1: -#include <signal.h>
1: +#include <arpa/inet.h>
1: +#include <bpf/bpf.h>
1: #include <limits.h>
1: -#include <unistd.h>
1: +#include <signal.h>
1: +#include <sys/resource.h>
1: #include <time.h>
1: -#include <bpf/bpf.h>
1: -#include "tcpconnect.h"
1: +#include <unistd.h>
1: +#include "map_helpers.h"
1: #include "tcpconnect.skel.h"
1: #include "trace_helpers.h"
1: -#include "map_helpers.h"
1:
1: #define warn(...) fprintf(stderr, __VA_ARGS__)
1:
1: const char *argp_program_version = "tcpconnect 0.1";
1: const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
1: static const char argp_program_doc[] =
1: - "\ntcpconnect: Count/Trace active tcp connections\n"
1: - "\n"
1: - "EXAMPLES:\n"
1: - " tcpconnect # trace all TCP connect()s\n"
1: - " tcpconnect -t # include timestamps\n"
1: - " tcpconnect -p 181 # only trace PID 181\n"
1: - " tcpconnect -P 80 # only trace port 80\n"
1: - " tcpconnect -P 80,81 # only trace port 80 and 81\n"
1: - " tcpconnect -U # include UID\n"
1: - " tcpconnect -u 1000 # only trace UID 1000\n"
1: - " tcpconnect -c # count connects per src, dest, port\n"
1: - " tcpconnect --C mappath # only trace cgroups in the map\n"
1: - " tcpconnect --M mappath # only trace mount namespaces in the map\n"
1: - ;
1: -
1: -static int get_int(const char *arg, int *ret, int min, int max)
1: -{
1: - char *end;
1: - long val;
1: -
1: - errno = 0;
1: - val = strtol(arg, &end, 10);
1: - if (errno) {
1: - warn("strtol: %s: %s\n", arg, strerror(errno));
1: - return -1;
1: - } else if (end == arg || val < min || val > max) {
1: - return -1;
1: - }
1: - if (ret)
1: - *ret = val;
1: - return 0;
1: + "\ntcpconnect: Count/Trace active tcp connections\n"
1: + "\n"
1: + "EXAMPLES:\n"
1: + " tcpconnect # trace all TCP connect()s\n"
1: + " tcpconnect -t # include timestamps\n"
1: + " tcpconnect -p 181 # only trace PID 181\n"
1: + " tcpconnect -P 80 # only trace port 80\n"
1: + " tcpconnect -P 80,81 # only trace port 80 and 81\n"
1: + " tcpconnect -U # include UID\n"
1: + " tcpconnect -u 1000 # only trace UID 1000\n"
1: + " tcpconnect -c # count connects per src, dest, port\n"
1: + " tcpconnect --C mappath # only trace cgroups in the map\n"
1: + " tcpconnect --M mappath # only trace mount namespaces in the map\n";
1: +
1: +static int get_int(const char *arg, int *ret, int min, int max) {
1: + char *end;
1: + long val;
1: +
1: + errno = 0;
1: + val = strtol(arg, &end, 10);
1: + if (errno) {
1: + warn("strtol: %s: %s\n", arg, strerror(errno));
1: + return -1;
1: + } else if (end == arg || val < min || val > max) {
1: + return -1;
1: + }
1: + if (ret)
1: + *ret = val;
1: + return 0;
1: }
1:
1: -static int get_ints(const char *arg, int *size, int *ret, int min, int max)
1: -{
1: - const char *argp = arg;
1: - int max_size = *size;
1: - int sz = 0;
1: - char *end;
1: - long val;
1: -
1: - while (sz < max_size) {
1: - errno = 0;
1: - val = strtol(argp, &end, 10);
1: - if (errno) {
1: - warn("strtol: %s: %s\n", arg, strerror(errno));
1: - return -1;
1: - } else if (end == arg || val < min || val > max) {
1: - return -1;
1: - }
1: - ret[sz++] = val;
1: - if (*end == 0)
1: - break;
1: - argp = end + 1;
1: - }
1: -
1: - *size = sz;
1: - return 0;
1: +static int get_ints(const char *arg, int *size, int *ret, int min, int max) {
1: + const char *argp = arg;
1: + int max_size = *size;
1: + int sz = 0;
1: + char *end;
1: + long val;
1: +
1: + while (sz < max_size) {
1: + errno = 0;
1: + val = strtol(argp, &end, 10);
1: + if (errno) {
1: + warn("strtol: %s: %s\n", arg, strerror(errno));
1: + return -1;
1: + } else if (end == arg || val < min || val > max) {
1: + return -1;
1: + }
1: + ret[sz++] = val;
1: + if (*end == 0)
1: + break;
1: + argp = end + 1;
1: + }
1: +
1: + *size = sz;
1: + return 0;
1: }
1:
1: -static int get_uint(const char *arg, unsigned int *ret,
1: - unsigned int min, unsigned int max)
1: -{
1: - char *end;
1: - long val;
1: -
1: - errno = 0;
1: - val = strtoul(arg, &end, 10);
1: - if (errno) {
1: - warn("strtoul: %s: %s\n", arg, strerror(errno));
1: - return -1;
1: - } else if (end == arg || val < min || val > max) {
1: - return -1;
1: - }
1: - if (ret)
1: - *ret = val;
1: - return 0;
1: +static int get_uint(const char *arg, unsigned int *ret, unsigned int min,
1: + unsigned int max) {
1: + char *end;
1: + long val;
1: +
1: + errno = 0;
1: + val = strtoul(arg, &end, 10);
1: + if (errno) {
1: + warn("strtoul: %s: %s\n", arg, strerror(errno));
1: + return -1;
1: + } else if (end == arg || val < min || val > max) {
1: + return -1;
1: + }
1: + if (ret)
1: + *ret = val;
1: + return 0;
1: }
1:
1: static const struct argp_option opts[] = {
1: - { "verbose", 'v', NULL, 0, "Verbose debug output" },
1: - { "timestamp", 't', NULL, 0, "Include timestamp on output" },
1: - { "count", 'c', NULL, 0, "Count connects per src ip and dst ip/port" },
1: - { "print-uid", 'U', NULL, 0, "Include UID on output" },
1: - { "pid", 'p', "PID", 0, "Process PID to trace" },
1: - { "uid", 'u', "UID", 0, "Process UID to trace" },
1: - { "port", 'P', "PORTS", 0,
1: - "Comma-separated list of destination ports to trace" },
1: - { "cgroupmap", 'C', "PATH", 0, "trace cgroups in this map" },
1: - { "mntnsmap", 'M', "PATH", 0, "trace mount namespaces in this map" },
1: - {},
1: + {"verbose", 'v', NULL, 0, "Verbose debug output"},
1: + {"timestamp", 't', NULL, 0, "Include timestamp on output"},
1: + {"count", 'c', NULL, 0, "Count connects per src ip and dst ip/port"},
1: + {"print-uid", 'U', NULL, 0, "Include UID on output"},
1: + {"pid", 'p', "PID", 0, "Process PID to trace"},
1: + {"uid", 'u', "UID", 0, "Process UID to trace"},
1: + {"port", 'P', "PORTS", 0,
1: + "Comma-separated list of destination ports to trace"},
1: + {"cgroupmap", 'C', "PATH", 0, "trace cgroups in this map"},
1: + {"mntnsmap", 'M', "PATH", 0, "trace mount namespaces in this map"},
1: + {},
1: };
1:
1: static struct env {
1: - bool verbose;
1: - bool count;
1: - bool print_timestamp;
1: - bool print_uid;
1: - pid_t pid;
1: - uid_t uid;
1: - int nports;
1: - int ports[MAX_PORTS];
1: + bool verbose;
1: + bool count;
1: + bool print_timestamp;
1: + bool print_uid;
1: + pid_t pid;
1: + uid_t uid;
1: + int nports;
1: + int ports[MAX_PORTS];
1: } env = {
1: - .uid = (uid_t) -1,
1: + .uid = (uid_t)-1,
1: };
1:
1: -static error_t parse_arg(int key, char *arg, struct argp_state *state)
1: -{
1: - int err;
1: - int nports;
1: -
1: - switch (key) {
1: - case 'v':
1: - env.verbose = true;
1: - break;
1: - case 'c':
1: - env.count = true;
1: - break;
1: - case 't':
1: - env.print_timestamp = true;
1: - break;
1: - case 'U':
1: - env.print_uid = true;
1: - break;
1: - case 'p':
1: - err = get_int(arg, &env.pid, 1, INT_MAX);
1: - if (err) {
1: - warn("invalid PID: %s\n", arg);
1: - argp_usage(state);
1: - }
1: - break;
1: - case 'u':
1: - err = get_uint(arg, &env.uid, 0, (uid_t) -2);
1: - if (err) {
1: - warn("invalid UID: %s\n", arg);
1: - argp_usage(state);
1: - }
1: - break;
1: - case 'P':
1: - nports = MAX_PORTS;
1: - err = get_ints(arg, &nports, env.ports, 1, 65535);
1: - if (err) {
1: - warn("invalid PORT_LIST: %s\n", arg);
1: - argp_usage(state);
1: - }
1: - env.nports = nports;
1: - break;
1: - case 'C':
1: - warn("not implemented: --cgroupmap");
1: - break;
1: - case 'M':
1: - warn("not implemented: --mntnsmap");
1: - break;
1: - default:
1: - return ARGP_ERR_UNKNOWN;
1: - }
1: - return 0;
1: +static error_t parse_arg(int key, char *arg, struct argp_state *state) {
1: + int err;
1: + int nports;
1: +
1: + switch (key) {
1: + case 'v':
1: + env.verbose = true;
1: + break;
1: + case 'c':
1: + env.count = true;
1: + break;
1: + case 't':
1: + env.print_timestamp = true;
1: + break;
1: + case 'U':
1: + env.print_uid = true;
1: + break;
1: + case 'p':
1: + err = get_int(arg, &env.pid, 1, INT_MAX);
1: + if (err) {
1: + warn("invalid PID: %s\n", arg);
1: + argp_usage(state);
1: + }
1: + break;
1: + case 'u':
1: + err = get_uint(arg, &env.uid, 0, (uid_t)-2);
1: + if (err) {
1: + warn("invalid UID: %s\n", arg);
1: + argp_usage(state);
1: + }
1: + break;
1: + case 'P':
1: + nports = MAX_PORTS;
1: + err = get_ints(arg, &nports, env.ports, 1, 65535);
1: + if (err) {
1: + warn("invalid PORT_LIST: %s\n", arg);
1: + argp_usage(state);
1: + }
1: + env.nports = nports;
1: + break;
1: + case 'C':
1: + warn("not implemented: --cgroupmap");
1: + break;
1: + case 'M':
1: + warn("not implemented: --mntnsmap");
1: + break;
1: + default:
1: + return ARGP_ERR_UNKNOWN;
1: + }
1: + return 0;
1: }
1:
1: -static int libbpf_print_fn(enum libbpf_print_level level,
1: - const char *format, va_list args)
1: -{
1: - if (level == LIBBPF_DEBUG && !env.verbose)
1: - return 0;
1: - return vfprintf(stderr, format, args);
1: +static int libbpf_print_fn(enum libbpf_print_level level, const char *format,
1: + va_list args) {
1: + if (level == LIBBPF_DEBUG && !env.verbose)
1: + return 0;
1: + return vfprintf(stderr, format, args);
1: }
1:
1: static volatile sig_atomic_t hang_on = 1;
1:
1: -static void sig_int(int signo)
1: -{
1: - hang_on = 0;
1: -}
1: -
1: -static void print_count_ipv4(int map_fd)
1: -{
1: - static struct ipv4_flow_key keys[MAX_ENTRIES];
1: - __u32 value_size = sizeof(__u64);
1: - __u32 key_size = sizeof(keys[0]);
1: - static struct ipv4_flow_key zero;
1: - static __u64 counts[MAX_ENTRIES];
1: - char s[INET_ADDRSTRLEN];
1: - char d[INET_ADDRSTRLEN];
1: - __u32 n = MAX_ENTRIES;
1: - struct in_addr src;
1: - struct in_addr dst;
1: -
1: - if (dump_hash(map_fd, keys, key_size, counts, value_size, &n, &zero)) {
1: - warn("dump_hash: %s", strerror(errno));
1: - return;
1: - }
1: -
1: - for (__u32 i = 0; i < n; i++) {
1: - src.s_addr = keys[i].saddr;
1: - dst.s_addr = keys[i].daddr;
1: -
1: - printf("%-25s %-25s %-20d %-10llu\n",
1: - inet_ntop(AF_INET, &src, s, sizeof(s)),
1: - inet_ntop(AF_INET, &dst, d, sizeof(d)),
1: - ntohs(keys[i].dport), counts[i]);
1: - }
1: +static void sig_int(int signo) { hang_on = 0; }
1: +
1: +static void print_count_ipv4(int map_fd) {
1: + static struct ipv4_flow_key keys[MAX_ENTRIES];
1: + __u32 value_size = sizeof(__u64);
1: + __u32 key_size = sizeof(keys[0]);
1: + static struct ipv4_flow_key zero;
1: + static __u64 counts[MAX_ENTRIES];
1: + char s[INET_ADDRSTRLEN];
1: + char d[INET_ADDRSTRLEN];
1: + __u32 n = MAX_ENTRIES;
1: + struct in_addr src;
1: + struct in_addr dst;
1: +
1: + if (dump_hash(map_fd, keys, key_size, counts, value_size, &n, &zero)) {
1: + warn("dump_hash: %s", strerror(errno));
1: + return;
1: + }
1: +
1: + for (__u32 i = 0; i < n; i++) {
1: + src.s_addr = keys[i].saddr;
1: + dst.s_addr = keys[i].daddr;
1: +
1: + printf("%-25s %-25s %-20d %-10llu\n",
1: + inet_ntop(AF_INET, &src, s, sizeof(s)),
1: + inet_ntop(AF_INET, &dst, d, sizeof(d)), ntohs(keys[i].dport),
1: + counts[i]);
1: + }
1: }
1:
1: -static void print_count_ipv6(int map_fd)
1: -{
1: - static struct ipv6_flow_key keys[MAX_ENTRIES];
1: - __u32 value_size = sizeof(__u64);
1: - __u32 key_size = sizeof(keys[0]);
1: - static struct ipv6_flow_key zero;
1: - static __u64 counts[MAX_ENTRIES];
1: - char s[INET6_ADDRSTRLEN];
1: - char d[INET6_ADDRSTRLEN];
1: - __u32 n = MAX_ENTRIES;
1: - struct in6_addr src;
1: - struct in6_addr dst;
1: -
1: - if (dump_hash(map_fd, keys, key_size, counts, value_size, &n, &zero)) {
1: - warn("dump_hash: %s", strerror(errno));
1: - return;
1: - }
1: -
1: - for (__u32 i = 0; i < n; i++) {
1: - memcpy(src.s6_addr, &keys[i].saddr, sizeof(src.s6_addr));
1: - memcpy(dst.s6_addr, &keys[i].daddr, sizeof(src.s6_addr));
1: -
1: - printf("%-25s %-25s %-20d %-10llu\n",
1: - inet_ntop(AF_INET6, &src, s, sizeof(s)),
1: - inet_ntop(AF_INET6, &dst, d, sizeof(d)),
1: - ntohs(keys[i].dport), counts[i]);
1: - }
1: +static void print_count_ipv6(int map_fd) {
1: + static struct ipv6_flow_key keys[MAX_ENTRIES];
1: + __u32 value_size = sizeof(__u64);
1: + __u32 key_size = sizeof(keys[0]);
1: + static struct ipv6_flow_key zero;
1: + static __u64 counts[MAX_ENTRIES];
1: + char s[INET6_ADDRSTRLEN];
1: + char d[INET6_ADDRSTRLEN];
1: + __u32 n = MAX_ENTRIES;
1: + struct in6_addr src;
1: + struct in6_addr dst;
1: +
1: + if (dump_hash(map_fd, keys, key_size, counts, value_size, &n, &zero)) {
1: + warn("dump_hash: %s", strerror(errno));
1: + return;
1: + }
1: +
1: + for (__u32 i = 0; i < n; i++) {
1: + memcpy(src.s6_addr, &keys[i].saddr, sizeof(src.s6_addr));
1: + memcpy(dst.s6_addr, &keys[i].daddr, sizeof(src.s6_addr));
1: +
1: + printf("%-25s %-25s %-20d %-10llu\n",
1: + inet_ntop(AF_INET6, &src, s, sizeof(s)),
1: + inet_ntop(AF_INET6, &dst, d, sizeof(d)), ntohs(keys[i].dport),
1: + counts[i]);
1: + }
1: }
1:
1: -static void print_count(int map_fd_ipv4, int map_fd_ipv6)
1: -{
1: - static const char *header_fmt = "\n%-25s %-25s %-20s %-10s\n";
1: +static void print_count(int map_fd_ipv4, int map_fd_ipv6) {
1: + static const char *header_fmt = "\n%-25s %-25s %-20s %-10s\n";
1:
1: - while (hang_on)
1: - pause();
1: + while (hang_on)
1: + pause();
1:
1: - printf(header_fmt, "LADDR", "RADDR", "RPORT", "CONNECTS");
1: - print_count_ipv4(map_fd_ipv4);
1: - print_count_ipv6(map_fd_ipv6);
1: + printf(header_fmt, "LADDR", "RADDR", "RPORT", "CONNECTS");
1: + print_count_ipv4(map_fd_ipv4);
1: + print_count_ipv6(map_fd_ipv6);
1: }
1:
1: -static void print_events_header()
1: -{
1: - if (env.print_timestamp)
1: - printf("%-9s", "TIME(s)");
1: - if (env.print_uid)
1: - printf("%-6s", "UID");
1: - printf("%-6s %-12s %-2s %-16s %-16s %-4s\n",
1: - "PID", "COMM", "IP", "SADDR", "DADDR", "DPORT");
1: +static void print_events_header() {
1: + if (env.print_timestamp)
1: + printf("%-9s", "TIME(s)");
1: + if (env.print_uid)
1: + printf("%-6s", "UID");
1: + printf("%-6s %-12s %-2s %-16s %-16s %-4s\n", "PID", "COMM", "IP", "SADDR",
1: + "DADDR", "DPORT");
1: }
1:
1: -static void handle_event(void *ctx, int cpu, void *data, __u32 data_sz)
1: -{
1: - const struct event *event = data;
1: - char src[INET6_ADDRSTRLEN];
1: - char dst[INET6_ADDRSTRLEN];
1: - union {
1: - struct in_addr x4;
1: - struct in6_addr x6;
1: - } s, d;
1: - static __u64 start_ts;
1: -
1: - if (event->af == AF_INET) {
1: - s.x4.s_addr = event->saddr_v4;
1: - d.x4.s_addr = event->daddr_v4;
1: - } else if (event->af == AF_INET6) {
1: - memcpy(&s.x6.s6_addr, &event->saddr_v6, sizeof(s.x6.s6_addr));
1: - memcpy(&d.x6.s6_addr, &event->daddr_v6, sizeof(d.x6.s6_addr));
1: - } else {
1: - warn("broken event: event->af=%d", event->af);
1: - return;
1: - }
1: -
1: - if (env.print_timestamp) {
1: - if (start_ts == 0)
1: - start_ts = event->ts_us;
1: - printf("%-9.3f", (event->ts_us - start_ts) / 1000000.0);
1: - }
1: -
1: - if (env.print_uid)
1: - printf("%-6d", event->uid);
1: -
1: - printf("%-6d %-12.12s %-2d %-16s %-16s %-4d\n",
1: - event->pid, event->task,
1: - event->af == AF_INET ? 4 : 6,
1: - inet_ntop(event->af, &s, src, sizeof(src)),
1: - inet_ntop(event->af, &d, dst, sizeof(dst)),
1: - ntohs(event->dport));
1: +static void handle_event(void *ctx, int cpu, void *data, __u32 data_sz) {
1: + const struct event *event = data;
1: + char src[INET6_ADDRSTRLEN];
1: + char dst[INET6_ADDRSTRLEN];
1: + union {
1: + struct in_addr x4;
1: + struct in6_addr x6;
1: + } s, d;
1: + static __u64 start_ts;
1: +
1: + if (event->af == AF_INET) {
1: + s.x4.s_addr = event->saddr_v4;
1: + d.x4.s_addr = event->daddr_v4;
1: + } else if (event->af == AF_INET6) {
1: + memcpy(&s.x6.s6_addr, &event->saddr_v6, sizeof(s.x6.s6_addr));
1: + memcpy(&d.x6.s6_addr, &event->daddr_v6, sizeof(d.x6.s6_addr));
1: + } else {
1: + warn("broken event: event->af=%d", event->af);
1: + return;
1: + }
1: +
1: + if (env.print_timestamp) {
1: + if (start_ts == 0)
1: + start_ts = event->ts_us;
1: + printf("%-9.3f", (event->ts_us - start_ts) / 1000000.0);
1: + }
1: +
1: + if (env.print_uid)
1: + printf("%-6d", event->uid);
1: +
1: + printf("%-6d %-12.12s %-2d %-16s %-16s %-4d\n", event->pid, event->task,
1: + event->af == AF_INET ? 4 : 6,
1: + inet_ntop(event->af, &s, src, sizeof(src)),
1: + inet_ntop(event->af, &d, dst, sizeof(dst)), ntohs(event->dport));
1: }
1:
1: -static void handle_lost_events(void *ctx, int cpu, __u64 lost_cnt)
1: -{
1: - warn("Lost %llu events on CPU #%d!\n", lost_cnt, cpu);
1: +static void handle_lost_events(void *ctx, int cpu, __u64 lost_cnt) {
1: + warn("Lost %llu events on CPU #%d!\n", lost_cnt, cpu);
1: }
1:
1: -static void print_events(int perf_map_fd)
1: -{
1: - struct perf_buffer_opts pb_opts = {
1: - .sample_cb = handle_event,
1: - .lost_cb = handle_lost_events,
1: - };
1: - struct perf_buffer *pb = NULL;
1: - int err;
1: -
1: - pb = perf_buffer__new(perf_map_fd, 128, &pb_opts);
1: - err = libbpf_get_error(pb);
1: - if (err) {
1: - pb = NULL;
1: - warn("failed to open perf buffer: %d\n", err);
1: - goto cleanup;
1: - }
1: -
1: - print_events_header();
1: - while (hang_on) {
1: - err = perf_buffer__poll(pb, 100);
1: - if (err < 0) {
1: - warn("Error polling perf buffer: %d\n", err);
1: - goto cleanup;
1: - }
1: - }
1: +static void print_events(int perf_map_fd) {
1: + struct perf_buffer_opts pb_opts = {
1: + .sample_cb = handle_event, .lost_cb = handle_lost_events,
1: + };
1: + struct perf_buffer *pb = NULL;
1: + int err;
1: +
1: + pb = perf_buffer__new(perf_map_fd, 128, &pb_opts);
1: + err = libbpf_get_error(pb);
1: + if (err) {
1: + pb = NULL;
1: + warn("failed to open perf buffer: %d\n", err);
1: + goto cleanup;
1: + }
1: +
1: + print_events_header();
1: + while (hang_on) {
1: + err = perf_buffer__poll(pb, 100);
1: + if (err < 0) {
1: + warn("Error polling perf buffer: %d\n", err);
1: + goto cleanup;
1: + }
1: + }
1:
1: cleanup:
1: - perf_buffer__free(pb);
1: + perf_buffer__free(pb);
1: }
1:
1: -int main(int argc, char **argv)
1: -{
1: - static const struct argp argp = {
1: - .options = opts,
1: - .parser = parse_arg,
1: - .doc = argp_program_doc,
1: - .args_doc = NULL,
1: - };
1: - struct tcpconnect_bpf *obj;
1: - int err;
1: -
1: - err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: - if (err)
1: - return err;
1: -
1: - libbpf_set_print(libbpf_print_fn);
1: -
1: - err = bump_memlock_rlimit();
1: - if (err) {
1: - warn("failed to increase rlimit: %s\n", strerror(errno));
1: - return 1;
1: - }
1: -
1: - obj = tcpconnect_bpf__open();
1: - if (!obj) {
1: - warn("failed to open BPF object\n");
1: - return 1;
1: - }
1: -
1: - if (env.count)
1: - obj->rodata->do_count = true;
1: - if (env.pid)
1: - obj->rodata->filter_pid = env.pid;
1: - if (env.uid != (uid_t) -1)
1: - obj->rodata->filter_uid = env.uid;
1: - if (env.nports > 0) {
1: - obj->rodata->filter_ports_len = env.nports;
1: - for (int i = 0; i < env.nports; i++) {
1: - obj->rodata->filter_ports[i] = htons(env.ports[i]);
1: - }
1: - }
1: -
1: - err = tcpconnect_bpf__load(obj);
1: - if (err) {
1: - warn("failed to load BPF object: %d\n", err);
1: - goto cleanup;
1: - }
1: -
1: - err = tcpconnect_bpf__attach(obj);
1: - if (err) {
1: - warn("failed to attach BPF programs: %s\n", strerror(-err));
1: - goto cleanup;
1: - }
1: -
1: - if (signal(SIGINT, sig_int) == SIG_ERR) {
1: - warn("can't set signal handler: %s\n", strerror(-errno));
1: - goto cleanup;
1: - }
1: -
1: - if (env.count) {
1: - print_count(bpf_map__fd(obj->maps.ipv4_count),
1: - bpf_map__fd(obj->maps.ipv6_count));
1: - } else {
1: - print_events(bpf_map__fd(obj->maps.events));
1: - }
1: +int main(int argc, char **argv) {
1: + static const struct argp argp = {
1: + .options = opts,
1: + .parser = parse_arg,
1: + .doc = argp_program_doc,
1: + .args_doc = NULL,
1: + };
1: + struct tcpconnect_bpf *obj;
1: + int err;
1: +
1: + err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: + if (err)
1: + return err;
1: +
1: + libbpf_set_print(libbpf_print_fn);
1: +
1: + err = bump_memlock_rlimit();
1: + if (err) {
1: + warn("failed to increase rlimit: %s\n", strerror(errno));
1: + return 1;
1: + }
1: +
1: + obj = tcpconnect_bpf__open();
1: + if (!obj) {
1: + warn("failed to open BPF object\n");
1: + return 1;
1: + }
1: +
1: + if (env.count)
1: + obj->rodata->do_count = true;
1: + if (env.pid)
1: + obj->rodata->filter_pid = env.pid;
1: + if (env.uid != (uid_t)-1)
1: + obj->rodata->filter_uid = env.uid;
1: + if (env.nports > 0) {
1: + obj->rodata->filter_ports_len = env.nports;
1: + for (int i = 0; i < env.nports; i++) {
1: + obj->rodata->filter_ports[i] = htons(env.ports[i]);
1: + }
1: + }
1: +
1: + err = tcpconnect_bpf__load(obj);
1: + if (err) {
1: + warn("failed to load BPF object: %d\n", err);
1: + goto cleanup;
1: + }
1: +
1: + err = tcpconnect_bpf__attach(obj);
1: + if (err) {
1: + warn("failed to attach BPF programs: %s\n", strerror(-err));
1: + goto cleanup;
1: + }
1: +
1: + if (signal(SIGINT, sig_int) == SIG_ERR) {
1: + warn("can't set signal handler: %s\n", strerror(-errno));
1: + goto cleanup;
1: + }
1: +
1: + if (env.count) {
1: + print_count(bpf_map__fd(obj->maps.ipv4_count),
1: + bpf_map__fd(obj->maps.ipv6_count));
1: + } else {
1: + print_events(bpf_map__fd(obj->maps.events));
1: + }
1:
1: cleanup:
1: - tcpconnect_bpf__destroy(obj);
1: + tcpconnect_bpf__destroy(obj);
1:
1: - return err != 0;
1: + return err != 0;
1: }
1: diff --git a/libbpf-tools/tcpconnect.h b/libbpf-tools/tcpconnect.h
1: index 86cc194..9884d1b 100644
1: --- a/libbpf-tools/tcpconnect.h
1: +++ b/libbpf-tools/tcpconnect.h
1: @@ -12,32 +12,32 @@
1: #define TASK_COMM_LEN 16
1:
1: struct ipv4_flow_key {
1: - __u32 saddr;
1: - __u32 daddr;
1: - __u16 dport;
1: + __u32 saddr;
1: + __u32 daddr;
1: + __u16 dport;
1: };
1:
1: struct ipv6_flow_key {
1: - unsigned __int128 saddr;
1: - unsigned __int128 daddr;
1: - __u16 dport;
1: + unsigned __int128 saddr;
1: + unsigned __int128 daddr;
1: + __u16 dport;
1: };
1:
1: struct event {
1: - union {
1: - __u32 saddr_v4;
1: - unsigned __int128 saddr_v6;
1: - };
1: - union {
1: - __u32 daddr_v4;
1: - unsigned __int128 daddr_v6;
1: - };
1: - char task[TASK_COMM_LEN];
1: - __u64 ts_us;
1: - int af; // AF_INET or AF_INET6
1: - __u32 pid;
1: - __u32 uid;
1: - __u16 dport;
1: + union {
1: + __u32 saddr_v4;
1: + unsigned __int128 saddr_v6;
1: + };
1: + union {
1: + __u32 daddr_v4;
1: + unsigned __int128 daddr_v6;
1: + };
1: + char task[TASK_COMM_LEN];
1: + __u64 ts_us;
1: + int af; // AF_INET or AF_INET6
1: + __u32 pid;
1: + __u32 uid;
1: + __u16 dport;
1: };
1:
1: #endif /* __TCPCONNECT_H */
1: Ignoring changes in the following files (wrong extension):
1: libbpf-tools/Makefile
1: libbpf-tools/.gitignore
1: Running clang-format on the following files:
1: libbpf-tools/tcpconnect.h
1: libbpf-tools/syscount.bpf.c
1: libbpf-tools/maps.bpf.h
1: libbpf-tools/map_helpers.c
1: libbpf-tools/tcpconnect.bpf.c
1: libbpf-tools/map_helpers.h
1: libbpf-tools/tcpconnect.c
1: libbpf-tools/syscount.c
1: old tree: bb656e9e427a890b84368474a8c847c3f9a85d74
1: new tree: a9ce111ffd4138ecf652b5b4422cb3d0a32366a7
1/44 Test #1: style-check ...................... Passed 1.21 sec
test 2
Start 2: c_test_static
2: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "c_test_static" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/cc/test_static"
2: Test timeout computed to be: 9.99988e+06
2: clang -cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -emit-llvm-uselists -disable-free -disable-llvm-verifier -main-file-name main.c -mrelocation-model static -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu x86-64 -momit-leaf-frame-pointer -dwarf-column-info -debugger-tuning=gdb -coverage-file /usr/src/linux-headers-4.4.0-116-generic/main.c -nostdsysteminc -nobuiltininc -resource-dir ../lib/clang/3.8.0 -isystem /virtual/lib/clang/include -include ./include/linux/kconfig.h -include /virtual/include/bcc/bpf.h -include /virtual/include/bcc/helpers.h -isystem /virtual/include -I /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/cc -D __BPF_TRACING__ -I ./arch/x86/include -I arch/x86/include/generated/uapi -I arch/x86/include/generated -I include -I ./arch/x86/include/uapi -I arch/x86/include/generated/uapi -I ./include/uapi -I include/generated/uapi -D __KERNEL__ -D __HAVE_BUILTIN_BSWAP16__ -D __HAVE_BUILTIN_BSWAP32__ -D __HAVE_BUILTIN_BSWAP64__ -D KBUILD_MODNAME="bcc" -O2 -Wno-deprecated-declarations -Wno-gnu-variable-sized-type-not-at-end -Wno-pragma-once-outside-header -Wno-address-of-packed-member -Wno-unknown-warning-option -Wno-unused-value -Wno-pointer-sign -fdebug-compilation-dir /usr/src/linux-headers-4.4.0-116-generic -ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o main.bc -x c /virtual/main.c
2: #if defined(BPF_LICENSE)
2: #error BPF_LICENSE cannot be specified through cflags
2: #endif
2: #if !defined(CONFIG_CC_STACKPROTECTOR)
2: #if defined(CONFIG_CC_STACKPROTECTOR_AUTO) \
2: || defined(CONFIG_CC_STACKPROTECTOR_REGULAR) \
2: || defined(CONFIG_CC_STACKPROTECTOR_STRONG)
2: #define CONFIG_CC_STACKPROTECTOR
2: #endif
2: #endif
2: #define bpf_probe_read_kernel bpf_probe_read
2: #define bpf_probe_read_kernel_str bpf_probe_read_str
2: #define bpf_probe_read_user bpf_probe_read
2: #define bpf_probe_read_user_str bpf_probe_read_str
2: BPF_TABLE("array", int, int, stats, 10);
2:
2: #include <bcc/footer.h>
2: Running from kernel directory at: /lib/modules/4.4.0-116-generic/build
2/44 Test #2: c_test_static .................... Passed 0.90 sec
test 3
Start 3: test_libbcc
3: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "c_test_all" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/cc/test_libbcc"
3: Test timeout computed to be: 9.99988e+06
3: prog tag mismatch 57cd311f2e27366b 11
3: WARNING: cannot get prog tag, ignore saving source with program tag
3: Parse error:
3: 4@i%ra+1r
3: -------^
3: prog tag mismatch a04f5eef06a7f555 11
3: WARNING: cannot get prog tag, ignore saving source with program tag
3: prog tag mismatch a04f5eef06a7f555 11
3: WARNING: cannot get prog tag, ignore saving source with program tag
3: prog tag mismatch a04f5eef06a7f555 11
3: WARNING: cannot get prog tag, ignore saving source with program tag
3: unshare: failed to execute ruby: No such file or directory
3:
3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3: test_libbcc is a Catch v1.4.0 host application.
3: Run with -? for options
3:
3: -------------------------------------------------------------------------------
3: test probing running Ruby process in namespaces
3: in separate mount namespace
3: -------------------------------------------------------------------------------
3: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/cc/test_usdt_probes.cc:340
3: ...............................................................................
3:
3: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/cc/test_usdt_probes.cc:355: FAILED:
3: REQUIRE( res.msg() == "" )
3: with expansion:
3: "Unable to load USDT ruby:gc__mark__begin from binary PID 7513 for probe
3: on_event"
3: ==
3: ""
3:
3: unshare: unrecognized option '--kill-child'
3:
3: Usage:
3: unshare [options] <program> [<argument>...]
3:
3: Run a program with some namespaces unshared from the parent.
3:
3: Options:
3: -m, --mount[=<file>] unshare mounts namespace
3: -u, --uts[=<file>] unshare UTS namespace (hostname etc)
3: -i, --ipc[=<file>] unshare System V IPC namespace
3: -n, --net[=<file>] unshare network namespace
3: -p, --pid[=<file>] unshare pid namespace
3: -U, --user[=<file>] unshare user namespace
3: -f, --fork fork before launching <program>
3: --mount-proc[=<dir>] mount proc filesystem first (implies --mount)
3: -r, --map-root-user map current user to root (implies --user)
3: --propagation slave|shared|private|unchanged
3: modify mount propagation in mount namespace
3: -s, --setgroups allow|deny control the setgroups syscall in user namespaces
3:
3: -h, --help display this help and exit
3: -V, --version output version information and exit
3:
3: For more details see unshare(1).
3: -------------------------------------------------------------------------------
3: test probing running Ruby process in namespaces
3: in separate mount namespace and separate PID namespace
3: -------------------------------------------------------------------------------
3: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/cc/test_usdt_probes.cc:340
3: ...............................................................................
3:
3: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/cc/test_usdt_probes.cc:381: FAILED:
3: REQUIRE( res.msg() == "" )
3: with expansion:
3: "No valid Binary Path or PID provided"
3: ==
3: ""
3:
3: ===============================================================================
3: test cases: 34 | 33 passed | 1 failed as expected
3: assertions: 507 | 505 passed | 2 failed as expected
3:
3/44 Test #3: test_libbcc ...................... Passed 9.71 sec
test 4
Start 4: py_test_stat1_b
4: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_stat1_b" "namespace" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_stat1.py" "test_stat1.b" "proto.b"
4: Test timeout computed to be: 9.99988e+06
4: Actual changes:
4: tx-checksumming: off
4: tx-checksum-ip-generic: off
4: tcp-segmentation-offload: off
4: tx-tcp-segmentation: off [requested on]
4: tx-tcp-ecn-segmentation: off [requested on]
4: tx-tcp6-segmentation: off [requested on]
4: udp-fragmentation-offload: off [requested on]
4: .PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
4: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4: --- 172.16.1.1 ping statistics ---
4: 100 packets transmitted, 100 received, 0% packet loss, time 2ms
4: rtt min/avg/max/mdev = 0.006/0.008/0.108/0.010 ms, ipg/ewma 0.022/0.007 ms
4: .
4: ----------------------------------------------------------------------
4: Ran 2 tests in 0.481s
4:
4: OK
4/44 Test #4: py_test_stat1_b .................. Passed 1.12 sec
test 5
Start 5: py_test_bpf_log
5: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_bpf_prog" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_bpf_log.py"
5: Test timeout computed to be: 9.99988e+06
5/44 Test #5: py_test_bpf_log .................. Passed 1.48 sec
test 6
Start 6: py_test_stat1_c
6: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_stat1_c" "namespace" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_stat1.py" "test_stat1.c"
6: Test timeout computed to be: 9.99988e+06
6: Actual changes:
6: tx-checksumming: off
6: tx-checksum-ip-generic: off
6: tcp-segmentation-offload: off
6: tx-tcp-segmentation: off [requested on]
6: tx-tcp-ecn-segmentation: off [requested on]
6: tx-tcp6-segmentation: off [requested on]
6: udp-fragmentation-offload: off [requested on]
6: .PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
6: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6: --- 172.16.1.1 ping statistics ---
6: 100 packets transmitted, 100 received, 0% packet loss, time 1ms
6: rtt min/avg/max/mdev = 0.004/0.006/0.056/0.005 ms, ipg/ewma 0.014/0.007 ms
6: .
6: ----------------------------------------------------------------------
6: Ran 2 tests in 0.470s
6:
6: OK
6/44 Test #6: py_test_stat1_c .................. Passed 0.78 sec
test 7
Start 7: py_test_xlate1_c
7: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_xlate1_c" "namespace" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_xlate1.py" "test_xlate1.c"
7: Test timeout computed to be: 9.99988e+06
7: Actual changes:
7: tx-checksumming: off
7: tx-checksum-ip-generic: off
7: tcp-segmentation-offload: off
7: tx-tcp-segmentation: off [requested on]
7: tx-tcp-ecn-segmentation: off [requested on]
7: tx-tcp6-segmentation: off [requested on]
7: udp-fragmentation-offload: off [requested on]
7: PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
7: 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.095 ms
7:
7: --- 192.168.1.1 ping statistics ---
7: 1 packets transmitted, 1 received, 0% packet loss, time 0ms
7: rtt min/avg/max/mdev = 0.095/0.095/0.095/0.000 ms
7: .
7: ----------------------------------------------------------------------
7: Ran 1 test in 0.304s
7:
7: OK
7/44 Test #7: py_test_xlate1_c ................. Passed 0.67 sec
test 8
Start 8: py_test_call1
8: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_call1_c" "namespace" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_call1.py" "test_call1.c"
8: Test timeout computed to be: 9.99988e+06
8: Actual changes:
8: tx-checksumming: off
8: tx-checksum-ip-generic: off
8: tcp-segmentation-offload: off
8: tx-tcp-segmentation: off [requested on]
8: tx-tcp-ecn-segmentation: off [requested on]
8: tx-tcp6-segmentation: off [requested on]
8: udp-fragmentation-offload: off [requested on]
8: .
8: ----------------------------------------------------------------------
8: Ran 1 test in 0.398s
8:
8: OK
8/44 Test #8: py_test_call1 .................... Passed 0.77 sec
test 9
Start 9: py_test_trace1
9: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_trace1" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_trace1.py" "test_trace1.b" "kprobe.b"
9: Test timeout computed to be: 9.99988e+06
9: .
9: ----------------------------------------------------------------------
9: Ran 1 test in 0.355s
9:
9: OK
9: ('fd 8:', 'stat1 0', 'stat2 1')
9: ('fd ffff880215f65a00:', 'stat1 2', 'stat2 0')
9: ('fd a:', 'stat1 200', 'stat2 100')
9: ('fd 9:', 'stat1 1', 'stat2 1')
9/44 Test #9: py_test_trace1 ................... Passed 0.51 sec
test 10
Start 10: py_test_trace2
10: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_trace2" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_trace2.py"
10: Test timeout computed to be: 9.99988e+06
10: .
10: ----------------------------------------------------------------------
10: Ran 1 test in 2.345s
10:
10: OK
10: ('ptr ffff8800ba77d400:', 'stat1 (0 10)')
10: ('ptr ffff880213918e00:', 'stat1 (0 3)')
10: ('ptr ffff880216b76200:', 'stat1 (0 1)')
10: ('ptr ffff8800ba778000:', 'stat1 (0 21)')
10: ('ptr ffff880216ad2a00:', 'stat1 (0 1)')
10: ('ptr ffff880216b33800:', 'stat1 (0 1)')
10: ('ptr ffff88021417b800:', 'stat1 (0 4)')
10: ('ptr ffff880213fc8e00:', 'stat1 (0 1)')
10: ('ptr ffff880216b30e00:', 'stat1 (0 105)')
10: ('ptr ffff8800ba77c600:', 'stat1 (0 1)')
10: ('ptr ffffffff81e13500:', 'stat1 (0 62)')
10: ('ptr ffff8800ba596200:', 'stat1 (0 1)')
10: ('ptr ffff880037696200:', 'stat1 (0 100)')
10: ('ptr ffff880037756200:', 'stat1 (0 5)')
10: ('ptr ffff880216ad5400:', 'stat1 (0 6)')
10: ('ptr ffff880037690e00:', 'stat1 (0 12)')
10: ('ptr ffff880214179c00:', 'stat1 (0 1)')
10/44 Test #10: py_test_trace2 ................... Passed 2.42 sec
test 11
Start 11: py_test_trace3_c
11: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_trace3_c" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_trace3.py" "test_trace3.c"
11: Test timeout computed to be: 9.99988e+06
11: 1024+0 records in
11: 1024+0 records out
11: 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.00371475 s, 1.1 GB/s
11: 1024+0 records in
11: 1024+0 records out
11: 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.00412781 s, 1.0 GB/s
11: ('latency 0:', 'count 0')
11: ('latency 1:', 'count 0')
11: ('latency 2:', 'count 0')
11: ('latency 3:', 'count 0')
11: ('latency 4:', 'count 0')
11: ('latency 5:', 'count 0')
11: ('latency 6:', 'count 0')
11: ('latency 7:', 'count 0')
11: ('latency 8:', 'count 0')
11: ('latency 9:', 'count 0')
11: ('latency 10:', 'count 0')
11: ('latency 11:', 'count 0')
11: ('latency 12:', 'count 0')
11: ('latency 13:', 'count 0')
11: ('latency 14:', 'count 0')
11: ('latency 15:', 'count 0')
11: ('latency 16:', 'count 0')
11: ('latency 17:', 'count 0')
11: ('latency 18:', 'count 0')
11: ('latency 19:', 'count 0')
11: ('latency 20:', 'count 0')
11: ('latency 21:', 'count 0')
11: ('latency 22:', 'count 0')
11: ('latency 23:', 'count 0')
11: ('latency 24:', 'count 0')
11: ('latency 25:', 'count 0')
11: ('latency 26:', 'count 0')
11: ('latency 27:', 'count 0')
11: ('latency 28:', 'count 0')
11: ('latency 29:', 'count 0')
11: ('latency 30:', 'count 0')
11: ('latency 31:', 'count 0')
11: ('latency 32:', 'count 0')
11: ('latency 33:', 'count 0')
11: ('latency 34:', 'count 0')
11: ('latency 35:', 'count 0')
11: ('latency 36:', 'count 0')
11: ('latency 37:', 'count 0')
11: ('latency 38:', 'count 0')
11: ('latency 39:', 'count 0')
11: ('latency 40:', 'count 0')
11: ('latency 41:', 'count 0')
11: ('latency 42:', 'count 0')
11: ('latency 43:', 'count 1')
11: ('latency 44:', 'count 0')
11: ('latency 45:', 'count 3')
11: ('latency 46:', 'count 0')
11: ('latency 47:', 'count 0')
11: ('latency 48:', 'count 0')
11: ('latency 49:', 'count 0')
11: ('latency 50:', 'count 0')
11: ('latency 51:', 'count 0')
11: ('latency 52:', 'count 0')
11: ('latency 53:', 'count 0')
11: ('latency 54:', 'count 0')
11: ('latency 55:', 'count 0')
11: ('latency 56:', 'count 5')
11: ('latency 57:', 'count 17')
11: ('latency 58:', 'count 15')
11: ('latency 59:', 'count 12')
11: ('latency 60:', 'count 15')
11: ('latency 61:', 'count 16')
11: ('latency 62:', 'count 21')
11: ('latency 63:', 'count 50')
11: ('latency 64:', 'count 12')
11: ('latency 65:', 'count 2')
11: ('latency 66:', 'count 52')
11: ('latency 67:', 'count 10')
11: ('latency 68:', 'count 0')
11: ('latency 69:', 'count 0')
11: ('latency 70:', 'count 1')
11: ('latency 71:', 'count 1')
11: ('latency 72:', 'count 0')
11: ('latency 73:', 'count 0')
11: ('latency 74:', 'count 0')
11: ('latency 75:', 'count 0')
11: ('latency 76:', 'count 0')
11: ('latency 77:', 'count 0')
11: ('latency 78:', 'count 0')
11: ('latency 79:', 'count 0')
11: ('latency 80:', 'count 0')
11: ('latency 81:', 'count 0')
11: ('latency 82:', 'count 0')
11: ('latency 83:', 'count 0')
11: ('latency 84:', 'count 0')
11: ('latency 85:', 'count 0')
11: ('latency 86:', 'count 0')
11: ('latency 87:', 'count 0')
11: ('latency 88:', 'count 0')
11: ('latency 89:', 'count 0')
11: ('latency 90:', 'count 0')
11: ('latency 91:', 'count 0')
11: ('latency 92:', 'count 0')
11: ('latency 93:', 'count 0')
11: ('latency 94:', 'count 0')
11: ('latency 95:', 'count 0')
11: ('latency 96:', 'count 0')
11: ('latency 97:', 'count 0')
11: ('latency 98:', 'count 0')
11: ('latency 99:', 'count 0')
11: .
11: ----------------------------------------------------------------------
11: Ran 1 test in 1.218s
11:
11: OK
11/44 Test #11: py_test_trace3_c ................. Passed 1.40 sec
test 12
Start 12: py_test_trace4
12: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_trace4" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_trace4.py"
12: Test timeout computed to be: 9.99988e+06
12: ..
12: ----------------------------------------------------------------------
12: Ran 2 tests in 1.463s
12:
12: OK
12/44 Test #12: py_test_trace4 ................... Passed 1.65 sec
test 13
Start 13: py_test_trace_maxactive
13: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_trace_maxactive" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_trace_maxactive.py"
13: Test timeout computed to be: 9.99988e+06
13: .
13: ----------------------------------------------------------------------
13: Ran 1 test in 0.920s
13:
13: OK
13/44 Test #13: py_test_trace_maxactive .......... Passed 1.03 sec
test 14
Start 14: py_test_probe_count
14: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_probe_count" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_probe_count.py"
14: Test timeout computed to be: 9.99988e+06
14: ...cannot attach kprobe, probe entry may not exist
14: ...
14: ----------------------------------------------------------------------
14: Ran 6 tests in 4.277s
14:
14: OK
14/44 Test #14: py_test_probe_count .............. Passed 4.32 sec
test 15
Start 15: py_test_debuginfo
15: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_debuginfo" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_debuginfo.py"
15: Test timeout computed to be: 9.99988e+06
15: ......
15: ----------------------------------------------------------------------
15: Ran 6 tests in 0.501s
15:
15: OK
15/44 Test #15: py_test_debuginfo ................ Passed 0.59 sec
test 16
Start 16: py_test_brb
16: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_brb_c" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_brb.py" "test_brb.c"
16: Test timeout computed to be: 9.99988e+06
16: net.ipv4.ip_forward = 1
16: ARPING 100.1.1.254
16: Timeout
16:
16: --- 100.1.1.254 statistics ---
16: 1 packets transmitted, 0 packets received, 100% unanswered (0 extra)
16:
16: ARPING 200.1.1.254
16: Timeout
16:
16: --- 200.1.1.254 statistics ---
16: 1 packets transmitted, 0 packets received, 100% unanswered (0 extra)
16:
16: PING 200.1.1.1 (200.1.1.1) 56(84) bytes of data.
16: 64 bytes from 200.1.1.1: icmp_seq=1 ttl=63 time=0.103 ms
16: 64 bytes from 200.1.1.1: icmp_seq=2 ttl=63 time=0.051 ms
16:
16: --- 200.1.1.1 ping statistics ---
16: 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
16: rtt min/avg/max/mdev = 0.051/0.077/0.103/0.026 ms
16: [ ID] Interval Transfer Bandwidth
16: [ 7] 0.0- 1.0 sec 3.73 GBytes 32.0 Gbits/sec
16: [ ID] Interval Transfer Bandwidth
16: [ 10] 0.0- 1.0 sec 3.73 GBytes 31.8 Gbits/sec
16: Starting netserver with host 'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC
16: MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 200.1.1.1 () port 0 AF_INET : demo
16: Recv Send Send
16: Socket Socket Message Elapsed
16: Size Size Size Time Throughput
16: bytes bytes bytes secs. 10^6bits/sec
16:
16: 87380 16384 65160 1.00 36564.34
16: MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 200.1.1.1 () port 0 AF_INET : demo : first burst 0
16: Local /Remote
16: Socket Size Request Resp. Elapsed Trans.
16: Send Recv Size Size Time Rate
16: bytes Bytes bytes bytes secs. per sec
16:
16: 16384 87380 1 1 1.00 25727.72
16: 16384 87380
16: .
16: ----------------------------------------------------------------------
16: Ran 1 test in 7.438s
16:
16: OK
16/44 Test #16: py_test_brb ...................... Passed 7.54 sec
test 17
Start 17: py_test_brb2
17: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_brb2_c" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_brb2.py" "test_brb2.c"
17: Test timeout computed to be: 9.99988e+06
17: net.ipv4.ip_forward = 1
17: PING 200.1.1.1 (200.1.1.1) 56(84) bytes of data.
17: 64 bytes from 200.1.1.1: icmp_seq=1 ttl=63 time=0.141 ms
17: 64 bytes from 200.1.1.1: icmp_seq=2 ttl=63 time=0.051 ms
17:
17: --- 200.1.1.1 ping statistics ---
17: 2 packets transmitted, 2 received, 0% packet loss, time 999ms
17: rtt min/avg/max/mdev = 0.051/0.096/0.141/0.045 ms
17: [ ID] Interval Transfer Bandwidth
17: [ 7] 0.0- 1.0 sec 3.42 GBytes 29.4 Gbits/sec
17: [ ID] Interval Transfer Bandwidth
17: [ 10] 0.0- 1.0 sec 3.42 GBytes 29.2 Gbits/sec
17: Starting netserver with host 'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC
17: MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 200.1.1.1 () port 0 AF_INET : demo
17: Recv Send Send
17: Socket Socket Message Elapsed
17: Size Size Size Time Throughput
17: bytes bytes bytes secs. 10^6bits/sec
17:
17: 87380 16384 65160 1.00 33901.22
17: MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 200.1.1.1 () port 0 AF_INET : demo : first burst 0
17: Local /Remote
17: Socket Size Request Resp. Elapsed Trans.
17: Send Recv Size Size Time Rate
17: bytes Bytes bytes bytes secs. per sec
17:
17: 16384 87380 1 1 1.00 24406.36
17: 16384 87380
17: .
17: ----------------------------------------------------------------------
17: Ran 1 test in 7.494s
17:
17: OK
17/44 Test #17: py_test_brb2 ..................... Passed 7.61 sec
test 18
Start 18: py_test_clang
18: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_clang" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_clang.py"
18: Test timeout computed to be: 9.99988e+06
18: ............s..../virtual/main.c:2:1: error: field has incomplete type 'struct key_t'
18: BPF_HASH(drops, struct key_t);
18: ^
18: /virtual/include/bcc/helpers.h:256:48: note: expanded from macro 'BPF_HASH'
18: BPF_HASHX(__VA_ARGS__, BPF_HASH4, BPF_HASH3, BPF_HASH2, BPF_HASH1)(__VA_ARGS__)
18: ^
18: /virtual/main.c:2:24: note: forward declaration of 'struct key_t'
18: BPF_HASH(drops, struct key_t);
18: ^
18: /virtual/main.c:2:1: error: field has incomplete type 'struct key_t'
18: BPF_HASH(drops, struct key_t);
18: ^
18: /virtual/include/bcc/helpers.h:256:48: note: expanded from macro 'BPF_HASH'
18: BPF_HASHX(__VA_ARGS__, BPF_HASH4, BPF_HASH3, BPF_HASH2, BPF_HASH1)(__VA_ARGS__)
18: ^
18: /virtual/main.c:2:24: note: forward declaration of 'struct key_t'
18: BPF_HASH(drops, struct key_t);
18: ^
18: 2 errors generated.
18: ../virtual/main.c:6:12: error: cannot call non-static helper function
18: return bar();
18: ^
18: 1 error generated.
18: ..ss.....s................................/virtual/main.c:7:12: warning: incompatible pointer to integer conversion returning 'u32 *' (aka 'unsigned int *') from a function with result type 'int' [-Wint-conversion]
18: return *(&skp->sk_daddr);
18: ^~~~~~~~~~~~~~~~~
18: 1 warning generated.
18: ....ss........../virtual/main.c:1:30: error: expected expression
18: int failure(void *ctx) { if (); return 0; }
18: ^
18: 1 error generated.
18: ../virtual/main.c:3:73: error: too many arguments, bcc only supports in-register parameters
18: int many(struct pt_regs *ctx, int a, int b, int c, int d, int e, int f, int g) {
18: ^
18: 1 error generated.
18: ....
18: ----------------------------------------------------------------------
18: Ran 83 tests in 52.652s
18:
18: OK (skipped=6)
18: 0
18/44 Test #18: py_test_clang .................... Passed 53.00 sec
test 19
Start 19: py_test_histogram
19: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_histogram" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_histogram.py"
19: Test timeout computed to be: 9.99988e+06
19:
19: Bucket ptr = 'kworker/0:0'
19: value : count distribution
19: 0 -> 1 : 1 |****************************************|
19:
19: Bucket ptr = 'python'
19: value : count distribution
19: 0 -> 1 : 0 | |
19: 2 -> 3 : 0 | |
19: 4 -> 7 : 0 | |
19: 8 -> 15 : 0 | |
19: 16 -> 31 : 0 | |
19: 32 -> 63 : 0 | |
19: 64 -> 127 : 0 | |
19: 128 -> 255 : 0 | |
19: 256 -> 511 : 0 | |
19: 512 -> 1023 : 0 | |
19: 1024 -> 2047 : 0 | |
19: 2048 -> 4095 : 0 | |
19: 4096 -> 8191 : 0 | |
19: 8192 -> 16383 : 0 | |
19: 16384 -> 32767 : 0 | |
19: 32768 -> 65535 : 0 | |
19: 65536 -> 131071 : 0 | |
19: 131072 -> 262143 : 0 | |
19: 262144 -> 524287 : 0 | |
19: 524288 -> 1048575 : 0 | |
19: 1048576 -> 2097151 : 0 | |
19: 2097152 -> 4194303 : 0 | |
19: 4194304 -> 8388607 : 0 | |
19: 8388608 -> 16777215 : 0 | |
19: 16777216 -> 33554431 : 0 | |
19: 33554432 -> 67108863 : 0 | |
19: 67108864 -> 134217727 : 100 |****************************************|
19:
19: Bucket ptr = 'RemoteInvocatio'
19: value : count distribution
19: 0 -> 1 : 5 |****************************************|
19:
19: Bucket ptr = 'kworker/u4:3'
19: value : count distribution
19: 0 -> 1 : 1 |****************************************|
19:
19: Bucket ptr = 'ntpd'
19: value : count distribution
19: 0 -> 1 : 0 | |
19: 2 -> 3 : 0 | |
19: 4 -> 7 : 0 | |
19: 8 -> 15 : 0 | |
19: 16 -> 31 : 0 | |
19: 32 -> 63 : 0 | |
19: 64 -> 127 : 0 | |
19: 128 -> 255 : 0 | |
19: 256 -> 511 : 0 | |
19: 512 -> 1023 : 0 | |
19: 1024 -> 2047 : 0 | |
19: 2048 -> 4095 : 0 | |
19: 4096 -> 8191 : 0 | |
19: 8192 -> 16383 : 0 | |
19: 16384 -> 32767 : 0 | |
19: 32768 -> 65535 : 0 | |
19: 65536 -> 131071 : 0 | |
19: 131072 -> 262143 : 0 | |
19: 262144 -> 524287 : 0 | |
19: 524288 -> 1048575 : 0 | |
19: 1048576 -> 2097151 : 0 | |
19: 2097152 -> 4194303 : 0 | |
19: 4194304 -> 8388607 : 0 | |
19: 8388608 -> 16777215 : 0 | |
19: 16777216 -> 33554431 : 0 | |
19: 33554432 -> 67108863 : 0 | |
19: 67108864 -> 134217727 : 1 |****************************************|
19:
19: Bucket ptr = 'rcu_sched'
19: value : count distribution
19: 0 -> 1 : 3 |****************************************|
19:
19: Bucket ptr = 'sshguard'
19: value : count distribution
19: 0 -> 1 : 21 |****************************************|
19:
19: Bucket ptr = 'VM Periodic Tas'
19: value : count distribution
19: 0 -> 1 : 21 |****************************************|
19:
19: Bucket ptr = 'VM Thread'
19: value : count distribution
19: 0 -> 1 : 1 |****************************************|
19:
19: Bucket ptr = 'ctest'
19: value : count distribution
19: 0 -> 1 : 10 |****************************************|
19:
19: Bucket ptr = 'kworker/1:8'
19: value : count distribution
19: 0 -> 1 : 0 | |
19: 2 -> 3 : 0 | |
19: 4 -> 7 : 0 | |
19: 8 -> 15 : 0 | |
19: 16 -> 31 : 0 | |
19: 32 -> 63 : 0 | |
19: 64 -> 127 : 0 | |
19: 128 -> 255 : 0 | |
19: 256 -> 511 : 0 | |
19: 512 -> 1023 : 0 | |
19: 1024 -> 2047 : 0 | |
19: 2048 -> 4095 : 0 | |
19: 4096 -> 8191 : 0 | |
19: 8192 -> 16383 : 0 | |
19: 16384 -> 32767 : 0 | |
19: 32768 -> 65535 : 0 | |
19: 65536 -> 131071 : 0 | |
19: 131072 -> 262143 : 0 | |
19: 262144 -> 524287 : 0 | |
19: 524288 -> 1048575 : 0 | |
19: 1048576 -> 2097151 : 0 | |
19: 2097152 -> 4194303 : 0 | |
19: 4194304 -> 8388607 : 0 | |
19: 8388608 -> 16777215 : 0 | |
19: 16777216 -> 33554431 : 0 | |
19: 33554432 -> 67108863 : 0 | |
19: 67108864 -> 134217727 : 1 |****************************************|
19:
19: Bucket ptr = 'swapper/1'
19: value : count distribution
19: 0 -> 1 : 0 | |
19: 2 -> 3 : 0 | |
19: 4 -> 7 : 0 | |
19: 8 -> 15 : 0 | |
19: 16 -> 31 : 0 | |
19: 32 -> 63 : 0 | |
19: 64 -> 127 : 0 | |
19: 128 -> 255 : 0 | |
19: 256 -> 511 : 0 | |
19: 512 -> 1023 : 0 | |
19: 1024 -> 2047 : 0 | |
19: 2048 -> 4095 : 0 | |
19: 4096 -> 8191 : 0 | |
19: 8192 -> 16383 : 0 | |
19: 16384 -> 32767 : 0 | |
19: 32768 -> 65535 : 0 | |
19: 65536 -> 131071 : 0 | |
19: 131072 -> 262143 : 0 | |
19: 262144 -> 524287 : 0 | |
19: 524288 -> 1048575 : 0 | |
19: 1048576 -> 2097151 : 0 | |
19: 2097152 -> 4194303 : 0 | |
19: 4194304 -> 8388607 : 0 | |
19: 8388608 -> 16777215 : 0 | |
19: 16777216 -> 33554431 : 0 | |
19: 33554432 -> 67108863 : 0 | |
19: 67108864 -> 134217727 : 0 | |
19: 134217728 -> 268435455 : 0 | |
19: 268435456 -> 536870911 : 0 | |
19: 536870912 -> 1073741823 : 0 | |
19: 1073741824 -> 2147483647 : 0 | |
19: 2147483648 -> 4294967295 : 0 | |
19: 4294967296 -> 8589934591 : 0 | |
19: 8589934592 -> 17179869183 : 0 | |
19: 17179869184 -> 34359738367 : 0 | |
19: 34359738368 -> 68719476735 : 1 | |
19: 68719476736 -> 137438953471 : 0 | |
19: 137438953472 -> 274877906943 : 0 | |
19: 274877906944 -> 549755813887 : 1 | |
19: 549755813888 -> 1099511627775 : 100 |********************|
19:
19: Bucket ptr = 'iscsid'
19: value : count distribution
19: 0 -> 1 : 5 |****************************************|
19:
19: Bucket ptr = 'swapper/0'
19: value : count distribution
19: 0 -> 1 : 0 | |
19: 2 -> 3 : 0 | |
19: 4 -> 7 : 0 | |
19: 8 -> 15 : 0 | |
19: 16 -> 31 : 0 | |
19: 32 -> 63 : 0 | |
19: 64 -> 127 : 0 | |
19: 128 -> 255 : 0 | |
19: 256 -> 511 : 0 | |
19: 512 -> 1023 : 0 | |
19: 1024 -> 2047 : 0 | |
19: 2048 -> 4095 .. : 0 | |
19: 4096 -> 8191 : 0 | |
19: 8192 -> 16383 : 0 | |
19: 16384 -> 32767 : 0 | |
19: 32768 -> 65535 : 0 | |
19: 65536 -> 131071 : 0 | |
19: 131072 -> 262143 : 0 | |
19: 262144 -> 524287 : 0 | |
19: 524288 -> 1048575 : 0 | |
19: 1048576 -> 2097151 : 0 | |
19: 2097152 -> 4194303 : 0 | |
19: 4194304 -> 8388607 : 0 | |
19: 8388608 -> 16777215 : 0 | |
19: 16777216 -> 33554431 : 0 | |
19: 33554432 -> 67108863 : 0 | |
19: 67108864 -> 134217727 : 3 |* |
19: 134217728 -> 268435455 : 0 | |
19: 268435456 -> 536870911 : 0 | |
19: 536870912 -> 1073741823 : 0 | |
19: 1073741824 -> 2147483647 : 1 | |
19: 2147483648 -> 4294967295 : 0 | |
19: 4294967296 -> 8589934591 : 0 | |
19: 8589934592 -> 17179869183 : 0 | |
19: 17179869184 -> 34359738367 : 0 | |
19: 34359738368 -> 68719476735 : 51 |********************|
19: 68719476736 -> 137438953471 : 5 |* |
19: 137438953472 -> 274877906943 : 0 | |
19: 274877906944 -> 549755813887 : 11 |**** |
19:
19: Bucket ptr = 'G1 Young RemSet'
19: value : count distribution
19: 0 -> 1 : 3 |****************************************|
19:
19: k_1 & k_2 = 96 0
19: size : count distribution
19: 0 -> 1 : 10 |****************************************|
19: value : count distribution
19: 0 -> 1 : 6 |************************ |
19: 2 -> 3 : 4 |**************** |
19: 4 -> 7 : 10 |****************************************|
19: 8 -> 15 : 7 |**************************** |
19: 16 -> 31 : 9 |************************************ |
19: 32 -> 63 : 6 |************************ |
19: 64 -> 127 : 3 |************ |
19: 128 -> 255 : 10 |****************************************|
19: 256 -> 511 : 8 |******************************** |
19: 512 -> 1023 : 3 |************ |
19: 1024 -> 2047 : 7 |**************************** |
19: 2048 -> 4095 : 4 |**************** |
19: 4096 -> 8191 : 7 |**************************** |
19: 8192 -> 16383 : 3 |************ |
19: 16384 -> 32767 : 5 |******************** |
19: 32768 -> 65535 : 8 |******************************** |
19: 65536 -> 131071 : 7 |**************************** |
19: 131072 -> 262143 : 3 |************ |
19: 262144 -> 524287 : 10 |****************************************|
19: 524288 -> 1048575 : 1 |**** |
19: 1048576 -> 2097151 : 9 |************************************ |
19: 2097152 -> 4194303 : 10 |****************************************|
19: 4194304 -> 8388607 : 1 |**** |
19: 8388608 -> 16777215 : 7 |**************************** |
19: 16777216 -> 33554431 : 7 |**************************** |
19: 33554432 -> 67108863 : 3 |************ |
19: 67108864 -> 134217727 : 6 |************************ |
19: 134217728 -> 268435455 : 3 |************ |
19: 268435456 -> 536870911 : 1 |**** |
19: 536870912 -> 1073741823 : 7 |**************************** |
19: 1073741824 -> 2147483647 : 4 |**************** |
19: 2147483648 -> 4294967295 : 7 |**************************** |
19: value : count distribution
19: 0 -> 1 : 6 |************ |
19: 2 -> 3 : 4 |******** |
19: 4 -> 7 : 10 |********************|
19: 8 -> 15 : 7 |************** |
19: 16 -> 31 : 9 |****************** |
19: 32 -> 63 : 6 |************ |
19: 64 -> 127 : 3 |****** |
19: 128 -> 255 : 10 |********************|
19: 256 -> 511 : 8 |**************** |
19: 512 -> 1023 : 3 |****** |
19: 1024 -> 2047 : 7 |************** |
19: 2048 -> 4095 : 4 |******** |
19: 4096 -> 8191 : 7 |************** |
19: 8192 -> 16383 : 3 |****** |
19: 16384 -> 32767 : 5 |********** |
19: 32768 -> 65535 : 8 |**************** |
19: 65536 -> 131071 : 7 |************** |
19: 131072 -> 262143 : 3 |****** |
19: 262144 -> 524287 : 10 |********************|
19: 524288 -> 1048575 : 1 |** |
19: 1048576 -> 2097151 : 9 |****************** |
19: 2097152 -> 4194303 : 10 |********************|
19: 4194304 -> 8388607 : 1 |** |
19: 8388608 -> 16777215 : 7 |************** |
19: 16777216 -> 33554431 : 7 |************** |
19: 33554432 -> 67108863 : 3 |****** |
19: 67108864 -> 134217727 : 6 |************ |
19: 134217728 -> 268435455 : 3 |****** |
19: 268435456 -> 536870911 : 1 |** |
19: 536870912 -> 1073741823 : 7 |************** |
19: 1073741824 -> 2147483647 : 4 |******** |
19: 2147483648 -> 4294967295 : 7 |************** |
19: 4294967296 -> 8589934591 : 9 |****************** |
19: 8589934592 -> 17179869183 : 9 |****************** |
19: 17179869184 -> 34359738367 : 3 |****** |
19: 34359738368 -> 68719476735 : 5 |********** |
19: 68719476736 -> 137438953471 : 6 |************ |
19: 137438953472 -> 274877906943 : 10 |********************|
19: 274877906944 -> 549755813887 : 2 |**** . |
19: 549755813888 -> 1099511627775 : 10 |********************|
19: 1099511627776 -> 2199023255551 : 1 |** |
19: 2199023255552 -> 4398046511103 : 3 |****** |
19: 4398046511104 -> 8796093022207 : 1 |** |
19: 8796093022208 -> 17592186044415 : 4 |******** |
19: 17592186044416 -> 35184372088831 : 6 |************ |
19: 35184372088832 -> 70368744177663 : 7 |************** |
19: 70368744177664 -> 140737488355327 : 7 |************** |
19: 140737488355328 -> 281474976710655 : 5 |********** |
19: 281474976710656 -> 562949953421311 : 1 |** |
19: 562949953421312 -> 1125899906842623 : 4 |******** |
19: 1125899906842624 -> 2251799813685247 : 7 |************** |
19: 2251799813685248 -> 4503599627370495 : 3 |****** |
19: 4503599627370496 -> 9007199254740991 : 2 |**** |
19: 9007199254740992 -> 18014398509481983 : 3 |****** |
19: 18014398509481984 -> 36028797018963967 : 4 |******** |
19: 36028797018963968 -> 72057594037927935 : 3 |****** |
19: 72057594037927936 -> 144115188075855871 : 2 |**** |
19: 144115188075855872 -> 288230376151711743 : 7 |************** |
19: 288230376151711744 -> 576460752303423487 : 2 |**** |
19: 576460752303423488 -> 1152921504606846975 : 2 |**** |
19: 1152921504606846976 -> 2305843009213693951 : 2 |**** |
19: 2305843009213693952 -> 4611686018427387903 : 6 |************ |
19: 4611686018427387904 -> 9223372036854775807 : 8 |**************** |
19:
19: Bucket ptr = 18446612135440499840L
19: value : count distribution
19: 0 -> 1 : 2 |**** |
19: 2 -> 3 : 5 |********** |
19: 4 -> 7 : 7 |************** |
19: 8 -> 15 : 9 |****************** |
19: 16 -> 31 : 2 |**** |
19: 32 -> 63 : 1 |** |
19: 64 -> 127 : 3 |****** |
19: 128 -> 255 : 10 |********************|
19: 256 -> 511 : 9 |****************** |
19: 512 -> 1023 : 5 |********** |
19: 1024 -> 2047 : 4 |******** |
19: 2048 -> 4095 : 5 |********** |
19: 4096 -> 8191 : 4 |******** |
19: 8192 -> 16383 : 1 |** |
19: 16384 -> 32767 : 3 |****** |
19: 32768 -> 65535 : 7 |************** |
19: 65536 -> 131071 : 9 |****************** |
19: 131072 -> 262143 : 2 |**** |
19: 262144 -> 524287 : 10 |********************|
19: 524288 -> 1048575 : 7 |************** |
19: 1048576 -> 2097151 : 3 |****** |
19: 2097152 -> 4194303 : 9 |****************** |
19: 4194304 -> 8388607 : 8 |**************** |
19: 8388608 -> 16777215 : 8 |**************** |
19: 16777216 -> 33554431 : 5 |********** |
19: 33554432 -> 67108863 : 1 |** |
19: 67108864 -> 134217727 : 10 |********************|
19: 134217728 -> 268435455 : 1 |** |
19: 268435456 -> 536870911 : 7 |************** |
19: 536870912 -> 1073741823 : 6 |************ |
19: 1073741824 -> 2147483647 : 3 |****** |
19: 2147483648 -> 4294967295 : 5 |********** |
19: 4294967296 -> 8589934591 : 7 |************** |
19: 8589934592 -> 17179869183 : 5 |********** |
19: 17179869184 -> 34359738367 : 1 |** |
19: 34359738368 -> 68719476735 : 3 |****** |
19: 68719476736 -> 137438953471 : 6 |************ |
19: 137438953472 -> 274877906943 : 6 |************ |
19: 274877906944 -> 549755813887 : 2 |**** |
19: 549755813888 -> 1099511627775 : 8 |**************** |
19: 1099511627776 -> 2199023255551 : 9 |****************** |
19: 2199023255552 -> 4398046511103 : 5 |********** |
19: 4398046511104 -> 8796093022207 : 10 |********************|
19: 8796093022208 -> 17592186044415 : 3 |****** |
19: 17592186044416 -> 35184372088831 : 10 |********************|
19: 35184372088832 -> 70368744177663 : 3 |****** |
19: 70368744177664 -> 140737488355327 : 8 |**************** |
19: 140737488355328 -> 281474976710655 : 9 |****************** |
19: 281474976710656 -> 562949953421311 : 3 |****** |
19: 562949953421312 -> 1125899906842623 : 5 |********** |
19: 1125899906842624 -> 2251799813685247 : 1 |** |
19: 2251799813685248 -> 4503599627370495 : 6 |************ |
19: 4503599627370496 -> 9007199254740991 : 5 |********** |
19: 9007199254740992 -> 18014398509481983 : 1 |** |
19: 18014398509481984 -> 36028797018963967 : 9 |****************** |
19: 36028797018963968 -> 72057594037927935 : 6 |************ |
19: 72057594037927936 -> 144115188075855871 : 7 |************** |
19: 144115188075855872 -> 288230376151711743 : 10 |********************|
19: 288230376151711744 -> 576460752303423487 : 7 |************** |
19: 576460752303423488 -> 1152921504606846975 : 2 |**** |
19: 1152921504606846976 -> 2305843009213693951 : 5 |********** |
19: 2305843009213693952 -> 4611686018427387903 : 8 |**************** |
19: 4611686018427387904 -> 9223372036854775807 : 6 |************ |
19: 9223372036854775808 -> 18446744073709551615 : 4 |******** |
19:
19: Bucket ptr = 18446612135440500608L
19: value : count distribution
19: 0 -> 1 : 2 |**** |
19: 2 -> 3 : 5 |********** |
19: 4 -> 7 : 7 |************** |
19: 8 -> 15 : 9 |****************** |
19: 16 -> 31 : 2 |**** |
19: 32 -> 63 : 1 |** |
19: 64 -> 127 : 3 |****** |
19: 128 -> 255 : 10 |********************|
19: 256 -> 511 : 9 |****************** |
19: 512 -> 1023 : 5 |********** |
19: 1024 -> 2047 : 4 |******** |
19: 2048 -> 4095 : 5 |********** |
19: 4096 -> 8191 : 4 |*******.
19: ----------------------------------------------------------------------
19: Ran 4 tests in 3.470s
19:
19: OK
19: * |
19: 8192 -> 16383 : 1 |** |
19: 16384 -> 32767 : 3 |****** |
19: 32768 -> 65535 : 7 |************** |
19: 65536 -> 131071 : 9 |****************** |
19: 131072 -> 262143 : 2 |**** |
19: 262144 -> 524287 : 10 |********************|
19: 524288 -> 1048575 : 7 |************** |
19: 1048576 -> 2097151 : 3 |****** |
19: 2097152 -> 4194303 : 9 |****************** |
19: 4194304 -> 8388607 : 8 |**************** |
19: 8388608 -> 16777215 : 8 |**************** |
19: 16777216 -> 33554431 : 5 |********** |
19: 33554432 -> 67108863 : 1 |** |
19: 67108864 -> 134217727 : 10 |********************|
19: 134217728 -> 268435455 : 1 |** |
19: 268435456 -> 536870911 : 7 |************** |
19: 536870912 -> 1073741823 : 6 |************ |
19: 1073741824 -> 2147483647 : 3 |****** |
19: 2147483648 -> 4294967295 : 5 |********** |
19: 4294967296 -> 8589934591 : 7 |************** |
19: 8589934592 -> 17179869183 : 5 |********** |
19: 17179869184 -> 34359738367 : 1 |** |
19: 34359738368 -> 68719476735 : 3 |****** |
19: 68719476736 -> 137438953471 : 6 |************ |
19: 137438953472 -> 274877906943 : 6 |************ |
19: 274877906944 -> 549755813887 : 2 |**** |
19: 549755813888 -> 1099511627775 : 8 |**************** |
19: 1099511627776 -> 2199023255551 : 9 |****************** |
19: 2199023255552 -> 4398046511103 : 5 |********** |
19: 4398046511104 -> 8796093022207 : 10 |********************|
19: 8796093022208 -> 17592186044415 : 3 |****** |
19: 17592186044416 -> 35184372088831 : 10 |********************|
19: 35184372088832 -> 70368744177663 : 3 |****** |
19: 70368744177664 -> 140737488355327 : 8 |**************** |
19: 140737488355328 -> 281474976710655 : 9 |****************** |
19: 281474976710656 -> 562949953421311 : 3 |****** |
19: 562949953421312 -> 1125899906842623 : 5 |********** |
19: 1125899906842624 -> 2251799813685247 : 1 |** |
19: 2251799813685248 -> 4503599627370495 : 6 |************ |
19: 4503599627370496 -> 9007199254740991 : 5 |********** |
19: 9007199254740992 -> 18014398509481983 : 1 |** |
19: 18014398509481984 -> 36028797018963967 : 9 |****************** |
19: 36028797018963968 -> 72057594037927935 : 6 |************ |
19: 72057594037927936 -> 144115188075855871 : 7 |************** |
19: 144115188075855872 -> 288230376151711743 : 10 |********************|
19: 288230376151711744 -> 576460752303423487 : 7 |************** |
19: 576460752303423488 -> 1152921504606846975 : 2 |**** |
19: 1152921504606846976 -> 2305843009213693951 : 5 |********** |
19: 2305843009213693952 -> 4611686018427387903 : 8 |**************** |
19: 4611686018427387904 -> 9223372036854775807 : 6 |************ |
19: 9223372036854775808 -> 18446744073709551615 : 4 |******** |
19/44 Test #19: py_test_histogram ................ Passed 3.52 sec
test 20
Start 20: py_array
20: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_array" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_array.py"
20: Test timeout computed to be: 9.99988e+06
20: ....
20: ----------------------------------------------------------------------
20: Ran 4 tests in 1.387s
20:
20: OK
20/44 Test #20: py_array ......................... Passed 1.43 sec
test 21
Start 21: py_uprobes
21: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_uprobes" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_uprobes.py"
21: Test timeout computed to be: 9.99988e+06
21: .Python 2.7.12
21: .Arena 0:
21: system bytes = 26271744
21: in use bytes = 2953840
21: Total (incl. mmap):
21: system bytes = 27062272
21: in use bytes = 3744368
21: max mmap regions = 7
21: max mmap bytes = 9203712
21: .
21: ----------------------------------------------------------------------
21: Ran 3 tests in 6.557s
21:
21: OK
21/44 Test #21: py_uprobes ....................... Passed 6.60 sec
test 22
Start 22: py_uprobes_2
22: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_uprobes2" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_uprobes2.py"
22: Test timeout computed to be: 9.99988e+06
22: .
22: ----------------------------------------------------------------------
22: Ran 1 test in 0.261s
22:
22: OK
22/44 Test #22: py_uprobes_2 ..................... Passed 0.32 sec
test 23
Start 23: py_test_stackid
23: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_stackid" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_stackid.py"
23: Test timeout computed to be: 9.99988e+06
23: ss
23: ----------------------------------------------------------------------
23: Ran 2 tests in 0.000s
23:
23: OK (skipped=2)
23/44 Test #23: py_test_stackid .................. Passed 0.09 sec
test 24
Start 24: py_test_tracepoint
24: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_tracepoint" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_tracepoint.py"
24: Test timeout computed to be: 9.99988e+06
24: ss
24: ----------------------------------------------------------------------
24: Ran 2 tests in 0.000s
24:
24: OK (skipped=2)
24/44 Test #24: py_test_tracepoint ............... Passed 0.04 sec
test 25
Start 25: py_test_perf_event
25: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_perf_event" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_perf_event.py"
25: Test timeout computed to be: 9.99988e+06
25: perf_event_open: No such file or directory
25: s
25: ----------------------------------------------------------------------
25: Ran 1 test in 0.333s
25:
25: OK (skipped=1)
25/44 Test #25: py_test_perf_event ............... Passed 0.46 sec
test 26
Start 26: py_test_utils
26: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_utils" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_utils.py"
26: Test timeout computed to be: 9.99988e+06
26: ..
26: ----------------------------------------------------------------------
26: Ran 2 tests in 0.000s
26:
26: OK
26/44 Test #26: py_test_utils .................... Passed 0.04 sec
test 27
Start 27: py_test_percpu
27: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_percpu" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_percpu.py"
27: Test timeout computed to be: 9.99988e+06
27: could not open bpf map: stub, error: Invalid argument
27: scould not open bpf map: stub, error: Invalid argument
27: scould not open bpf map: stub, error: Invalid argument
27: scould not open bpf map: stub, error: Invalid argument
27: s
27: ----------------------------------------------------------------------
27: Ran 4 tests in 0.835s
27:
27: OK (skipped=4)
27/44 Test #27: py_test_percpu ................... Passed 0.88 sec
test 28
Start 28: py_test_dump_func
28: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_dump_func" "simple" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_dump_func.py"
28: Test timeout computed to be: 9.99988e+06
28: .
28: ----------------------------------------------------------------------
28: Ran 1 test in 0.112s
28:
28: OK
28/44 Test #28: py_test_dump_func ................ Passed 0.15 sec
test 29
Start 29: py_test_disassembler
29: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_disassembler" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_disassembler.py"
29: Test timeout computed to be: 9.99988e+06
29: ..
29: ----------------------------------------------------------------------
29: Ran 2 tests in 0.230s
29:
29: OK
29/44 Test #29: py_test_disassembler ............. Passed 0.27 sec
test 30
Start 30: py_test_tools_smoke
30: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_tools_smoke" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_tools_smoke.py"
30: Test timeout computed to be: 9.99988e+06
30: Traceback (most recent call last):
30: File "../../tools/argdist.py", line 707, in run
30: self._main_loop()
30: File "../../tools/argdist.py", line 697, in _main_loop
30: exit()
30: File "/usr/lib/python2.7/site.py", line 375, in __call__
30: raise SystemExit(code)
30: SystemExit: None
30: .....'unknown': I need something more specific.
30: .'unknown': I need something more specific.
30: 'unknown': I need something more specific.
30: 'unknown': I need something more specific.
30: 'unknown': I need something more specific.
30: .......s.s....sss....'unknown': I need something more specific.
30: ......Killed
30: .ss.ss...ssslibbpf: failed to find valid kernel BTF
30: libbpf: vmlinux BTF is not found
30: ..s.ss'unknown': I need something more specific.
30: .ss..s..s...s..'unknown': I need something more specific.
30: ...'unknown': I need something more specific.
30: .s...'unknown': I need something more specific.
30: ...libbpf: failed to find valid kernel BTF
30: libbpf: vmlinux BTF is not found
30: .s....
30: ----------------------------------------------------------------------
30: Ran 83 tests in 203.479s
30:
30: OK (skipped=22)
30/44 Test #30: py_test_tools_smoke .............. Passed 203.57 sec
test 31
Start 31: py_test_tools_memleak
31: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_tools_memleak" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_tools_memleak.py"
31: Test timeout computed to be: 9.99988e+06
31: ssssssss
31: ----------------------------------------------------------------------
31: Ran 8 tests in 0.054s
31:
31: OK (skipped=8)
31/44 Test #31: py_test_tools_memleak ............ Passed 0.09 sec
test 32
Start 32: py_test_usdt
32: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_usdt" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_usdt.py"
32: Test timeout computed to be: 9.99988e+06
32: <stdin>: In function ‘main’:
32: <stdin>:23:17: warning: null character(s) preserved in literal
32: <stdin>:25:42: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘uint64_t {aka long unsigned int}’ [-Wformat=]
32: <stdin>:25:42: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘uint64_t {aka long unsigned int}’ [-Wformat=]
32: <stdin>:28:17: warning: null character(s) preserved in literal
32: <stdin>:30:42: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘uint64_t {aka long unsigned int}’ [-Wformat=]
32: <stdin>:30:42: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘uint64_t {aka long unsigned int}’ [-Wformat=]
32: clang -cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -emit-llvm-uselists -disable-free -disable-llvm-verifier -main-file-name main.c -mrelocation-model static -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu x86-64 -momit-leaf-frame-pointer -dwarf-column-info -debugger-tuning=gdb -coverage-file /usr/src/linux-headers-4.4.0-116-generic/main.c -nostdsysteminc -nobuiltininc -resource-dir ../lib/clang/3.8.0 -isystem /virtual/lib/clang/include -include ./include/linux/kconfig.h -include /virtual/include/bcc/bpf.h -include /virtual/include/bcc/helpers.h -isystem /virtual/include -I /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python -D __BPF_TRACING__ -I ./arch/x86/include -I arch/x86/include/generated/uapi -I arch/x86/include/generated -I include -I ./arch/x86/include/uapi -I arch/x86/include/generated/uapi -I ./include/uapi -I include/generated/uapi -D __KERNEL__ -D __HAVE_BUILTIN_BSWAP16__ -D __HAVE_BUILTIN_BSWAP32__ -D __HAVE_BUILTIN_BSWAP64__ -D KBUILD_MODNAME="bcc" -O2 -Wno-deprecated-declarations -Wno-gnu-variable-sized-type-not-at-end -Wno-pragma-once-outside-header -Wno-address-of-packed-member -Wno-unknown-warning-option -Wno-unused-value -Wno-pointer-sign -fdebug-compilation-dir /usr/src/linux-headers-4.4.0-116-generic -ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o main.bc -x c /virtual/main.c
32: #if defined(BPF_LICENSE)
32: #error BPF_LICENSE cannot be specified through cflags
32: #endif
32: #if !defined(CONFIG_CC_STACKPROTECTOR)
32: #if defined(CONFIG_CC_STACKPROTECTOR_AUTO) \
32: || defined(CONFIG_CC_STACKPROTECTOR_REGULAR) \
32: || defined(CONFIG_CC_STACKPROTECTOR_STRONG)
32: #define CONFIG_CC_STACKPROTECTOR
32: #endif
32: #endif
32: #define bpf_probe_read_kernel bpf_probe_read
32: #define bpf_probe_read_kernel_str bpf_probe_read_str
32: #define bpf_probe_read_user bpf_probe_read
32: #define bpf_probe_read_user_str bpf_probe_read_str
32: #include <uapi/linux/ptrace.h>
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace1_1(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int8_t)) return -1;
32: switch(PT_REGS_IP(ctx)) {
32: case 0x4006e4ULL: *((int8_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory"); return 0;
32: case 0x4006eaULL: *((int8_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory"); return 0;
32: }
32: return -1;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace1_2(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int32_t)) return -1;
32: switch(PT_REGS_IP(ctx)) {
32: case 0x4006e4ULL: { u64 __addr = ctx->bp + -204; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32: case 0x4006eaULL: { u64 __addr = ctx->bp + -208; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32: }
32: return -1;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace3_1(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int32_t)) return -1;
32: switch(PT_REGS_IP(ctx)) {
32: case 0x4006e5ULL: { u64 __addr = ctx->bp + -208; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32: case 0x4006f8ULL: *((int32_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory"); return 0;
32: }
32: return -1;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace3_2(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int32_t)) return -1;
32: switch(PT_REGS_IP(ctx)) {
32: case 0x4006e5ULL: { u64 __addr = ctx->bp + -204; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32: case 0x4006f8ULL: *((int32_t *)dest) = ctx->dx; __asm__ __volatile__("": : :"memory"); return 0;
32: }
32: return -1;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace2_1(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int32_t)) return -1;
32: *((int32_t *)dest) = 5;
32: return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace2_2(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int8_t)) return -1;
32: *((int8_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory");
32: return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace4_1(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int64_t)) return -1;
32: *((int64_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory");
32: return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace4_2(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int64_t)) return -1;
32: *((int64_t *)dest) = ctx->dx; __asm__ __volatile__("": : :"memory");
32: return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace5_1(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int64_t)) return -1;
32: *((int64_t *)dest) = ctx->dx; __asm__ __volatile__("": : :"memory");
32: return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace5_2(struct pt_regs *ctx, void *dest, size_t len) {
32: if (len != sizeof(int64_t)) return -1;
32: *((int64_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory");
32: return 0;
32: }
32:
32: #include <linux/blkdev.h>
32: #include <uapi/linux/ptrace.h>
32:
32: struct probe_result_t1 {
32: char v1;
32: int v2;
32: };
32:
32: struct probe_result_t2 {
32: int v1;
32: char v2;
32: };
32:
32: struct probe_result_t3 {
32: int v1;
32: int v2;
32: };
32:
32: struct probe_result_t4 {
32: u64 v1;
32: char v2[8];
32: };
32:
32: struct probe_result_t5 {
32: char v1[8];
32: u64 v2;
32: };
32:
32: BPF_PERF_OUTPUT(event1);
32: BPF_PERF_OUTPUT(event2);
32: BPF_PERF_OUTPUT(event3);
32: BPF_PERF_OUTPUT(event4);
32: BPF_PERF_OUTPUT(event5);
32:
32: __attribute__((section(".bpf.fn.do_trace1")))
32: int do_trace1(struct pt_regs *ctx) {
32:
32: struct probe_result_t1 result = {};
32: _bpf_readarg_do_trace1_1(ctx, &result.v1, sizeof(*(&result.v1)));
32: _bpf_readarg_do_trace1_2(ctx, &result.v2, sizeof(*(&result.v2)));
32: bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -1), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32: return 0;
32: };
32: __attribute__((section(".bpf.fn.do_trace2")))
32: int do_trace2(struct pt_regs *ctx) {
32:
32: struct probe_result_t2 result = {};
32: _bpf_readarg_do_trace2_1(ctx, &result.v1, sizeof(*(&result.v1)));
32: _bpf_readarg_do_trace2_2(ctx, &result.v2, sizeof(*(&result.v2)));
32: bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -2), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32: return 0;
32: }
32: __attribute__((section(".bpf.fn.do_trace3")))
32: int do_trace3(struct pt_regs *ctx) {
32:
32: struct probe_result_t3 result = {};
32: _bpf_readarg_do_trace3_1(ctx, &result.v1, sizeof(*(&result.v1)));
32: _bpf_readarg_do_trace3_2(ctx, &result.v2, sizeof(*(&result.v2)));
32: bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -3), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32: return 0;
32: }
32: __attribute__((section(".bpf.fn.do_trace4")))
32: int do_trace4(struct pt_regs *ctx) {
32:
32: struct probe_result_t4 result = {};
32: _bpf_readarg_do_trace4_1(ctx, &result.v1, sizeof(*(&result.v1)));
32: ({ u64 __addr = 0x0; _bpf_readarg_do_trace4_2(ctx, &__addr, sizeof(__addr));bpf_probe_read(&result.v2, sizeof(result.v2), (void *)__addr);});
32: bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -4), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32: return 0;
32: }
32: __attribute__((section(".bpf.fn.do_trace5")))
32: int do_trace5(struct pt_regs *ctx) {
32:
32: struct probe_result_t5 result = {};
32: ({ u64 __addr = 0x0; _bpf_readarg_do_trace5_1(ctx, &__addr, sizeof(__addr));bpf_probe_read(&result.v1, sizeof(result.v1), (void *)__addr);});
32: _bpf_readarg_do_trace5_2(ctx, &result.v2, sizeof(*(&result.v2)));
32: bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -5), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32: return 0;
32: }
32:
32: #include <bcc/footer.h>
32: .
32: ----------------------------------------------------------------------
32: Ran 1 test in 2.049s
32:
32: OK
32: Running from kernel directory at: /lib/modules/4.4.0-116-generic/build
32: str3
32: str2
32: str5
32: str4
32/44 Test #32: py_test_usdt ..................... Passed 2.27 sec
test 33
Start 33: py_test_usdt2
33: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_usdt2" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_usdt2.py"
33: Test timeout computed to be: 9.99988e+06
33: .
33: ----------------------------------------------------------------------
33: Ran 1 test in 2.041s
33:
33: OK
33/44 Test #33: py_test_usdt2 .................... Passed 2.19 sec
test 34
Start 34: py_test_usdt3
34: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_usdt3" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_usdt3.py"
34: Test timeout computed to be: 9.99988e+06
34: test:probe [sema 0x0]
34: location #1 /proc/9085/root/tmp/tmp7Zaa2a/liba.so 0x657
34: argument #1 4 signed bytes @ *(bp - 4)
34: location #2 /proc/9085/root/tmp/tmp7Zaa2a/libb.so 0x657
34: argument #1 4 signed bytes @ *(bp - 4)
34: location #3 /proc/9085/root/tmp/tmp7Zaa2a/a.out 0x40072d
34: argument #1 4 signed bytes @ *(bp - 4)
34: test_dup_name:probe [sema 0x0]
34: location #1 /proc/9085/root/tmp/tmp7Zaa2a/liba.so 0x658
34: argument #1 4 signed bytes @ *(bp - 4)
34: location #2 /proc/9085/root/tmp/tmp7Zaa2a/libb.so 0x658
34: argument #1 4 signed bytes @ *(bp - 4)
34: location #3 /proc/9085/root/tmp/tmp7Zaa2a/a.out 0x40072e
34: argument #1 4 signed bytes @ *(bp - 4)
34: libc:setjmp [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x351f1
34: argument #1 8 unsigned bytes @ di
34: argument #2 4 signed bytes @ si
34: argument #3 8 unsigned bytes @ ax
34: libc:longjmp [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x352d3
34: argument #1 8 unsigned bytes @ di
34: argument #2 4 signed bytes @ si
34: argument #3 8 unsigned bytes @ dx
34: location #2 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x119063
34: argument #1 8 unsigned bytes @ di
34: argument #2 4 signed bytes @ si
34: argument #3 8 unsigned bytes @ dx
34: libc:longjmp_target [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x352ef
34: argument #1 8 unsigned bytes @ di
34: argument #2 4 signed bytes @ ax
34: argument #3 8 unsigned bytes @ dx
34: location #2 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x11907f
34: argument #1 8 unsigned bytes @ di
34: argument #2 4 signed bytes @ ax
34: argument #3 8 unsigned bytes @ dx
34: libc:memory_heap_new [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x7d398
34: argument #1 8 unsigned bytes @ bx
34: argument #2 8 unsigned bytes @ bp
34: libc:memory_arena_reuse_free_list [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x7d6ec
34: argument #1 8 unsigned bytes @ dx
34: libc:memory_sbrk_less [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x7d8de
34: argument #1 8 unsigned bytes @ ax
34: argument #2 8 signed bytes @ bx
34: libc:memory_arena_reuse_wait [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x7d9eb
34: argument #1 8 unsigned bytes @ dx
34: argument #2 8 unsigned bytes @ dx
34: argument #3 8 unsigned bytes @ bx
34: libc:memory_arena_reuse [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x7db14
34: argument #1 8 unsigned bytes @ dx
34: argument #2 8 unsigned bytes @ bx
34: libc:memory_arena_new [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x7dcbb
34: argument #1 8 unsigned bytes @ dx
34: argument #2 8 unsigned bytes @ bp
34: libc:memory_arena_retry [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x7deb3
34: argument #1 8 unsigned bytes @ si
34: argument #2 8 unsigned bytes @ di
34: libc:memory_heap_free [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x80265
34: argument #1 8 unsigned bytes @ di
34: argument #2 8 unsigned bytes @ ax
34: libc:memory_heap_less [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x8040e
34: argument #1 8 unsigned bytes @ r15
34: argument #2 8 unsigned bytes @ r14
34: libc:memory_heap_more [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x81351
34: argument #1 8 unsigned bytes @ r8
34: argument #2 8 unsigned bytes @ cx
34: libc:memory_sbrk_more [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x81638
34: argument #1 8 unsigned bytes @ ax
34: argument #2 8 signed bytes @ r15
34: libc:memory_malloc_retry [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x84268
34: argument #1 8 unsigned bytes @ bp
34: location #2 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x85978
34: argument #1 8 unsigned bytes @ bp
34: libc:memory_mallopt_free_dyn_thresholds [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x84581
34: argument #1 8 unsigned bytes @ ax
34: argument #2 8 unsigned bytes @ dx
34: libc:memory_realloc_retry [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x84a20
34: argument #1 8 unsigned bytes @ r13
34: argument #2 8 unsigned bytes @ bx
34: location #2 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x85da0
34: argument #1 8 unsigned bytes @ r13
34: argument #2 8 unsigned bytes @ bx
34: libc:memory_memalign_retry [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x84c48
34: argument #1 8 unsigned bytes @ r12
34: argument #2 8 unsigned bytes @ bx
34: location #2 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x85fe8
34: argument #1 8 unsigned bytes @ r12
34: argument #2 8 unsigned bytes @ bx
34: location #3 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x867d8
34: argument #1 8 unsigned bytes @ r12
34: argument #2 8 unsigned bytes @ bx
34: location #4 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x86ac8
34: argument #1 8 unsigned bytes @ r12
34: argument #2 8 unsigned bytes @ bx
34: location #5 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x87822
34: argument #1 8 unsigned bytes @ bx
34: argument #2 8 unsigned bytes @ r12
34: libc:memory_calloc_retry [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x84f40
34: argument #1 8 unsigned bytes @ bp
34: libc:memory_mallopt [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x852d4
34: argument #1 4 signed bytes @ bx
34: argument #2 4 signed bytes @ bp
34: libc:memory_mallopt_mxfast [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x85302
34: argument #1 4 signed bytes @ bp
34: argument #2 8 unsigned bytes @ *(&global_max_fast + 0)
34: libc:memory_mallopt_arena_max [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x8532c
34: argument #1 4 signed bytes @ bp
34: argument #2 8 unsigned bytes @ *(&mp_ + 32)
34: libc:memory_mallopt_arena_test [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x85384
34: argument #1 4 signed bytes @ bp
34: argument #2 8 unsigned bytes @ *(&mp_ + 24)
34: libc:memory_mallopt_mmap_max [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x85398
34: argument #1 4 signed bytes @ bp
34: argument #2 4 signed bytes @ *(&mp_ + 44)
34: argument #3 4 signed bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_mmap_threshold [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x853be
34: argument #1 4 signed bytes @ bp
34: argument #2 8 unsigned bytes @ *(&mp_ + 16)
34: argument #3 4 signed bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_top_pad [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x853e0
34: argument #1 4 signed bytes @ bp
34: argument #2 8 unsigned bytes @ *(&mp_ + 8)
34: argument #3 4 signed bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_trim_threshold [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x85400
34: argument #1 4 signed bytes @ bp
34: argument #2 8 unsigned bytes @ *(&mp_ + 0)
34: argument #3 4 signed bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_perturb [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x85420
34: argument #1 4 signed bytes @ bp
34: argument #2 4 signed bytes @ *(&perturb_byte + 0)
34: libc:memory_mallopt_check_action [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x85438
34: argument #1 4 signed bytes @ bp
34: argument #2 4 signed bytes @ *(&check_action + 0)
34: libc:lll_lock_wait_private [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/libc-2.23.so 0x115094
34: argument #1 8 unsigned bytes @ di
34: rtld:init_start [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x396a
34: argument #1 4 signed bytes @ 0
34: argument #2 8 unsigned bytes @ r14
34: rtld:init_complete [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x3f3b
34: argument #1 4 signed bytes @ 0
34: argument #2 8 unsigned bytes @ bx
34: rtld:map_failed [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x56f6
34: argument #1 8 signed bytes @ *(sp + 72)
34: argument #2 8 unsigned bytes @ bp
34: rtld:map_start [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x669a
34: argument #1 8 signed bytes @ *(bp + 40)
34: argument #2 8 unsigned bytes @ *(bp - 216)
34: rtld:map_complete [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x15650
34: argument #1 8 signed bytes @ *(ax + 40)
34: argument #2 8 unsigned bytes @ *(bp - 120)
34: argument #3 8 unsigned bytes @ *(bp - 104)
34: rtld:reloc_start [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x1586c
34: argument #1 8 signed bytes @ *(r12 + 40)
34: argument #2 8 unsigned bytes @ *(bp - 120)
34: rtld:reloc_complete [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x158c9
34: argument #1 8 signed bytes @ *(ax + 40)
34: argument #2 8 unsigned bytes @ *(bp - 120)
34: argument #3 8 unsigned bytes @ *(bp - 104)
34: rtld:unmap_start [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x165d5
34: argument #1 8 signed bytes @ *(bp - 112)
34: argument #2 8 unsigned bytes @ *(bp - 88)
34: rtld:unmap_complete [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x167e6
34: argument #1 8 signed bytes @ *(bp - 112)
34: argument #2 8 unsigned bytes @ *(bp - 88)
34: rtld:setjmp [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x1b64d
34: argument #1 8 unsigned bytes @ di
34: argument #2 4 signed bytes @ si
34: argument #3 8 unsigned bytes @ ax
34: rtld:longjmp [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x1b68d
34: argument #1 8 unsigned bytes @ di
34: argument #2 4 signed bytes @ si
34: argument #3 8 unsigned bytes @ dx
34: rtld:longjmp_target [sema 0x0]
34: location #1 /proc/9085/root/lib/x86_64-linux-gnu/ld-2.23.so 0x1b6a9
34: argument #1 8 unsigned bytes @ di
34: argument #2 4 signed bytes @ ax
34: argument #3 8 unsigned bytes @ dx
34: .
34: ----------------------------------------------------------------------
34: Ran 1 test in 1.109s
34:
34: OK
34: temp directory: /tmp/tmp7Zaa2a
34/44 Test #34: py_test_usdt3 .................... Passed 1.24 sec
test 35
Start 35: py_test_license
35: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_license" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_license.py"
35: Test timeout computed to be: 9.99988e+06
35: /virtual/main.c:2:2: error: BPF_LICENSE cannot be specified through cflags
35: #error BPF_LICENSE cannot be specified through cflags
35: ^
35: 1 error generated.
35: x/virtual/main.c:2:2: error: BPF_LICENSE cannot be specified through cflags
35: #error BPF_LICENSE cannot be specified through cflags
35: ^
35: 1 error generated.
35: x.bpf: Failed to load program: Invalid argument
35: 0: (bf) r6 = r1
35: 1: (85) call 5
35: cannot call GPL only function from proprietary program
35:
35: x../virtual/main.c:2:2: error: BPF_LICENSE cannot be specified through cflags
35: #error BPF_LICENSE cannot be specified through cflags
35: ^
35: 1 error generated.
35: xbpf: Failed to load program: Invalid argument
35: 0: (bf) r6 = r1
35: 1: (85) call 5
35: cannot call GPL only function from proprietary program
35:
35: x..
35: ----------------------------------------------------------------------
35: Ran 10 tests in 2.463s
35:
35: OK (expected failures=5)
35/44 Test #35: py_test_license .................. Passed 2.51 sec
test 36
Start 36: py_test_free_bcc_memory
36: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_free_bcc_memory" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_free_bcc_memory.py"
36: Test timeout computed to be: 9.99988e+06
36: s
36: ----------------------------------------------------------------------
36: Ran 1 test in 0.000s
36:
36: OK (skipped=1)
36/44 Test #36: py_test_free_bcc_memory .......... Passed 0.04 sec
test 37
Start 37: py_test_rlimit
37: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_rlimit" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_rlimit.py"
37: Test timeout computed to be: 9.99988e+06
37: could not open bpf map: unused, error: Operation not permitted
37: .
37: ----------------------------------------------------------------------
37: Ran 1 test in 0.456s
37:
37: OK
37/44 Test #37: py_test_rlimit ................... Passed 0.51 sec
test 38
Start 38: py_test_lpm_trie
38: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_test_lpm_trie" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_lpm_trie.py"
38: Test timeout computed to be: 9.99988e+06
38: ss
38: ----------------------------------------------------------------------
38: Ran 2 tests in 0.000s
38:
38: OK (skipped=2)
38/44 Test #38: py_test_lpm_trie ................. Passed 0.05 sec
test 39
Start 39: py_ringbuf
39: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_ringbuf" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_ringbuf.py"
39: Test timeout computed to be: 9.99988e+06
39: ssss
39: ----------------------------------------------------------------------
39: Ran 4 tests in 0.000s
39:
39: OK (skipped=4)
39/44 Test #39: py_ringbuf ....................... Passed 0.04 sec
test 40
Start 40: py_queuestack
40: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "py_queuestack" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/python/test_queuestack.py"
40: Test timeout computed to be: 9.99988e+06
40: ss
40: ----------------------------------------------------------------------
40: Ran 2 tests in 0.000s
40:
40: OK (skipped=2)
40/44 Test #40: py_queuestack .................... Passed 0.04 sec
test 41
Start 41: lua_test_clang
41: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "lua_test_clang" "sudo" "/usr/bin/luajit" "test_clang.lua"
41: Test timeout computed to be: 9.99988e+06
41: /virtual/main.c:1:30: error: expected expression
41: int failure(void *ctx) { if (); return 0; }
41: ^
41: 1 error generated.
41: ....................
41: Ran 20 tests in 10.274 seconds, 20 successes, 0 failures
41: OK
41/44 Test #41: lua_test_clang ................... Passed 10.31 sec
test 42
Start 42: lua_test_uprobes
42: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "lua_test_uprobes" "sudo" "/usr/bin/luajit" "test_uprobes.lua"
42: Test timeout computed to be: 9.99988e+06
42: Python 2.7.12
42: Arena 0:
42: system bytes = 23154688
42: in use bytes = 1009568
42: Total (incl. mmap):
42: system bytes = 23154688
42: in use bytes = 1009568
42: max mmap regions = 6
42: max mmap bytes = 8413184
42: ..
42: Ran 2 tests in 0.441 seconds, 2 successes, 0 failures
42: OK
42/44 Test #42: lua_test_uprobes ................. Passed 0.54 sec
test 43
Start 43: lua_test_dump
43: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/build/tests/wrapper.sh "lua_test_dump" "sudo" "/usr/bin/luajit" "test_dump.lua"
43: Test timeout computed to be: 9.99988e+06
43: .
43: Ran 1 tests in 0.221 seconds, 1 successes, 0 failures
43: OK
43/44 Test #43: lua_test_dump .................... Passed 0.24 sec
test 44
Start 44: lua_test_standalone
44: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1604/tests/lua/test_standalone.sh
44: Test timeout computed to be: 9.99988e+06
44: + cd src/lua
44: + [[ ! -x bcc-lua ]]
44: + echo 'bcc-lua not built --- skipping'
44: bcc-lua not built --- skipping
44: + exit 0
44/44 Test #44: lua_test_standalone .............. Passed 0.00 sec
100% tests passed, 0 tests failed out of 44
Total Test time (real) = 334.18 sec
+ head -n 1 Testing/TAG
+ cp Testing/20200715-1611/Test.xml ./CTestResults.xml
Taking single-use slave ubuntu1604-slave-748 offline.
Finished: SUCCESS