Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
bcc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
bcc
Commits
942c9c15
Commit
942c9c15
authored
Jan 12, 2017
by
Michael Przybylski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Debian jessie compile/test work in progress.
parent
3e77af57
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
106 additions
and
5 deletions
+106
-5
.gitignore
.gitignore
+5
-1
INSTALL.md
INSTALL.md
+80
-0
debian/control
debian/control
+6
-1
tests/python/test_brb2.py
tests/python/test_brb2.py
+13
-3
tests/python/test_uprobes.py
tests/python/test_uprobes.py
+2
-0
No files found.
.gitignore
View file @
942c9c15
...
...
@@ -2,6 +2,10 @@
*.swp
*.swo
*.pyc
.idea
# Build art
e
facts
# Build art
i
facts
/build/
cmake-build-debug
debian/**/*.log
obj-x86_64-linux-gnu
INSTALL.md
View file @
942c9c15
...
...
@@ -153,6 +153,86 @@ The appropriate dependencies (e.g., ```clang```, ```llvm``` with BPF backend) wi
# Source
## Debian - Source
```
ROUGH NOTES:
Add jessie-backports repo
Add non-free repo to sources.list
Install latest 4.x kernel and headers from jessie-backports
See updated control file for all package-build dependencies
Other required tooling: devscripts
debuild -b -uc -us
Re-running tests:
cd obj-x86_64-linux-gnu/
sudo /usr/bin/ctest --force-new-ctest-process -j1 -V
20: Test command: /home/mikep/bcc/obj-x86_64-linux-gnu/tests/wrapper.sh "py_uprobes" "sudo" "/home/mikep/bcc/tests/python/test_uprobes.py"
20: Test timeout computed to be: 9.99988e+06
20: Python 2.7.9
20: .Arena 0:
20: system bytes = 13803520
20: in use bytes = 2970096
20: Total (incl. mmap):
20: system bytes = 14594048
20: in use bytes = 3760624
20: max mmap regions = 4
20: max mmap bytes = 1589248
20: F
20: ======================================================================
20: FAIL: test_simple_library (__main__.TestUprobes)
20: ----------------------------------------------------------------------
20: Traceback (most recent call last):
20: File "/home/mikep/bcc/tests/python/test_uprobes.py", line 34, in test_simple_library
20: self.assertEqual(b["stats"][ctypes.c_int(0)].value, 2)
20: AssertionError: 0L != 2
26: Test command: /home/mikep/bcc/obj-x86_64-linux-gnu/tests/wrapper.sh "lua_test_uprobes" "sudo" "/usr/bin/luajit" "test_uprobes.lua"
26: Test timeout computed to be: 9.99988e+06
26: Python 2.7.9
26: Arena 0:
26: system bytes = 12394496
26: in use bytes = 1561664
26: Total (incl. mmap):
26: system bytes = 12394496
26: in use bytes = 1561664
26: max mmap regions = 4
26: max mmap bytes = 999424
26: .F
26: Failed tests:
26: -------------
26: 1) TestUprobes.test_simple_library
26: test_uprobes.lua:38: expected: 2, actual: 0
26: stack traceback:
26: test_uprobes.lua:38: in function 'TestUprobes.test_simple_library'
26:
26: Ran 2 tests in 0.141 seconds, 1 successes, 1 failures
26: Failed
26/28 Test #26: lua_test_uprobes .................***Failed 0.27 sec
test 28
Start 28: lua_test_standalone
28: Test command: /home/mikep/bcc/tests/lua/test_standalone.sh
28: Test timeout computed to be: 9.99988e+06
28: + cd src/lua
28: + [[ ! -x bcc-lua ]]
28: + ldd bcc-lua
28: + grep -q luajit
28: + rm -f libbcc.so probe.lua
28: + echo 'return function(BPF) print("Hello world") end'
28: + ./bcc-lua probe.lua
28: Hello world
28: + fail 'bcc-lua runs without libbcc.so'
28: + echo 'test failed: bcc-lua runs without libbcc.so'
28: test failed: bcc-lua runs without libbcc.so
28: + exit 1
28/28 Test #28: lua_test_standalone ..............***Failed 0.01 sec
```
## Ubuntu - Source
To build the toolchain from source, one needs:
...
...
debian/control
View file @
942c9c15
...
...
@@ -3,7 +3,12 @@ Maintainer: Brenden Blanco <bblanco@plumgrid.com>
Section: misc
Priority: optional
Standards-Version: 3.9.5
Build-Depends: debhelper (>= 9), cmake, libllvm3.7 | libllvm3.8, llvm-3.7-dev | llvm-3.8-dev, libclang-3.7-dev | libclang-3.8-dev, libelf-dev, bison, flex, libedit-dev, clang-format | clang-format-3.7, python-netaddr, python-pyroute2, luajit, libluajit-5.1-dev
Build-Depends: debhelper (>= 9), cmake, libllvm3.7 | libllvm3.8,
llvm-3.7-dev | llvm-3.8-dev, libclang-3.7-dev | libclang-3.8-dev,
libelf-dev, bison, flex, libedit-dev,
clang-format | clang-format-3.7 | clang-format-3.8, python (>= 2.7),
python-netaddr, python-pyroute2, luajit, libluajit-5.1-dev, arping,
inetutils-ping | iputils-ping, iperf, netperf, ethtool
Homepage: https://github.com/iovisor/bcc
Package: libbcc
...
...
tests/python/test_brb2.py
View file @
942c9c15
...
...
@@ -68,6 +68,16 @@ ipr = IPRoute()
ipdb
=
IPDB
(
nl
=
ipr
)
sim
=
Simulation
(
ipdb
)
allocated_interfaces
=
set
(
ipdb
.
interfaces
.
keys
())
def
get_next_iface
(
prefix
):
i
=
0
while
True
:
iface
=
"{0}{1}"
.
format
(
prefix
,
i
)
if
iface
not
in
allocated_interfaces
:
allocated_interfaces
.
add
(
iface
)
return
iface
i
+=
1
class
TestBPFSocket
(
TestCase
):
def
setup_br
(
self
,
br
,
veth_rt_2_br
,
veth_pem_2_br
,
veth_br_2_pem
):
...
...
@@ -84,15 +94,15 @@ class TestBPFSocket(TestCase):
br1
.
add_port
(
ipdb
.
interfaces
[
veth_rt_2_br
])
br1
.
up
()
subprocess
.
call
([
"sysctl"
,
"-q"
,
"-w"
,
"net.ipv6.conf."
+
br
+
".disable_ipv6=1"
])
def
set_default_const
(
self
):
self
.
ns1
=
"ns1"
self
.
ns2
=
"ns2"
self
.
ns_router
=
"ns_router"
self
.
br1
=
"br1"
self
.
br1
=
get_next_iface
(
"br"
)
self
.
veth_pem_2_br1
=
"v20"
self
.
veth_br1_2_pem
=
"v21"
self
.
br2
=
"br2"
self
.
br2
=
get_next_iface
(
"br"
)
self
.
veth_pem_2_br2
=
"v22"
self
.
veth_br2_2_pem
=
"v23"
...
...
tests/python/test_uprobes.py
View file @
942c9c15
...
...
@@ -18,12 +18,14 @@ static void incr(int idx) {
++(*ptr);
}
int count(struct pt_regs *ctx) {
bpf_trace_printk("count() uprobe fired");
u32 pid = bpf_get_current_pid_tgid();
if (pid == PID)
incr(0);
return 0;
}"""
text
=
text
.
replace
(
"PID"
,
"%d"
%
os
.
getpid
())
print
text
b
=
bcc
.
BPF
(
text
=
text
)
b
.
attach_uprobe
(
name
=
"c"
,
sym
=
"malloc_stats"
,
fn_name
=
"count"
)
b
.
attach_uretprobe
(
name
=
"c"
,
sym
=
"malloc_stats"
,
fn_name
=
"count"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment