netsys / bess Goto Github PK
View Code? Open in Web Editor NEWBESS: Berkeley Extensible Software Switch
License: Other
BESS: Berkeley Extensible Software Switch
License: Other
Consider the following .bess file:
Source() -> Bypass() -> Sink()
# arbitrary large number of correct python commands
a = 1
b = 2
print(a, b)) # Extra closing parenthesis
It has a syntax error, but bessclt points to an incorrect location, which makes hard to pinpoint the cause of the error.
$ ./bessctl daemon start -- run my/bug
Traceback (most recent call last):
File "./bessctl", line 164, in <module>
main()
File "./bessctl", line 161, in main
run_cli(cStringIO.StringIO('\n'.join(cmds)))
File "./bessctl", line 137, in run_cli
cli.loop()
File "./bessctl", line 112, in loop
super(BESSCLI, self).loop()
File "/home/bess/bess/bessctl/cli.py", line 492, in loop
self.process_one_line()
File "/home/bess/bess/bessctl/cli.py", line 403, in process_one_line
self.call_func(func, args)
File "./bessctl", line 64, in call_func
super(BESSCLI, self).call_func(func, args)
File "/home/bess/bess/bessctl/cli.py", line 378, in call_func
func(*args)
File "/home/bess/bess/bessctl/commands.py", line 743, in run_conf
_run_file(cli, conf_file, env_map)
File "/home/bess/bess/bessctl/commands.py", line 735, in _run_file
_do_run_file(cli, conf_file)
File "/home/bess/bess/bessctl/commands.py", line 684, in _do_run_file
code = compile(xformed, conf_file, 'exec')
File "/home/bess/bess/bessctl/conf/my/bug.bess", line 1
Source() -> Bypass() -> Sink()
^
SyntaxError: invalid syntax
Noticed while running ansible for install the docker.yml is missing the "cs" tag required to install community version these days -- $(lsb_release -cs)
From docs:
$ sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"
According to @tootoonchian, in the deinit() function of the PMD driver should do something more than just calling rte_eth_dev_stop(). I suspect rte_eth_dev_stop() is enough for physical PMDs, but for virtual PMDs (e.g., bonding) we need explicit resource deallocation.
Regarding -->
static inline uint64_t rdtsc(void)
{
uint32_t hi, lo;
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
return (uint64_t)lo | ((uint64_t)hi << 32);
}
IIUC This code is being used to calculate time-stamps and use it in sched_loop. AFAIK rdtsc is prone to CPU instruction re-ordering and hence may not be accurate for time-stamping and thus people tend to use "rdtscp" or "mfence+rdtsc". ( http://stackoverflow.com/questions/12631856/difference-between-rdtscp-rdtsc-memory-and-cpuid-rdtsc )
Is use of rdtsc in bess, for time-stamping, a potential issue ?
It looks like the pktgen does not release port correctly when input an invalid SN_PORTS:
run perftest/pktgen SN_PORTS=3
*** Error: Port id 1 is not available
BESS daemon response - errno=19 (ENODEV: No such device)
localhost:10514 $ run perftest/pktgen SN_PORTS=1
*** Error: rte_eth_dev_configure() failed
BESS daemon response - errno=16 (EBUSY: Device or resource busy)
If you try to assign these modules to tc, bessctl just hangs for a while and never comes back. They default assign just fine, but if you try to add them somewhere in the tree specifically the script hangs forever.
Hi,
Can we provide multiple queues to a VM using PMDPort created using following script?
my_vhost0::PMDPort(vdev='eth_vhost0,iface=/tmp/my_vhost0.sock,queues=1')
my_vhost1::PMDPort(vdev='eth_vhost1,iface=/tmp/my_vhost1.sock,queues=1')
input0::QueueInc(port=my_vhost0, qid=0) #This module will read from my_vhost0 on queue 0
input1::QueueInc(port=my_vhost1, qid=0) #This module will read from my_vhost1 on queue 0
output0::QueueOut(port=my_vhost0, qid=0) #This module will write to my_vhost0 on queue 0
output1::QueueOut(port=my_vhost1, qid=0) #This module will write to my_vhost1 on queue 0
input0 -> output1
input1 -> output0
Hi,
I'm currently working on a project where I am evaluating changes to how NIC hardware schedules packets. In my evaluation, I want to compare the performance of different POSIX applications given different NIC packet scheduling behaviors. From what I can tell so far, BESS/SoftNIC seems like it could be a good platform for evaluating the NIC changes I have in mind. However, as it is currently implemented, it seems like SoftNIC doesn't provide good enough performance (thoughput) to be useful in my experiments. I go into more detail about exactly what these performance issues are in the rest of this message, but I believe these performance issues do not stem from any performance issue in the BESS daemon in userspace but instead stem from the overheads of the kernel interfacing with the SoftNIC driver because the SoftNIC driver does not implement important offloading features like scatter-gather lists and TSO. As a result, even on only a 10Gbps link with SoftNIC configured to use a large number of queues and BESS configured with multiple worker threads, traditional POSIX applications struggle to drive line-rate when sending data over a SoftNIC VPort. Given this performance problem, I have the following questions:
Is there a reason that SoftNIC does not currently support scatter-gather lists or TSO? From line 702 in core/kmod/sn_netdev.c (https://github.com/NetSys/bess/blob/master/core/kmod/sn_netdev.c#L702), it seems like supporting these features was considered at some point in time before they were disabled in the current version.
Is there any development branch or plan to support scatter-gather lists and TSO in SoftNIC in the future?
If I wanted to implement support scatter-gather lists and TSO in SoftNIC myself, are there any caveats or design challenges that I should know about?
Is there some other best practice for hooking up applications to BESS so that they can drive a 10Gbps link?
In the rest of this message, I provide some more background on my methodology and why I think the performance problems I observe are caused by a lack of scatter-gather and TSO support.
I've observed this problem on two different platforms. My methodology is as follows: Both systems use an Intel 82599 10Gbps NIC. The first is a machine on my local testbed that uses a 4-core/8-thread 2.8GHz Xeon E5-1410, and the second is a machine on CloudLab Clemson that two sockets of "Intel(R) Xeon(R) CPU E5-2683 v3 @ 2.00GHz" cores for a total of 56 logical threads. In my BESS configuration, I create a VPort with 16 queues, I configure a PMDPort to run the physical 82599 device also with 16 queues, and I directly connect the incoming and outgoing queues on the VPort and PMDPort. Also, I configured BESS to use 4 worker threads.
To measure throughput, I have been using the "iperf3" network benchmarking tool with a variable number of parallel connections "-P <x>". With the default ixgbe driver, iperf3 can drive 10Gbps line rate with any number of parallel connections that I've used, including only using a single connection. However, with SoftNIC/BESS, iperf3 can only drive ~6Gbps. Further, performance with SoftNIC/BESS can be highly variable. As best as I can tell, this poor performance is solely because the SoftNIC driver does not implement scatter-gather lists or TSO. I think this because of the following results:
With the ixgbe driver which supports SG and TSO, no core is ever saturated according to dstat/htop and iperf3 can consistently drive line-rate.
With SoftNIC/BESS, in addition to the BESS daemon cores, some of the cores running application and kernel code become saturated. In this experiment, the application can drive at most ~6Gbps.
If I disable SG (and TSO) on the ixgbe driver, then the performance of ixgbe matches that of SoftNIC in both that throughput is limited to ~6Gbps and that at least one of the kernel/app cores is saturated.
Out of curiosity, I also looked at the example KNI application in the DPDK repository because SoftNIC seems to be derived from KNI. The performance of KNI is comparable to that of SoftNIC. It is worth noting that KNI does also not implement SG or TSO.
Thanks for taking the time to help me look into this problem,
~Brent
When there's not enough room to increase the size of the packet header with pkt->prepend(), then different encapsulation modules simply forward the packet unmodified. See, for example, the
vxlan encapsulation module. Wouldn't it be better to drop these packets, send them to a special gate, or somehow notify the pipeline writer?
A bit unrelated, but conf/sample/latency.bess
shows a good example how we can test the raw performance of a module or pipeline. But is there a recommended way to test the correctness of a new module or a complex pipeline? I was able to come up with something: encap.bess, but I hoped there's a simpler way without using VPort and scapy's send-receive function.
(Additionally, the byte order of the value_bin in SetMetadata().Attribute is not documented and it's not straightforward to figure out what is expected.)
localhost:10514 $ run samples/exactmatch
Done.
localhost:10514 $ track disable *
*** Error: RPC failed to localhost:10514 - <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, )>
From /tmp/bessd_crash.log (Tue Apr 18 18:41:33 2017):
A critical error has occured. Aborting...
Signal: 11 (Segmentation fault), si_code: 1 (SEGV_MAPERR: address not mapped to object)
pid: 88736, tid: 88753, address: 0x18, IP: 0x62410e
Backtrace (recent calls first) ---
(0): /home/sangjin/bess/core/bessd(_ZN4bess4Gate10RemoveHookERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xe) [0x62410e]
__gnu_cxx::__normal_iterator<bess::GateHook**, std::vector<bess::GateHook*, std::allocator<bess::GateHook*> > >::__normal_iterator(bess::GateHook** const&) at /usr/include/c++/5/bits/stl_iterator.h:741
738:
739: explicit
740: __normal_iterator(const _Iterator& __i) _GLIBCXX_NOEXCEPT
-> 741: : _M_current(__i) { }
742:
743: // Allow iterator to const_iterator conversion
744: template<typename _Iter>
(inlined by) std::vector<bess::GateHook*, std::allocator<bess::GateHook*> >::begin() at /usr/include/c++/5/bits/stl_vector.h:548
545: */
546: iterator
547: begin() _GLIBCXX_NOEXCEPT
-> 548: { return iterator(this->_M_impl._M_start); }
549:
550: /**
551: * Returns a read-only (constant) iterator that points to the
(inlined by) bess::Gate::RemoveHook(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at /home/sangjin/bess/core/gate.cc:30
27: }
28:
29: void Gate::RemoveHook(const std::string &name) {
-> 30: for (auto it = hooks_.begin(); it != hooks_.end(); ++it) {
31: GateHook *hook = *it;
32: if (hook->name() == name) {
33: delete hook;
(1): /home/sangjin/bess/core/bessd() [0x6641d8]
disable_track_for_module(Module const*, unsigned short, bool, bool) [clone .constprop.530] at /home/sangjin/bess/core/bessctl.cc:136
-> 136: gate->RemoveHook(kGateHookTrackGate);
(2): /home/sangjin/bess/core/bessd(_ZN15BESSControlImpl12DisableTrackEPN4grpc13ServerContextEPKN4bess2pb19DisableTrackRequestEPNS4_13EmptyResponseE+0x138) [0x66bf08]
BESSControlImpl::DisableTrack(grpc::ServerContext*, bess::pb::DisableTrackRequest const*, bess::pb::EmptyResponse*) at /home/sangjin/bess/core/bessctl.cc:1227
-> 1227: disable_track_for_module(it.second, request->gate(),
(3): /home/sangjin/bess/core/bessd(_ZNSt17_Function_handlerIFN4grpc6StatusEPN4bess2pb11BESSControl7ServiceEPNS0_13ServerContextEPKNS3_19DisableTrackRequestEPNS3_13EmptyResponseEESt7_Mem_fnIMS5_FS1_S8_SB_SD_EEE9_M_invokeERKSt9_Any_dataOS6_OS8_OSB_OSD_+0x47) [0x6d2257]
grpc::Status std::_Mem_fn_base<grpc::Status (bess::pb::BESSControl::Service::*)(grpc::ServerContext*, bess::pb::DisableTrackRequest const*, bess::pb::EmptyResponse*), true>::operator()<grpc::ServerContext*, bess::pb::DisableTrackRequest const*, bess::pb::EmptyResponse*, void>(bess::pb::BESSControl::Service*, grpc::ServerContext*&&, bess::pb::DisableTrackRequest const*&&, bess::pb::EmptyResponse*&&) const at /usr/include/c++/5/functional:600
-> 600: { return (__object->*_M_pmf)(std::forward<_Args>(__args)...); }
(inlined by) std::_Function_handler<grpc::Status (bess::pb::BESSControl::Service*, grpc::ServerContext*, bess::pb::DisableTrackRequest const*, bess::pb::EmptyResponse*), std::_Mem_fn<grpc::Status (bess::pb::BESSControl::Service::*)(grpc::ServerContext*, bess::pb::DisableTrackRequest const*, bess::pb::EmptyResponse*)> >::_M_invoke(std::_Any_data const&, bess::pb::BESSControl::Service*&&, grpc::ServerContext*&&, bess::pb::DisableTrackRequest const*&&, bess::pb::EmptyResponse*&&) at /usr/include/c++/5/functional:1857
-> 1857: std::forward<_ArgTypes>(__args)...);
(4): /home/sangjin/bess/core/bessd(_ZN4grpc16RpcMethodHandlerIN4bess2pb11BESSControl7ServiceENS2_19DisableTrackRequestENS2_13EmptyResponseEE10RunHandlerERKNS_13MethodHandler16HandlerParameterE+0xae) [0x6ed30e]
std::function<grpc::Status (bess::pb::BESSControl::Service*, grpc::ServerContext*, bess::pb::DisableTrackRequest const*, bess::pb::EmptyResponse*)>::operator()(bess::pb::BESSControl::Service*, grpc::ServerContext*, bess::pb::DisableTrackRequest const*, bess::pb::EmptyResponse*) const at /usr/include/c++/5/functional:2267
-> 2267: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...);
(inlined by) grpc::RpcMethodHandler<bess::pb::BESSControl::Service, bess::pb::DisableTrackRequest, bess::pb::EmptyResponse>::RunHandler(grpc::MethodHandler::HandlerParameter const&) at /usr/local/include/grpc++/impl/codegen/method_handler_impl.h:59
-> 59: status = func_(service_, param.server_context, &req, &rsp);
(5): /home/sangjin/bess/core/bessd(_ZN4grpc6Server6RunRpcEv+0xa48) [0x9e2848]
grpc::Server::RunRpc() at ??:?
(6): /home/sangjin/bess/core/bessd(_ZN4grpc17DynamicThreadPool10ThreadFuncEv+0xd0) [0x9ec2c0]
grpc::DynamicThreadPool::ThreadFunc() at ??:?
(7): /home/sangjin/bess/core/bessd(_ZN4grpc17DynamicThreadPool13DynamicThread10ThreadFuncEv+0x24) [0x9ec4c4]
grpc::DynamicThreadPool::DynamicThread::ThreadFunc() at ??:?
(8): /home/sangjin/bess/core/bessd() [0xc232cf]
execute_native_thread_routine at thread.o:?
(9): /lib/x86_64-linux-gnu/libpthread.so.0(+0x76b9) [0x7f8c287176b9]
start_thread at ??:?
(10): /lib/x86_64-linux-gnu/libc.so.6(clone+0x6c) [0x7f8c2844d82c]
clone at /build/glibc-9tT8Do/glibc-2.23/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(file/line not available)
Hi,
I am running BESS in a KVM VM with virtio N/W interfaces. I am using VPort sample configuration i.e. "physical" virtio NIC is represented by a bess "vport0" netdev in Linux kernel. I have a assigned an IPv4 address to this vport0 interface and am running a simple iperf tcp test on it. Everytime the test runs, I see this message
bess - free_snb_bulk():155 vport0: RX free queue overflow!
IIUC this means that the producer is overwhelming the consumer. Is there a config I could tune to make the ring be bigger ? Is this a serious issue ?
samples/vxlan.bess fails (ping fails), due to incorrect offset assignment. I am not sure this is the only bug with samples/vxlan.bess, though.
In the chain of ... -> ip_encap0 -> setattr1 -> ether_encap0 -> ...
(see below),
ip_encap0
sets the offset of ether_type
to 10setattr1
sets the offset of ether_dst
(6-byte long) to 8, which overwrites ether_type
ether_encap0
reads the incorrect ether_type
from offset 10.Perhaps the bug is in Pipeline::AssignOffsets()?
localhost:10514 $ show module
bpf::BPF ()
Input gates:
0: batches N/A packets N/A port_inc0:0 ->
Output gates:
1: batches 41 packets 42 -> 0:vxlan_decap0
Dump:
None
ether_encap0::EtherEncap ()
Per-packet metadata fields:
ether_src: read 6 bytes at offset 0
ether_dst: read 6 bytes at offset 8
ether_type: read 2 bytes at offset 10
Input gates:
0: batches N/A packets N/A setattr1:0 ->
Output gates:
0: batches 17 packets 18 -> 0:port_out1
Dump:
None
ip_encap0::IPEncap ()
Per-packet metadata fields:
ip_src: read 4 bytes at offset 0
ip_dst: read 4 bytes at offset 4
ip_proto: read 1 bytes at offset 8
ip_nexthop: write 4 bytes (no downstream reader)
ether_type: write 2 bytes at offset 10
Input gates:
0: batches N/A packets N/A vxlan_encap0:0 ->
Output gates:
0: batches 17 packets 18 -> 0:setattr1
Dump:
None
port_inc0::PortInc (vport1/VPort)
Output gates:
0: batches 70 packets 75 -> 0:bpf
Dump:
None
port_inc1::PortInc (vport0/VPort)
Output gates:
0: batches 17 packets 18 -> 0:setattr0
Dump:
None
port_out0::PortOut (vport0/VPort)
Input gates:
0: batches N/A packets N/A vxlan_decap0:0 ->
Dump:
None
port_out1::PortOut (vport1/VPort)
Input gates:
0: batches N/A packets N/A ether_encap0:0 ->
Dump:
None
setattr0::SetMetadata ()
Per-packet metadata fields:
tun_ip_src: write 4 bytes at offset 12
tun_ip_dst: write 4 bytes at offset 16
tun_id: write 4 bytes at offset 20
Input gates:
0: batches N/A packets N/A port_inc1:0 ->
Output gates:
0: batches 17 packets 18 -> 0:vxlan_encap0
Dump:
None
setattr1::SetMetadata ()
Per-packet metadata fields:
ether_src: write 6 bytes at offset 0
ether_dst: write 6 bytes at offset 8
Input gates:
0: batches N/A packets N/A ip_encap0:0 ->
Output gates:
0: batches 17 packets 18 -> 0:ether_encap0
Dump:
None
vxlan_decap0::VXLANDecap ()
Per-packet metadata fields:
tun_ip_src: write 4 bytes (no downstream reader)
tun_ip_dst: write 4 bytes (no downstream reader)
tun_id: write 4 bytes (no downstream reader)
Input gates:
0: batches N/A packets N/A bpf:1 ->
Output gates:
0: batches 41 packets 42 -> 0:port_out0
Dump:
None
vxlan_encap0::VXLANEncap ()
Per-packet metadata fields:
tun_ip_src: read 4 bytes at offset 12
tun_ip_dst: read 4 bytes at offset 16
tun_id: read 4 bytes at offset 20
ip_src: write 4 bytes at offset 0
ip_dst: write 4 bytes at offset 4
ip_proto: write 1 bytes at offset 8
Input gates:
0: batches N/A packets N/A setattr0:0 ->
Output gates:
0: batches 17 packets 18 -> 0:ip_encap0
Dump:
None
For example
bessctl daemon sfsds
returns 0, even though it prints out no such command.
This is for the C++ branch (not develop or mainline).
The problem is in port initialization. I can take a look at fixing this in a bit, but just wanted to put it out there in case someone could fix it before I got around to it.
bin/bessctl run samples/s2p2s -- daemon reset -- run samples/s2p2s
Environment variable "SN_PORTS" is not set. Using default value "1"
Using 1 DPDK ports... (envvar "SN_PORTS")
{'name': None, 'num_inc_q': 0, 'size_inc_q': 0, 'driver': 'PMDPort', 'num_out_q': 0, 'size_out_q': 0, 'mac_addr': ''}
{'port_id': 0}
{'name': None, 'mclass': 'Source'}
{}
Module source0::Source created
{'name': None, 'mclass': 'PortOut'}
{'port': u'pmd_port0'}
Module port_out0::PortOut created
Connecting source0:0 -> 0:port_out0
{'name': None, 'mclass': 'PortInc'}
{'port': u'pmd_port0'}
Module port_inc0::PortInc created
{'name': None, 'mclass': 'Sink'}
{}
Module sink0::Sink created
Connecting port_inc0:0 -> 0:sink0
Environment variable "SN_PORTS" is not set. Using default value "1"
Using 1 DPDK ports... (envvar "SN_PORTS")
{'name': None, 'num_inc_q': 0, 'size_inc_q': 0, 'driver': 'PMDPort', 'num_out_q': 0, 'size_out_q': 0, 'mac_addr': ''}
{'port_id': 0}
*** Error: Unhandled exception in the configuration script (most recent call last)
File "/home/apanda/bess-radhika/bessctl/conf/samples/s2p2s.bess", line 5, in <module>
p = PMDPort(port_id=i)
File "/home/apanda/bess-radhika/bessctl/port.py", line 10, in __init__
ret = self.bess.create_port(self.driver, name, kwargs)
File "/home/apanda/bess-radhika/bessctl/../libbess-python/bess.py", line 161, in create_port
return self._request(self.stub.CreatePort, request)
File "/home/apanda/bess-radhika/bessctl/../libbess-python/bess.py", line 96, in _request
raise self.Error(err, errmsg, details)
*** Error: rte_eth_dev_configure() failed
BESS daemon response - errno=16 (EBUSY: Device or resource busy)
As @sangjinhan pointed out in #377, static class members are the offending variables which prevent from unloading. Module plugins should never have a reference to those symbols.
It seems that after 4.7 paravirt_enabled() was removed:
Not sure how to replace it.
Thanks!
It seems some part of #24 hasn't been pulled correctly.
Reapplying the following hunk of @MurphyMc, the problem disappears.
diff --git a/bessctl/cli.py b/bessctl/cli.py
index 2ea19a2..6d58b98 100644
--- a/bessctl/cli.py
+++ b/bessctl/cli.py
@@ -34,7 +34,16 @@ class CLI(object):
self.last_cmd = ''
self.interactive = interactive
- if not interactive:
+ self.rl = None
+
+ self.maybe_go_interactive()
+
+ def maybe_go_interactive(self):
+ if self.interactive: return
+
+ self.interactive = self.fin.isatty() and self.fout.isatty()
+
+ if not self.interactive:
self.rl = None
return
without the patch:
./bessctl interactive
Traceback (most recent call last):
File "./bessctl", line 202, in <module>
run_cmds(cStringIO.StringIO('\n'.join(cmds)))
File "./bessctl", line 178, in run_cmds
cli.loop()
File "./bessctl", line 112, in loop
super(BESSCLI, self).loop()
File "/export/netsys/src/bess/bessctl/cli.py", line 452, in loop
self.process_one_line()
File "/export/netsys/src/bess/bessctl/cli.py", line 394, in process_one_line
self.call_func(func, args)
File "./bessctl", line 64, in call_func
super(BESSCLI, self).call_func(func, args)
File "/export/netsys/src/bess/bessctl/cli.py", line 369, in call_func
func(*args)
File "/export/netsys/src/bess/bessctl/commands.py", line 1532, in interactive
cli.maybe_go_interactive()
AttributeError: 'BESSCLI' object has no attribute 'maybe_go_interactive'
with the patch:
$ ./bessctl interactive
Type "help" for more information.
localhost:10514 $
or in more useful example:
$ ./bessctl show pipeline -- interactive
+-------------------+ +----------+ +-------------------+
| port_inc0 | | macswap0 | | port_out0 |
| PortInc | :0 52231913504 0: | MACSwap | :0 52231718560 0: | PortOut |
| pmd_port0/PMDPort | -------------------> | | -------------------> | pmd_port0/PMDPort |
+-------------------+ +----------+ +-------------------+
Type "help" for more information.
localhost:10514 $
Since we are now using gflags and glog, the following files need to be updated.
build.py: check_essential()
docs/install.md
https://travis-ci.org/NetSys/bess/jobs/213513861#L483
When the command $ cd core && ./all_test && cd ..
fails, the last cd ..
is not executed due to the &&
condition. As a result, all subsequent commands will automatically fail since the working directory is incorrect.
Right now we cannot use ifconfig to change mac address of vport device. This patch adds the ability for the same.
From c3d332ad87c96a4186421172738bd281bcff6eae Mon Sep 17 00:00:00 2001
From: Chaitanya Lala <[email protected]>
Date: Wed, 26 Oct 2016 15:59:24 -0700
Subject: [PATCH] bess_kmod_netdev: Add ability to change MAC for vport
Right now vport does not have the ability to have it's HW MAC
changed via SIOC* ioctls. Add this ability.
---
core/kmod/sn_netdev.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/core/kmod/sn_netdev.c b/core/kmod/sn_netdev.c
index 436880c..6a5041f 100644
--- a/core/kmod/sn_netdev.c
+++ b/core/kmod/sn_netdev.c
@@ -687,6 +687,8 @@ static const struct net_device_ops sn_netdev_ops = {
.ndo_select_queue = sn_select_queue,
.ndo_get_stats64 = sn_get_stats64,
.ndo_fix_features = sn_fix_features,
+ .ndo_set_mac_address = eth_mac_addr,
+ .ndo_validate_addr = eth_validate_addr,
};
extern const struct ethtool_ops sn_ethtool_ops;
--
2.7.4
Hi I am using the develop branch, when I try to use the PMDPort in the bess configuration, I got complains as above. Any idea why this is happening? Thanks a lot!
I updated it and it is working. Never mind.
When you run queue.bess with g++6 and -Ofast it crashes.
Here's what you see in GDB:
Thread 20 "bessd" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffedb27700 (LWP 41252)]
0x000000000062990e in __llring_mp_do_enqueue (behavior=LLRING_QUEUE_VARIABLE, n=32, obj_table=, r=0x7fffe001a5f0) at modules/../kmod/llring.h:433
433 modules/../kmod/llring.h: No such file or directory.
And the backtrace:
#0 0x000000000062990e in __llring_mp_do_enqueue (behavior=LLRING_QUEUE_VARIABLE, n=32, obj_table=, r=0x7fffe001a5f0) at modules/../kmod/llring.h:433
#1 llring_mp_enqueue_burst (n=32, obj_table=, r=0x7fffe001a5f0) at modules/../kmod/llring.h:1009
#2 Queue::ProcessBatch (this=, batch=0x7fffed916770) at modules/queue.cc:109
#3 0x000000000063a6c6 in Module::RunChooseModule (batch=0x7fffed916770, ogate_idx=0, this=) at modules/../module.h:321
#4 Module::RunNextModule (batch=0x7fffed916770, this=) at modules/../module.h:325
#5 Source::RunTask (this=) at modules/source.cc:83
#6 0x00000000005fa085 in Task::Scheduled (this=) at task.cc:36
#7 0x00000000005f8c0e in bess::LeafTrafficClass::RunTasks (this=0x7fffe0026620) at traffic_class.h:440
#8 bess::Scheduler::ScheduleOnce (this=) at scheduler.h:69
#9 bess::Scheduler::ScheduleLoop (this=0x7fffe4210c10) at scheduler.cc:30
#10 0x00000000005fd9e6 in Worker::Run (this=0x7fffed917340, _arg=_arg@entry=0x7ffff64a84e0) at worker.cc:241
#11 0x00000000005fe063 in run_worker (_arg=0x7ffff64a84e0) at worker.cc:254
#12 0x0000000000b00faf in execute_native_thread_routine ()
#13 0x00007ffff749d6ba in start_thread (arg=0x7fffedb27700) at pthread_create.c:333
#14 0x00007ffff71d382d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Unfortunately, many of the variables wind up optimized out so it's not easy to figure out how the code winds up at this point...
Traceback (most recent call last):
File "./bessctl", line 9, in
import commands
File "/home/hepeng/bess/bessctl/commands.py", line 507
exec(code in new_globals, locals())
SyntaxError: unqualified exec is not allowed in function '_do_run_file' it contains a nested function with free variables
The performance of bess is not better than that of ovs-dpdk. Is there any problem in my configuration? And is the experimental environment suitable for bess?
Linux 4.4.0-45-generic
Memory: 8G
Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper)
#sysctl -w vm.nr_hugepages=2048 #modprobe uio_pci_generic #bin/dpdk_devbind.py -b uio_pci_generic 03:00.0 #bin/bessd #bin/bessctl $run sample/vport #ifconfig vport0 133.133.134.124/16
#mkdir -p /usr/local/etc/openvswitch
#mkdir -p /usr/local/var/run/openvswitch
#ovsdb-tool create /usr/local/etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema
#sudo ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach
#ovs-vsctl --no-wait init
#sysctl vm.nr_hugepages=2048
#mkdir -p /dev/hugepages
#mount -t hugetlbfs hugetlbfs /dev/hugepages
#modprobe uio_pci_generic
#ifconfig enp3s0 down
#$DPDK_DIR/tools/dpdk-devbind.py -b uio_pci_generic 03:00.0
#ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
#ovs-vswitchd unix:$DB_SOCK --pidfile --detach
#ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
#ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk
#ifconfig br0 up
#ifconfig br0 133.133.134.126/16
ping 0.65ms
# iperf -c 133.133.134.124 -p12345 -i -1 -t 10 -w 1K
WARNING: interval too small, increasing from -1.00 to 0.5 seconds.
WARNING: TCP window size set to 1024 bytes. A small window size
will give poor performance. See the Iperf documentation.
------------------------------------------------------------
Client connecting to 133.133.134.124, TCP port 12345
TCP window size: 4.50 KByte (WARNING: requested 1.00 KByte)
------------------------------------------------------------
[ 3] local 133.133.134.72 port 35558 connected with 133.133.134.124 port 12345
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 0.5 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 0.5- 1.0 sec 5.12 MBytes 86.0 Mbits/sec
[ 3] 1.0- 1.5 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 1.5- 2.0 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 2.0- 2.5 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 2.5- 3.0 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 3.0- 3.5 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 3.5- 4.0 sec 4.75 MBytes 79.7 Mbits/sec
[ 3] 4.0- 4.5 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 4.5- 5.0 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 5.0- 5.5 sec 4.75 MBytes 79.7 Mbits/sec
[ 3] 5.5- 6.0 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 6.0- 6.5 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 6.5- 7.0 sec 4.75 MBytes 79.7 Mbits/sec
[ 3] 7.0- 7.5 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 7.5- 8.0 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 8.0- 8.5 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 8.5- 9.0 sec 4.75 MBytes 79.7 Mbits/sec
[ 3] 9.0- 9.5 sec 4.88 MBytes 81.8 Mbits/sec
[ 3] 9.5-10.0 sec 4.75 MBytes 79.7 Mbits/sec
[ 3] 0.0-10.0 sec 97.8 MBytes 81.9 Mbits/sec
ping 0.28ms
# iperf -c 133.133.134.126 -p12345 -i -1 -t 10 -w 1k
WARNING: interval too small, increasing from -1.00 to 0.5 seconds.
WARNING: TCP window size set to 1024 bytes. A small window size
will give poor performance. See the Iperf documentation.
------------------------------------------------------------
Client connecting to 133.133.134.126, TCP port 12345
TCP window size: 4.50 KByte (WARNING: requested 1.00 KByte)
------------------------------------------------------------
[ 3] local 133.133.134.127 port 57700 connected with 133.133.134.126 port 12345
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 0.5 sec 1.38 MBytes 23.1 Mbits/sec
[ 3] 0.5- 1.0 sec 1.12 MBytes 18.9 Mbits/sec
[ 3] 1.0- 1.5 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 1.5- 2.0 sec 1.12 MBytes 18.9 Mbits/sec
[ 3] 2.0- 2.5 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 2.5- 3.0 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 3.0- 3.5 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 3.5- 4.0 sec 1.12 MBytes 18.9 Mbits/sec
[ 3] 4.0- 4.5 sec 1.12 MBytes 18.9 Mbits/sec
[ 3] 4.5- 5.0 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 5.0- 5.5 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 5.5- 6.0 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 6.0- 6.5 sec 1.12 MBytes 18.9 Mbits/sec
[ 3] 6.5- 7.0 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 7.0- 7.5 sec 1.12 MBytes 18.9 Mbits/sec
[ 3] 7.5- 8.0 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 8.0- 8.5 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 8.5- 9.0 sec 1.12 MBytes 18.9 Mbits/sec
[ 3] 9.0- 9.5 sec 1.25 MBytes 21.0 Mbits/sec
[ 3] 9.5-10.0 sec 1.12 MBytes 18.9 Mbits/sec
[ 3] 0.0-10.0 sec 24.2 MBytes 20.2 Mbits/sec
ping 0.28ms
# iperf -c 133.133.134.126 -p12345 -i -1 -t 10 -w 1K
WARNING: interval too small, increasing from -1.00 to 0.5 seconds.
WARNING: TCP window size set to 1024 bytes. A small window size
will give poor performance. See the Iperf documentation.
------------------------------------------------------------
Client connecting to 133.133.134.126, TCP port 12345
TCP window size: 4.50 KByte (WARNING: requested 1.00 KByte)
------------------------------------------------------------
[ 3] local 133.133.134.127 port 52702 connected with 133.133.134.126 port 12345
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 0.5 sec 5.50 MBytes 92.3 Mbits/sec
[ 3] 0.5- 1.0 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 1.0- 1.5 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 1.5- 2.0 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 2.0- 2.5 sec 5.50 MBytes 92.3 Mbits/sec
[ 3] 2.5- 3.0 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 3.0- 3.5 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 3.5- 4.0 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 4.0- 4.5 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 4.5- 5.0 sec 5.25 MBytes 88.1 Mbits/sec
[ 3] 5.0- 5.5 sec 5.50 MBytes 92.3 Mbits/sec
[ 3] 5.5- 6.0 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 6.0- 6.5 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 6.5- 7.0 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 7.0- 7.5 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 7.5- 8.0 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 8.0- 8.5 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 8.5- 9.0 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 9.0- 9.5 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 9.5-10.0 sec 5.38 MBytes 90.2 Mbits/sec
[ 3] 0.0-10.0 sec 108 MBytes 90.4 Mbits/sec
When I run a script using the url filter and I start a new script (without restarting BESS daemon), I see errors and bess crashes. Most other scripts I can just load up a new script without restarting the daemon.
File "/home/justine/bess/bessctl/cli.py", line 399, in process_one_line
self.call_func(func, args)
File "./bessctl", line 53, in call_func
super(BESSCLI, self).call_func(func, args)
File "/home/justine/bess/bessctl/cli.py", line 374, in call_func
func(*args)
File "/home/justine/bess/bessctl/commands.py", line 706, in run_conf
_run_file(cli, conf_file, env_map)
File "/home/justine/bess/bessctl/commands.py", line 698, in _run_file
_do_run_file(cli, conf_file)
File "/home/justine/bess/bessctl/commands.py", line 653, in _do_run_file
ret = warn(cli, 'The current pipeline will be reset.', _clear_pipeline)
File "/home/justine/bess/bessctl/commands.py", line 496, in warn
func(cli, *args)
File "/home/justine/bess/bessctl/commands.py", line 610, in _clear_pipeline
cli.bess.reset_all()
File "/home/justine/bess/bessctl/../libbess-python/bess.py", line 129, in reset_all
return self._request('ResetAll')
File "/home/justine/bess/bessctl/../libbess-python/bess.py", line 92, in _request
response = req_fn(request)
File "/usr/local/lib/python2.7/dist-packages/grpc/_channel.py", line 481, in __call__
return _end_unary_response_blocking(state, False, deadline)
File "/usr/local/lib/python2.7/dist-packages/grpc/_channel.py", line 432, in _end_unary_response_blocking
raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, {"created":"@1484689968.104340248","description":"EOF","file":"src/core/lib/iomgr/tcp_posix.c","file_line":235,"grpc_status":14})>
reproduce_error.py.zip
When running ./bessctl/bessctl -- daemon start -- run testing/run_module_tests
after putting reproduce_error.py (the file within the zip above) into ./bessctl/conf/testing/module_tests/, there exists a name clash between two different tests that have the same name for a module (i.e. s1::Source()
) even though bess.reset_all()
is called before the second declaration. This indicates that reset_all
might not be properly resetting everything. This is the error that occurs:
-- Running Module Tests for /home/vagrant/bess/bessctl/conf/testing/module_tests/reproduce_error.py --
<function initial at 0x7fa12608c7d0> custom test: PASS
Test failed!
Return value: <class 'commands.ConfError'>
*** Error: Unhandled exception in the configuration script (most recent call last)
File "/home/vagrant/bess/bessctl/conf/testing/run_module_tests.bess", line 151, in <module>
sys.exit(1)
SystemExit: 1
Command failed: run testing/run_module_tests
When removing the exception catch at line 146 in ./bessctl/conf/testing/run_module_tests.bess, the full error is shown:
-- Running Module Tests for /home/vagrant/bess/bessctl/conf/testing/module_tests/reproduce_error.py --
*** Error: Unhandled exception in the configuration script (most recent call last)
File "/home/vagrant/bess/bessctl/conf/testing/run_module_tests.bess", line 150, in <module>
test()
File "<string>", line 8, in initial
File "/home/vagrant/bess/bessctl/commands.py", line 72, in __bess_module__
raise ConfError("Module name %s already exists" % module_names)
ConfError: Module name s1 already exists
Command failed: run testing/run_module_tests
gcc automatically replaces simple printf() functions into puts().However, it seems that puts() does not honor fopencookie().
Another issue is that we use close(STDXXX_FILENO) to daemonize, which incurs undefined behavior of stdout and stderr (struct FILE *) afterwards. Writes to them will contaminate file descriptor number 1 and 2, which may be reused later by other files.
Hi,
I would like to add the ability to do a "tcpdump" or "mirror" on packets coming in from PMD port and destined towards VPort (ideally in both directions).
So far I have not been able to understand how to define that pipeline in a .bess file.
I tried something on the lines of the following but it does not work. How would we get this to work ? Is there a known format for this ?
v = VPort()
p = PMDPort(port_id=0)
PortInc(port=p) -> rewrite::Rewrite() -> bpf::BPF() -> PortOut(port=v)
PortInc(port=v) -> PortOut(port=p)
Hi,
The re-run of pipelines containing IPLookup module always causes an EEXIST DPDK error. Changing pipelines does not cause any error unless the new pipeline was loaded by the daemon before. The error is reproducible with the iplookup.bess sample:
<disconnected> $ daemon start
Done.
localhost:10514 $ run samples/iplookup
Environment variable "SN_PKT_SIZE" is not set. Using default value "60"
Done.
localhost:10514 $ run samples/iplookup
WARNING: The current pipeline will be reset. Are you sure? (type "yes") yes
Environment variable "SN_PKT_SIZE" is not set. Using default value "60"
*** Error: Unhandled exception in the configuration script (most recent call last)
File "/export/netsys/src/bess/bessctl/conf/samples/iplookup.bess", line 23, in <module>
Source() -> Rewrite(templates=packets) -> ipfwd::IPLookup()
File "/export/netsys/src/bess/bessctl/commands.py", line 73, in __bess_module__
obj = mclass_obj(*args, name=module_names, **kwargs)
File "/export/netsys/src/bess/bessctl/module.py", line 25, in __init__
self.choose_arg(None, kwargs))
File "/export/netsys/src/bess/bessctl/../libbess-python/bess.py", line 255, in create_module
return self._request('CreateModule', request)
File "/export/netsys/src/bess/bessctl/../libbess-python/bess.py", line 147, in _request
raise self.Error(err, errmsg, details)
*** Error: DPDK error: File exists
BESS daemon response - errno=17 (EEXIST: File exists)
This is already known and discussed. Posting here so that we don't forget to fix it.
How to reproduce
make CXX=clang++ SANITIZE=1
./all_test
Error message:
vagrant@nefeli-vm:/bess/core$ ./all_test
[==========] Running 80 tests from 31 test cases.
[----------] Global test environment set-up.
[----------] 1 test from ProcessCommandLineArgs
[ RUN ] ProcessCommandLineArgs.DumpTypes
gcc: 4.2.1
glibc: 2.23-stable
DPDK: DPDK 16.07.0
sizeof(char)=1
sizeof(short)=2
sizeof(int)=4
sizeof(long)=8
sizeof(long long)=8
sizeof(intmax_t)=8
sizeof(void *)=8
sizeof(size_t)=8
sizeof(HTableBase)=96
sizeof(rte_mbuf)=128
sizeof(Packet)=2560
sizeof(pkt_batch)=264
sizeof(Scheduler)=120 sizeof(sched_stats)=48
sizeof(TrafficClass)=96 sizeof(tc_stats)=40
sizeof(Task)=32
sizeof(Module)=168
sizeof(Gate)=48
sizeof(IGate)=72
sizeof(OGate)=64
sizeof(worker_context)=2163024
[ OK ] ProcessCommandLineArgs.DumpTypes (218 ms)
[----------] 1 test from ProcessCommandLineArgs (218 ms total)
[----------] 1 test from CheckRunningAsRoot
[ RUN ] CheckRunningAsRoot.NonRoot
[ OK ] CheckRunningAsRoot.NonRoot (200 ms)
[----------] 1 test from CheckRunningAsRoot (200 ms total)
[----------] 1 test from WriteAndReadPidFile
[ RUN ] WriteAndReadPidFile.GoodFile
[ OK ] WriteAndReadPidFile.GoodFile (4 ms)
[----------] 1 test from WriteAndReadPidFile (4 ms total)
[----------] 1 test from WritePidFile
[ RUN ] WritePidFile.BadFile
[ OK ] WritePidFile.BadFile (679 ms)
[----------] 1 test from WritePidFile (679 ms total)
[----------] 2 tests from ReadPidFile
[ RUN ] ReadPidFile.BadFileDesciptor
[ OK ] ReadPidFile.BadFileDesciptor (731 ms)
[ RUN ] ReadPidFile.BadFile
E1216 20:03:37.815279 5574 bessd.cc:153] read(pidfile=/var/run/bessd.pid) at EOF
[ OK ] ReadPidFile.BadFile (2 ms)
[----------] 2 tests from ReadPidFile (733 ms total)
[----------] 4 tests from TryAcquirePidfileLock
[ RUN ] TryAcquirePidfileLock.BadFd
[ OK ] TryAcquirePidfileLock.BadFd (706 ms)
[ RUN ] TryAcquirePidfileLock.GoodFd
[ OK ] TryAcquirePidfileLock.GoodFd (0 ms)
[ RUN ] TryAcquirePidfileLock.AlreadyHeld
[ OK ] TryAcquirePidfileLock.AlreadyHeld (58 ms)
[ RUN ] TryAcquirePidfileLock.AlreadyHeldPidReadFails
[ OK ] TryAcquirePidfileLock.AlreadyHeldPidReadFails (2251 ms)
[----------] 4 tests from TryAcquirePidfileLock (3015 ms total)
[----------] 4 tests from CheckUniqueInstance
[ RUN ] CheckUniqueInstance.BadPidfilePath
[ OK ] CheckUniqueInstance.BadPidfilePath (713 ms)
[ RUN ] CheckUniqueInstance.NotHeld
[ OK ] CheckUniqueInstance.NotHeld (1 ms)
[ RUN ] CheckUniqueInstance.Held
[ OK ] CheckUniqueInstance.Held (2340 ms)
[ RUN ] CheckUniqueInstance.HeldKillCurrentHolder
[ OK ] CheckUniqueInstance.HeldKillCurrentHolder (1020 ms)
[----------] 4 tests from CheckUniqueInstance (4074 ms total)
[----------] 1 test from Daemonize
[ RUN ] Daemonize.BasicRun
[ OK ] Daemonize.BasicRun (69 ms)
[----------] 1 test from Daemonize (70 ms total)
[----------] 1 test from SetResourceLimit
[ RUN ] SetResourceLimit.BasicRun
[ OK ] SetResourceLimit.BasicRun (0 ms)
[----------] 1 test from SetResourceLimit (0 ms total)
[----------] 5 tests from CreateTree
[ RUN ] CreateTree.Leaf
[ OK ] CreateTree.Leaf (1 ms)
[ RUN ] CreateTree.PriorityRootAndLeaf
[ OK ] CreateTree.PriorityRootAndLeaf (1 ms)
[ RUN ] CreateTree.WeightedFairRootAndLeaf
[ OK ] CreateTree.WeightedFairRootAndLeaf (2 ms)
[ RUN ] CreateTree.RoundRobinRootAndLeaf
[ OK ] CreateTree.RoundRobinRootAndLeaf (1 ms)
[ RUN ] CreateTree.RateLimitRootAndLeaf
[ OK ] CreateTree.RateLimitRootAndLeaf (1 ms)
[----------] 5 tests from CreateTree (8 ms total)
[----------] 5 tests from SchedulerNext
[ RUN ] SchedulerNext.BasicTreePriority
[ OK ] SchedulerNext.BasicTreePriority (1 ms)
[ RUN ] SchedulerNext.BasicTreeWeightedFair
[ OK ] SchedulerNext.BasicTreeWeightedFair (1 ms)
[ RUN ] SchedulerNext.BasicTreeRoundRobin
[ OK ] SchedulerNext.BasicTreeRoundRobin (0 ms)
[ RUN ] SchedulerNext.BasicTreeRateLimit
[ OK ] SchedulerNext.BasicTreeRateLimit (0 ms)
[ RUN ] SchedulerNext.TwoLeavesWeightedFairOneBlocked
[ OK ] SchedulerNext.TwoLeavesWeightedFairOneBlocked (1 ms)
[----------] 5 tests from SchedulerNext (4 ms total)
[----------] 4 tests from ScheduleOnce
[ RUN ] ScheduleOnce.TwoLeavesWeightedFair
[ OK ] ScheduleOnce.TwoLeavesWeightedFair (1 ms)
[ RUN ] ScheduleOnce.TwoLeavesPriority
[ OK ] ScheduleOnce.TwoLeavesPriority (0 ms)
[ RUN ] ScheduleOnce.TwoLeavesRoundRobin
[ OK ] ScheduleOnce.TwoLeavesRoundRobin (0 ms)
[ RUN ] ScheduleOnce.LeavesWeightedFairAndRoundRobin
[ OK ] ScheduleOnce.LeavesWeightedFairAndRoundRobin (1 ms)
[----------] 4 tests from ScheduleOnce (5 ms total)
[----------] 1 test from RateLimit
[ RUN ] RateLimit.BasicBlockUnblock
[ OK ] RateLimit.BasicBlockUnblock (2 ms)
[----------] 1 test from RateLimit (2 ms total)
[----------] 2 tests from ModuleBuilderTest
[ RUN ] ModuleBuilderTest.RegisterModuleClass
[ OK ] ModuleBuilderTest.RegisterModuleClass (2 ms)
[ RUN ] ModuleBuilderTest.GenerateDefaultNameTemplate
[ OK ] ModuleBuilderTest.GenerateDefaultNameTemplate (1 ms)
[----------] 2 tests from ModuleBuilderTest (4 ms total)
[----------] 5 tests from ModuleTester
[ RUN ] ModuleTester.CreateModuleWithName
[ OK ] ModuleTester.CreateModuleWithName (5 ms)
[ RUN ] ModuleTester.CreateModuleGenerateName
[ OK ] ModuleTester.CreateModuleGenerateName (0 ms)
[ RUN ] ModuleTester.RunCommand
[ OK ] ModuleTester.RunCommand (1 ms)
[ RUN ] ModuleTester.ConnectModules
[ OK ] ModuleTester.ConnectModules (2 ms)
[ RUN ] ModuleTester.ResetModules
[ OK ] ModuleTester.ResetModules (1 ms)
[----------] 5 tests from ModuleTester (10 ms total)
[----------] 8 tests from PortTest
[ RUN ] PortTest.CreatePort
[ OK ] PortTest.CreatePort (1 ms)
[ RUN ] PortTest.AddPort
[ OK ] PortTest.AddPort (0 ms)
[ RUN ] PortTest.GetPortStats
[ OK ] PortTest.GetPortStats (0 ms)
[ RUN ] PortTest.AcquireAndReleaseQueues
E1216 20:03:45.014201 5574 port.cc:173] Incorrect packet dir 2
[ OK ] PortTest.AcquireAndReleaseQueues (1 ms)
[ RUN ] PortTest.DestroyPort
[ OK ] PortTest.DestroyPort (0 ms)
[ RUN ] PortTest.DestroyAllPorts
[ OK ] PortTest.DestroyAllPorts (0 ms)
[ RUN ] PortTest.InitPortClass
[ OK ] PortTest.InitPortClass (0 ms)
[ RUN ] PortTest.InitDrivers
[ OK ] PortTest.InitDrivers (0 ms)
[----------] 8 tests from PortTest (7 ms total)
[----------] 3 tests from PortBuilderTest
[ RUN ] PortBuilderTest.RegisterPortClassDirectCall
[ OK ] PortBuilderTest.RegisterPortClassDirectCall (0 ms)
[ RUN ] PortBuilderTest.RegisterPortClassMacroCall
[ OK ] PortBuilderTest.RegisterPortClassMacroCall (0 ms)
[ RUN ] PortBuilderTest.GenerateDefaultPortNameTemplate
[ OK ] PortBuilderTest.GenerateDefaultPortNameTemplate (0 ms)
[----------] 3 tests from PortBuilderTest (2 ms total)
[----------] 2 tests from Metadata
[ RUN ] Metadata.RegisterSizeMismatchFails
E1216 20:03:45.022128 5574 metadata.cc:471] Attribute 'attr0' has size mismatch: registered(1) vs new(2)
[ OK ] Metadata.RegisterSizeMismatchFails (2 ms)
[ RUN ] Metadata.RegisterCount
E1216 20:03:45.023066 5574 metadata.cc:471] Attribute 'a' has size mismatch: registered(4) vs new(8)
E1216 20:03:45.023317 5574 metadata.cc:471] Attribute 'a' has size mismatch: registered(4) vs new(8)
E1216 20:03:45.023591 5574 metadata.cc:471] Attribute 'a' has size mismatch: registered(4) vs new(8)
[ OK ] Metadata.RegisterCount (1 ms)
[----------] 2 tests from Metadata (4 ms total)
[----------] 7 tests from MetadataTest
[ RUN ] MetadataTest.DisconnectedFails
[ OK ] MetadataTest.DisconnectedFails (3 ms)
[ RUN ] MetadataTest.SingleAttrSimplePipe
[ OK ] MetadataTest.SingleAttrSimplePipe (1 ms)
[ RUN ] MetadataTest.SingleAttrSimplePipeBackwardsFails
[ OK ] MetadataTest.SingleAttrSimplePipeBackwardsFails (1 ms)
[ RUN ] MetadataTest.MultipleAttrSimplePipeNoSpaceFails
[ OK ] MetadataTest.MultipleAttrSimplePipeNoSpaceFails (1 ms)
[ RUN ] MetadataTest.MultipeAttrSimplePipe
[ OK ] MetadataTest.MultipeAttrSimplePipe (1 ms)
[ RUN ] MetadataTest.MultipeAttrComplexPipe
[ OK ] MetadataTest.MultipeAttrComplexPipe (1 ms)
[ RUN ] MetadataTest.ScopeComponentDegreeOrder
[ OK ] MetadataTest.ScopeComponentDegreeOrder (1 ms)
[----------] 7 tests from MetadataTest (9 ms total)
[----------] 4 tests from GateTest
[ RUN ] GateTest.AddExistingHookFails
[ OK ] GateTest.AddExistingHookFails (0 ms)
[ RUN ] GateTest.HookPriority
[ OK ] GateTest.HookPriority (0 ms)
[ RUN ] GateTest.FindHook
[ OK ] GateTest.FindHook (0 ms)
[ RUN ] GateTest.RemoveHook
[ OK ] GateTest.RemoveHook (0 ms)
[----------] 4 tests from GateTest (3 ms total)
[----------] 1 test from HookTest
[ RUN ] HookTest.TrackGate
[ OK ] HookTest.TrackGate (0 ms)
[----------] 1 test from HookTest (0 ms total)
[----------] 2 tests from IOGateTest
[ RUN ] IOGateTest.OGate
[ OK ] IOGateTest.OGate (0 ms)
[ RUN ] IOGateTest.IGate
[ OK ] IOGateTest.IGate (0 ms)
[----------] 2 tests from IOGateTest (1 ms total)
[----------] 3 tests from EthHeaderTest
[ RUN ] EthHeaderTest.AddressInStr
[ OK ] EthHeaderTest.AddressInStr (1 ms)
[ RUN ] EthHeaderTest.AddrEquality
[ OK ] EthHeaderTest.AddrEquality (0 ms)
[ RUN ] EthHeaderTest.RandomAddr
[ OK ] EthHeaderTest.RandomAddr (0 ms)
[----------] 3 tests from EthHeaderTest (3 ms total)
[----------] 2 tests from PcapHandleBasicTest
[ RUN ] PcapHandleBasicTest.EmptyConstructor
[ OK ] PcapHandleBasicTest.EmptyConstructor (0 ms)
[ RUN ] PcapHandleBasicTest.BadDevice
[ OK ] PcapHandleBasicTest.BadDevice (2 ms)
[----------] 2 tests from PcapHandleBasicTest (2 ms total)
[----------] 2 tests from PcapHandleFixtureTest
[ RUN ] PcapHandleFixtureTest.MoveAssignment
[ OK ] PcapHandleFixtureTest.MoveAssignment (0 ms)
[ RUN ] PcapHandleFixtureTest.MoveConstructor
[ OK ] PcapHandleFixtureTest.MoveConstructor (0 ms)
[----------] 2 tests from PcapHandleFixtureTest (0 ms total)
[----------] 1 test from RdtscTest
[ RUN ] RdtscTest.NonDecreasing
[ OK ] RdtscTest.NonDecreasing (0 ms)
[----------] 1 test from RdtscTest (0 ms total)
[----------] 2 tests from TscToUs
[ RUN ] TscToUs.Frequency
[ OK ] TscToUs.Frequency (0 ms)
[ RUN ] TscToUs.NonNegative
[ OK ] TscToUs.NonNegative (0 ms)
[----------] 2 tests from TscToUs (0 ms total)
[----------] 1 test from GetEpochTime
[ RUN ] GetEpochTime.NonNegative
[ OK ] GetEpochTime.NonNegative (0 ms)
[----------] 1 test from GetEpochTime (0 ms total)
[----------] 1 test from GetCpuTime
[ RUN ] GetCpuTime.NonNegative
[ OK ] GetCpuTime.NonNegative (0 ms)
[----------] 1 test from GetCpuTime (0 ms total)
[----------] 1 test from RoundRobinTest
[ RUN ] RoundRobinTest.PositiveGates
[ OK ] RoundRobinTest.PositiveGates (1 ms)
[----------] 1 test from RoundRobinTest (1 ms total)
[----------] 2 tests from ZeroCopyVPortTest
[ RUN ] ZeroCopyVPortTest.Send
[ OK ] ZeroCopyVPortTest.Send (116 ms)
[ RUN ] ZeroCopyVPortTest.Recv
[ OK ] ZeroCopyVPortTest.Recv (0 ms)
[----------] 2 tests from ZeroCopyVPortTest (118 ms total)
[----------] Global test environment tear-down
[==========] 80 tests from 31 test cases ran. (9182 ms total)
[ PASSED ] 80 tests.
=================================================================
==5574==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 256 byte(s) in 2 object(s) allocated from:
#0 0x6f8980 in operator new(unsigned long) (/bess/core/all_test+0x6f8980)
#1 0x72c912 in bess::LeafTrafficClass* bess::TrafficClassBuilder::CreateTrafficClass<bess::LeafTrafficClass>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /bess/core/./traffic_class.h:514:12
#2 0x72c912 in bess::TrafficClassBuilder::CreateTree(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bess::TrafficClassBuilder::LeafArgs) /bess/core/./traffic_class.h:623
when connecting a physical NIC to BESS, the error raised on CentOS 7
localhost:10514 $ add port PMD P pci="00:19.0"
*** Error: rte_eth_rx_queue_setup() failed
BESS daemon response - errno=22 (EINVAL: Invalid argument)
NICs status:
[root@133-133-134-85 bess]# ./bin/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
============================================
0000:00:19.0 'Ethernet Connection I218-LM' drv=uio_pci_generic unused=
Network devices using kernel driver
===================================
0000:03:00.0 'Wireless 7260' if=wlp3s0 drv=iwlwifi unused=uio_pci_generic *Active*
Other network devices
=====================
<none>
/var/log/messages:
Sep 8 15:07:54 133-133-134-85 bessd[6022]: PMD: eth_em_rx_queue_setup(): drop_en functionality not supported by device
When passed both positional and keyword args, _choose_arg() attempts to raise an exception and fails (resulting in an exception, but -- you know -- not the right one :) ).
There are two problems here. First, bess
isn't in scope. I think this can be fixed by removing the staticmethod
decorator and using self.bess
. The second issue is that I think Error
is the wrong exception here (as evidenced by the wrong number of constructor arguments, I believe), but I'm not sure what the right one is.
How to reproduce:
$ bessctl daemon start
$ bessctl daemon start
E1025 00:19:47.651084 63354 bessd.cc:72] read(pidfile=/var/run/bessd.pid): Resource temporarily unavailable [11]
F1025 00:19:47.651481 63354 bessd.cc:97] Couldn't read pidfile: Resource temporarily unavailable [11]
*** Check failure stack trace: ***
@ 0x7fd6f911f5cd google::LogMessage::Fail()
@ 0x7fd6f9121433 google::LogMessage::SendToLog()
@ 0x7fd6f911f15b google::LogMessage::Flush()
@ 0x7fd6f911f379 google::LogMessage::~LogMessage()
@ 0x7fd6f912040a google::ErrnoLogMessage::~ErrnoLogMessage()
@ 0x52f1a7 bess::bessd::TryAcquirePidfileLock()
@ 0x52f224 bess::bessd::CheckUniqueInstance()
@ 0x4b8431 main
@ 0x7fd6f75c9830 __libc_start_main
@ 0x4c0b79 _start
@ (nil) (unknown)
F1025 00:19:47.839265 63353 bessd.cc:183] Failed. (syslog may have details)
*** Check failure stack trace: ***
@ 0x7fd6f911f5cd google::LogMessage::Fail()
@ 0x7fd6f9121433 google::LogMessage::SendToLog()
@ 0x7fd6f911f15b google::LogMessage::Flush()
@ 0x7fd6f9121e1e google::LogMessageFatal::~LogMessageFatal()
@ 0x52f693 bess::bessd::StartDaemon()
@ 0x4b84a5 main
@ 0x7fd6f75c9830 __libc_start_main
@ 0x4c0b79 _start
@ (nil) (unknown)
Aborted (core dumped)
*** Error: Cannot start BESS daemon
AddActiveWorker()
loops forever for some pipeline. One example is samples/nat.bess
:
Source() -> Rewrite(templates=packets) -> 0:nat:0 -> mac -> ip -> 1:nat:1 -> Sink()
bessctl
command:
localhost:10514 $ run samples/nat
Output from bessd
(with ASAN enabled):
...
W0427 19:48:35.617143 5857 module.h:466] Adding active worker for wid 0 to source0
ASAN:DEADLYSIGNAL
=================================================================
==5855==ERROR: AddressSanitizer: stack-overflow on address 0x7f77eee69fe8 (pc 0x000000889b1d bp 0x7f77eee6a040 sp 0x7f77eee69fd0 T2)
#0 0x889b1c in std::_Hashtable<int, int, std::allocator<int>, std::__detail::_Identity, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::_M_find_before_node(unsigned long, int const&, unsigned long) const /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../../../include/c++/6.2.0/bits/hashtable.h:1412
#1 0x889303 in std::_Hashtable<int, int, std::allocator<int>, std::__detail::_Identity, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::_M_find_node(unsigned long, int const&, unsigned long) const /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../../../include/c++/6.2.0/bits/hashtable.h:634:28
#2 0x888e15 in std::pair<std::__detail::_Node_iterator<int, true, false>, bool> std::_Hashtable<int, int, std::allocator<int>, std::__detail::_Identity, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::_M_insert<int const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<int, false> > > >(int const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<int, false> > > const&, std::integral_constant<bool, true>) /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../../../include/c++/6.2.0/bits/hashtable.h:1686:21
#3 0x888bd1 in std::__detail::_Insert_base<int, int, std::allocator<int>, std::__detail::_Identity, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::insert(int const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../../../include/c++/6.2.0/bits/hashtable_policy.h:713:9
#4 0x852485 in Module::AddActiveWorker(int) /bess/core/module.cc:267:3
#5 0x8527a4 in Module::AddActiveWorker(int) /bess/core/module.cc:272:9
...
#251 0x8527a4 in Module::AddActiveWorker(int) /bess/core/module.cc:272:9
SUMMARY: AddressSanitizer: stack-overflow /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../../../include/c++/6.2.0/bits/hashtable.h:1412 in std::_Hashtable<int, int, std::allocator<int>, std::__detail::_Identity, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::_M_find_before_node(unsigned long, int const&, unsigned long) const
Thread T2 created by T0 here:
#0 0x7755d9 in pthread_create (/bess/core/bessd+0x7755d9)
#1 0x14eb162 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/bess/core/bessd+0x14eb162)
==5855==ABORTING
localhost:10514 $ run perftest/loopback_vport
Environment variable "SN_CORE_START" is not set. Using default value "1"
Environment variable "SN_CORE_END" is not set. Using default value "8"
Environment variable "SN_CORE_STEP" is not set. Using default value "1"
Environment variable "SN_INTERVAL" is not set. Using default value "2"
CPU 1
Ports (total) vport0
--------------------------------
Outgoing (Mpps) 7.553 7.553
Incoming (Mpps) 7.553 7.553
*** Error: Not connected to BESS daemon
<disconnected> $
----------------------------------------------------------------------------
May 19 09:56:39 maryland bessd[13273]: /sys/devices/system/node/possible not available. Assuming a single-node system...
May 19 09:56:39 maryland bessd[13273]: EAL: Detected lcore 0 as core 0 on socket 0
May 19 09:56:39 maryland bessd[13273]: EAL: Detected lcore 1 as core 1 on socket 0
May 19 09:56:39 maryland bessd[13273]: EAL: Detected lcore 2 as core 2 on socket 0
May 19 09:56:39 maryland bessd[13273]: EAL: Detected lcore 3 as core 3 on socket 0
May 19 09:56:39 maryland bessd[13273]: EAL: Detected lcore 4 as core 0 on socket 0
May 19 09:56:39 maryland bessd[13273]: EAL: Detected lcore 5 as core 1 on socket 0
May 19 09:56:39 maryland bessd[13273]: EAL: Detected lcore 6 as core 2 on socket 0
May 19 09:56:39 maryland bessd[13273]: EAL: Detected lcore 7 as core 3 on socket 0
May 19 09:56:39 maryland bessd[13273]: EAL: Support maximum 128 logical core(s) by configuration.
May 19 09:56:39 maryland bessd[13273]: EAL: Detected 8 lcore(s)
May 19 09:56:39 maryland bessd[13273]: EAL: Probing VFIO support...
May 19 09:56:39 maryland bessd[13273]: EAL: Module /sys/module/vfio_pci not found! error 2 (No such file or directory)
May 19 09:56:39 maryland bessd[13273]: EAL: VFIO modules not loaded, skipping VFIO support...
May 19 09:56:39 maryland bessd[13273]: EAL: Setting up physically contiguous memory...
May 19 09:56:39 maryland bessd[13273]: EAL: Ask a virtual area of 0x1000000 bytes
May 19 09:56:39 maryland bessd[13273]: EAL: Virtual area found at 0x7fbab3400000 (size = 0x1000000)
May 19 09:56:39 maryland bessd[13273]: EAL: Ask a virtual area of 0x200000 bytes
May 19 09:56:39 maryland bessd[13273]: EAL: Virtual area found at 0x7fbab3000000 (size = 0x200000)
May 19 09:56:39 maryland bessd[13273]: EAL: Ask a virtual area of 0x200000 bytes
May 19 09:56:39 maryland bessd[13273]: EAL: Virtual area found at 0x7fbab2c00000 (size = 0x200000)
May 19 09:56:39 maryland bessd[13273]: EAL: Ask a virtual area of 0x200000 bytes
May 19 09:56:39 maryland bessd[13273]: EAL: Virtual area found at 0x7fbab2800000 (size = 0x200000)
May 19 09:56:39 maryland bessd[13273]: EAL: Ask a virtual area of 0x200000 bytes
May 19 09:56:39 maryland bessd[13273]: EAL: Virtual area found at 0x7fbab2400000 (size = 0x200000)
May 19 09:56:39 maryland bessd[13273]: EAL: Ask a virtual area of 0xd000000 bytes
May 19 09:56:39 maryland bessd[13273]: EAL: Virtual area found at 0x7fbaa5200000 (size = 0xd000000)
May 19 09:56:39 maryland bessd[13273]: EAL: Ask a virtual area of 0x200000 bytes
May 19 09:56:39 maryland bessd[13273]: EAL: Virtual area found at 0x7fbaa4e00000 (size = 0x200000)
May 19 09:56:39 maryland bessd[13273]: EAL: Ask a virtual area of 0x71400000 bytes
May 19 09:56:39 maryland bessd[13273]: EAL: Virtual area found at 0x7fba33800000 (size = 0x71400000)
May 19 09:56:39 maryland bessd[13273]: EAL: Ask a virtual area of 0x200000 bytes
May 19 09:56:39 maryland bessd[13273]: EAL: Virtual area found at 0x7fba33400000 (size = 0x200000)
May 19 09:56:39 maryland bessd[13273]: EAL: Requesting 1024 pages of size 2MB from socket 0
May 19 09:56:39 maryland bessd[13273]: EAL: TSC frequency is ~4008001 KHz
May 19 09:56:39 maryland bessd[13273]: EAL: Master lcore 127 is ready (tid=b5650cc0;cpuset=[0])
May 19 09:56:39 maryland bessd[13273]: EAL: lcore 3 is ready (tid=31bfc700;cpuset=[0])
May 19 09:56:39 maryland bessd[13273]: EAL: lcore 2 is ready (tid=323fd700;cpuset=[0])
May 19 09:56:39 maryland bessd[13273]: EAL: lcore 1 is ready (tid=32bfe700;cpuset=[0])
May 19 09:56:39 maryland bessd[13273]: EAL: lcore 0 is ready (tid=333ff700;cpuset=[0])
May 19 09:56:39 maryland bessd[13273]: EAL: PCI device 0000:03:00.0 on NUMA socket -1
May 19 09:56:39 maryland bessd[13273]: EAL: probe driver: 8086:154d rte_ixgbe_pmd
May 19 09:56:39 maryland bessd[13273]: EAL: PCI memory mapped at 0x7fbab64ce000
May 19 09:56:39 maryland bessd[13273]: EAL: PCI memory mapped at 0x7fbab6592000
May 19 09:56:39 maryland bessd[13273]: PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 5
May 19 09:56:39 maryland bessd[13273]: PMD: eth_ixgbe_dev_init(): port 0 vendorID=0x8086 deviceID=0x154d
May 19 09:56:39 maryland bessd[13273]: EAL: PCI device 0000:03:00.1 on NUMA socket -1
May 19 09:56:39 maryland bessd[13273]: EAL: probe driver: 8086:154d rte_ixgbe_pmd
May 19 09:56:39 maryland bessd[13273]: EAL: PCI memory mapped at 0x7fbab644e000
May 19 09:56:39 maryland bessd[13273]: EAL: PCI memory mapped at 0x7fbab658e000
May 19 09:56:39 maryland bessd[13273]: PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 6
May 19 09:56:39 maryland bessd[13273]: PMD: eth_ixgbe_dev_init(): port 1 vendorID=0x8086 deviceID=0x154d
May 19 09:56:40 maryland bessd[13273]: 524287 packet buffers allocated on socket 0
May 19 09:56:40 maryland bessd[13273]: 2 DPDK PMD ports have been recognized:
May 19 09:56:40 maryland bessd[13273]: DPDK port_id 0 (rte_ixgbe_pmd) RXQ 128 TXQ 64 0000:03:00.00 8086:154d
May 19 09:56:40 maryland bessd[13273]: DPDK port_id 1 (rte_ixgbe_pmd) RXQ 128 TXQ 64 0000:03:00.01 8086:154d
May 19 09:56:40 maryland bessd[13273]: Master: listening on 127.0.0.1:10514
May 19 09:56:43 maryland bessd[13273]: Master: a new client from 127.0.0.1:21704
May 19 09:56:47 maryland bessd[13273]: *** All workers have been paused ***
May 19 09:56:47 maryland bessd[13273]: Worker 0(0x7fba331ef220) is running on core 0 (socket 0)
May 19 09:56:47 maryland bessd[13273]: *** Resumed ***
May 19 09:56:47 maryland kernel: [244599.973764] bess - sn_register_netdev():872 vport0: registered - 26:d1:67:77:5e:b8 txq 1 rxq 1
May 19 09:56:49 maryland bessd[13273]: *** All workers have been paused ***
May 19 09:56:49 maryland kernel: [244601.982238] bess - sn_register_netdev():872 vport1: registered - 9a:71:0b:11:af:25 txq 1 rxq 1
May 19 09:56:49 maryland bessd[13273]: A critical error has occured. Aborting... (pid=13273, tid=13275)
May 19 09:56:49 maryland bessd[13273]: Signal: 11 (Segmentation fault), si_code: 128 (SI_KERNEL: sent by the kernel), address: (nil), IP: 0x441c45
May 19 09:56:49 maryland bessd[13273]: Backtrace (recent calls first) ---
May 19 09:56:49 maryland bessd[13273]: (0): bess/bin/bessd(sched_loop+0x4e5) [0x441c45]
May 19 09:56:49 maryland bessd[13273]: *** Resumed ***
May 19 09:56:49 maryland bessd[13273]: accumulate at /opt/bess/core/tc.c:345
May 19 09:56:49 maryland bessd[13273]: 342: #011*((__m128i *)p1+1) = _mm_add_epi64(*((__m128i *)p1+1), *((__m128i *)p2+1));
May 19 09:56:49 maryland bessd[13273]: 343: #else
May 19 09:56:49 maryland bessd[13273]: 344: #011for (int i = 0; i < NUM_RESOURCES; i++)
May 19 09:56:49 maryland bessd[13273]: -> 345: #011#011p1[i] += p2[i];
May 19 09:56:49 maryland bessd[13273]: 346: #endif
May 19 09:56:49 maryland bessd[13273]: 347: }
May 19 09:56:49 maryland bessd[13273]: 348:
May 19 09:56:49 maryland bessd[13273]: (inlined by) tc_account at /opt/bess/core/tc.c:360
May 19 09:56:49 maryland bessd[13273]: 357:
May 19 09:56:49 maryland bessd[13273]: 358: #011int i;
May 19 09:56:49 maryland bessd[13273]: 359:
May 19 09:56:49 maryland bessd[13273]: -> 360: #011accumulate(c->stats.usage, usage);
May 19 09:56:49 maryland bessd[13273]: 361:
May 19 09:56:49 maryland bessd[13273]: 362: #011if (!c->has_limit) {
May 19 09:56:49 maryland bessd[13273]: 363: #011#011c->last_tsc = tsc;
May 19 09:56:49 maryland bessd[13273]: (inlined by) sched_done at /opt/bess/core/tc.c:439
May 19 09:56:49 maryland bessd[13273]: 436: #011#011assert(c->state.queued);
May 19 09:56:49 maryland bessd[13273]: 437: #011#011c->ss.pass += c->ss.stride * consumed / QUANTUM;
May 19 09:56:49 maryland bessd[13273]: 438:
May 19 09:56:49 maryland bessd[13273]: -> 439: #011#011throttled = tc_account(s, c, usage, tsc);
May 19 09:56:49 maryland bessd[13273]: 440: #011#011if (throttled)
May 19 09:56:49 maryland bessd[13273]: 441: #011#011#011reschedule = 0;
May 19 09:56:49 maryland bessd[13273]: 442:
May 19 09:56:49 maryland bessd[13273]: (inlined by) sched_loop at /opt/bess/core/tc.c:691
May 19 09:56:49 maryland bessd[13273]: 688: #011#011#011usage[RESOURCE_PACKET] = ret.packets;
May 19 09:56:49 maryland bessd[13273]: 689: #011#011#011usage[RESOURCE_BIT] = ret.bits;
May 19 09:56:49 maryland bessd[13273]: 690:
May 19 09:56:49 maryland bessd[13273]: -> 691: #011#011#011sched_done(s, c, usage, 1, now);
May 19 09:56:49 maryland bessd[13273]: 692: #011#011} else {
May 19 09:56:49 maryland bessd[13273]: 693: #011#011#011now = rdtsc();
May 19 09:56:49 maryland bessd[13273]: 694:
May 19 09:56:49 maryland bessd[13273]: (1): bess/bin/bessd() [0x442e35]
May 19 09:56:49 maryland bessd[13273]: run_worker at /opt/bess/core/worker.c:213
May 19 09:56:49 maryland bessd[13273]: -> 213: #011sched_loop(ctx.s);
May 19 09:56:49 maryland bessd[13273]: (2): bess/bin/bessd(eal_thread_loop+0x1d4) [0x490594]
May 19 09:56:49 maryland bessd[13273]: eal_thread_loop at /opt/bess/deps/dpdk-16.04/lib/librte_eal/linuxapp/eal/eal_thread.c:184
May 19 09:56:49 maryland bessd[13273]: -> 184: #011#011ret = lcore_config[lcore_id].f(fct_arg);
May 19 09:56:49 maryland bessd[13273]: (3): /lib/x86_64-linux-gnu/libpthread.so.0(+0x8181) [0x7fbab5e61181]
May 19 09:56:49 maryland bessd[13273]: ?? ??:0
May 19 09:56:49 maryland bessd[13273]: (4): /lib/x86_64-linux-gnu/libc.so.6(clone+0x6c) [0x7fbab574c47c]
May 19 09:56:49 maryland bessd[13273]: ?? ??:0
May 19 09:56:49 maryland kernel: [244602.026269] bess - sn_release_netdev():890 vport1: releasing netdev...
May 19 09:56:49 maryland kernel: [244602.052721] bess - sn_release_netdev():890 vport0: releasing netdev...
https://travis-ci.org/NetSys/bess/jobs/200183293
(I guess it's not easily reproducible)
$ ./sanity_check.sh
This script runs a collection of BESS sample scripts and makes sure nothing blows up. Sit back and relax.
Running exactmatch.bess...
Running flowgen.bess...
Running generic_encap.bess...
Running hash_lb.bess...
Running igate.bess...
Running iplookup.bess...
Running l2_forward.bess...
Running multicore.bess...
Running queue.bess...
*** Error: RPC failed to localhost:10514 - <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, {"created":"@1486687737.094491478","description":"Endpoint read failed","file":"src/core/ext/transport/chttp2/transport/chttp2_transport.c","file_line":1851,"grpc_status":14,"occurred_during_write":0,"referenced_errors":[{"created":"@1486687737.094483678","description":"Socket closed","fd":6,"file":"src/core/lib/iomgr/tcp_posix.c","file_line":249,"target_address":"ipv4:127.0.0.1:10514"}]})>
From /tmp/bessd_crash.log (Fri Feb 10 00:48:57 2017):
A critical error has occured. Aborting...
Signal: 11 (Segmentation fault), si_code: 1 (SEGV_MAPERR: address not mapped to object)
pid: 6845, tid: 6851, address: 0x20, IP: 0x600615
Backtrace (recent calls first) ---
(0): /home/travis/build/NetSys/bess/core/bessd(_ZNK4bess22RoundRobinTrafficClass8TraverseEPFvPKNS_12TrafficClassEPvES4_+0x35) [0x600615]
bess::RoundRobinTrafficClass::Traverse(void (*)(bess::TrafficClass const*, void*), void*) const at /build/bess/core/traffic_class.cc:252
(file/line not available)
(1): /home/travis/build/NetSys/bess/core/bessd(_ZNK4bess20PriorityTrafficClass8TraverseEPFvPKNS_12TrafficClassEPvES4_+0x43) [0x600523]
bess::PriorityTrafficClass::Traverse(void (*)(bess::TrafficClass const*, void*), void*) const at /build/bess/core/traffic_class.cc:83
(file/line not available)
(2): /home/travis/build/NetSys/bess/core/bessd(_ZN15BESSControlImpl11ListWorkersEPN4grpc13ServerContextEPKN4bess2pb12EmptyRequestEPNS4_19ListWorkersResponseE+0xe1) [0x5d5cb1]
bess::Scheduler::NumTcs() const at /build/bess/core/hooks/../traffic_class.h:131
(file/line not available)
(inlined by) BESSControlImpl::ListWorkers(grpc::ServerContext*, bess::pb::EmptyRequest const*, bess::pb::ListWorkersResponse*) at /build/bess/core/bessctl.cc:390
(file/line not available)
(3): /home/travis/build/NetSys/bess/core/bessd(_ZNSt17_Function_handlerIFN4grpc6StatusEPN4bess2pb11BESSControl7ServiceEPNS0_13ServerContextEPKNS3_12EmptyRequestEPNS3_19ListWorkersResponseEESt7_Mem_fnIMS5_FS1_S8_SB_SD_EEE9_M_invokeERKSt9_Any_dataOS6_OS8_OSB_OSD_+0x33) [0x6ded23]
grpc::Status std::_Mem_fn_base<grpc::Status (bess::pb::BESSControl::Service::*)(grpc::ServerContext*, bess::pb::EmptyRequest const*, bess::pb::ListWorkersResponse*), true>::operator()<grpc::ServerContext*, bess::pb::EmptyRequest const*, bess::pb::ListWorkersResponse*, void>(bess::pb::BESSControl::Service*, grpc::ServerContext*&&, bess::pb::EmptyRequest const*&&, bess::pb::ListWorkersResponse*&&) const at /usr/include/c++/5/functional:600
(file/line not available)
(inlined by) std::_Function_handler<grpc::Status (bess::pb::BESSControl::Service*, grpc::ServerContext*, bess::pb::EmptyRequest const*, bess::pb::ListWorkersResponse*), std::_Mem_fn<grpc::Status (bess::pb::BESSControl::Service::*)(grpc::ServerContext*, bess::pb::EmptyRequest const*, bess::pb::ListWorkersResponse*)> >::_M_invoke(std::_Any_data const&, bess::pb::BESSControl::Service*&&, grpc::ServerContext*&&, bess::pb::EmptyRequest const*&&, bess::pb::ListWorkersResponse*&&) at /usr/include/c++/5/functional:1857
(file/line not available)
(4): /home/travis/build/NetSys/bess/core/bessd(_ZN4grpc16RpcMethodHandlerIN4bess2pb11BESSControl7ServiceENS2_12EmptyRequestENS2_19ListWorkersResponseEE10RunHandlerERKNS_13MethodHandler16HandlerParameterE+0x9b) [0x6f138b]
std::function<grpc::Status (bess::pb::BESSControl::Service*, grpc::ServerContext*, bess::pb::EmptyRequest const*, bess::pb::ListWorkersResponse*)>::operator()(bess::pb::BESSControl::Service*, grpc::ServerContext*, bess::pb::EmptyRequest const*, bess::pb::ListWorkersResponse*) const at /usr/include/c++/5/functional:2267
(file/line not available)
(inlined by) grpc::RpcMethodHandler<bess::pb::BESSControl::Service, bess::pb::EmptyRequest, bess::pb::ListWorkersResponse>::RunHandler(grpc::MethodHandler::HandlerParameter const&) at /usr/local/include/grpc++/impl/codegen/method_handler_impl.h:59
(file/line not available)
(5): /home/travis/build/NetSys/bess/core/bessd(_ZN4grpc6Server6RunRpcEv+0x25b) [0x98e7eb]
grpc::Server::RunRpc() at ??:?
(6): /home/travis/build/NetSys/bess/core/bessd(_ZN4grpc17DynamicThreadPool10ThreadFuncEv+0xe1) [0x9a8e31]
grpc::DynamicThreadPool::ThreadFunc() at ??:?
(7): /home/travis/build/NetSys/bess/core/bessd(_ZN4grpc17DynamicThreadPool13DynamicThread10ThreadFuncEv+0x12) [0x9a9022]
grpc::DynamicThreadPool::DynamicThread::ThreadFunc() at ??:?
(8): /home/travis/build/NetSys/bess/core/bessd() [0xb1216f]
execute_native_thread_routine at thread.o:?
(file/line not available)
(9): /lib/x86_64-linux-gnu/libpthread.so.0(+0x8183) [0x7f1e4987c183]
?? ??:0
(10): /lib/x86_64-linux-gnu/libc.so.6(clone+0x6c) [0x7f1e495a937c]
?? ??:0
Command failed: daemon stop
Test failed. Sorry.
To reproduce:
make CXX=clang++ SANITIZE=1
utils/pcap_handle_test
output:
[==========] Running 4 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 2 tests from PcapHandleBasicTest
[ RUN ] PcapHandleBasicTest.EmptyConstructor
[ OK ] PcapHandleBasicTest.EmptyConstructor (0 ms)
[ RUN ] PcapHandleBasicTest.BadDevice
[ OK ] PcapHandleBasicTest.BadDevice (0 ms)
[----------] 2 tests from PcapHandleBasicTest (1 ms total)
[----------] 2 tests from PcapHandleFixtureTest
[ RUN ] PcapHandleFixtureTest.MoveAssignment
[ OK ] PcapHandleFixtureTest.MoveAssignment (0 ms)
[ RUN ] PcapHandleFixtureTest.MoveConstructor
[ OK ] PcapHandleFixtureTest.MoveConstructor (0 ms)
[----------] 2 tests from PcapHandleFixtureTest (0 ms total)
[----------] Global test environment tear-down
[==========] 4 tests from 2 test cases ran. (1 ms total)
[ PASSED ] 4 tests.
=================================================================
==32111==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 1 byte(s) in 1 object(s) allocated from:
#0 0x57a978 (/home/vagrant/bess/core/utils/pcap_handle_test+0x57a978)
#1 0x7fd318a668d9 (/lib/x86_64-linux-gnu/libc.so.6+0x8a8d9)
#2 0x8923d9 (/home/vagrant/bess/core/utils/pcap_handle_test+0x8923d9)
SUMMARY: AddressSanitizer: 1 byte(s) leaked in 1 allocation(s).
This commit breaks our testing scripts, because bessctl will no longer return an error code when it exits. This either needs to be patched or rolled back.
This is based on looking at #351 -- currently bessctl
seems to only support positional arguments, which is a problem when multiple arguments to the same command are optional (in particular requiring one to decide between what is more likely to be omitted and ordering arguments to allow that). We should add support for some sort of keyword arguments, this would fix this problem. The challenge of course is making sure that the commands don't become too verbose as a result.
I am somewhat puzzled by the Codecov results. Coverage graph fluctuates for some non-obvious reasons...
Hello All,
We are doing a bess setup for inter-VM communication on the same host. We were looking through the GitHub page and bess wiki but are unable to find how to assign bess port to a VM. Please help us in setting up VM vNIC in bess setup.
Thanks
Hi,
I am testing the release of BESS v0.2. I cannot add a vhost for my kvm VM. And I cannot find the vhost driver in core/driver folder.
So, how to add a vhost port for BESS v0.2?
Edit:
I found you abandoned Vhost driver at 184f8b5
But, is there an instruction on how to use kvm nic in following versions of BESS? The old instructions on wiki doesn't work.
Thanks!
In vport.cc
and vport_zc.cc
, the memory address given to llring_init()
and other llring
functions may be misaligned, which is an undefined behavior. Unaligned memory accesses perhaps also have performance impact?
How to reproduce:
make CXX=clang++ SANITIZE=1
./all_test
Errors found by LLVM sanitizer:
drivers/../kmod/llring.h:255:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:255:5 in
drivers/../kmod/llring.h:255:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:255:5 in
drivers/../kmod/llring.h:255:12: runtime error: store to misaligned address 0x7f2b780fbd48 for type 'uint32_t' (aka 'unsigned int'), which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:255:12 in
drivers/../kmod/llring.h:256:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:256:5 in
drivers/../kmod/llring.h:256:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:256:5 in
drivers/../kmod/llring.h:257:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:257:5 in
drivers/../kmod/llring.h:257:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:257:5 in
drivers/../kmod/llring.h:257:12: runtime error: store to misaligned address 0x7f2b780fbd58 for type 'uint32_t' (aka 'unsigned int'), which requires 16 byte alignment
0x7f2b780fbd58: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:257:12 in
drivers/../kmod/llring.h:258:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:258:5 in
drivers/../kmod/llring.h:258:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:258:5 in
drivers/../kmod/llring.h:259:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:259:5 in
drivers/../kmod/llring.h:259:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:259:5 in
drivers/../kmod/llring.h:261:20: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:261:20 in
drivers/../kmod/llring.h:261:20: runtime error: member access within misaligned address 0x7f2b780fbdc8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:189:2)', which requires 64 byte alignment
0x7f2b780fbdc8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:261:20 in
drivers/../kmod/llring.h:261:25: runtime error: store to misaligned address 0x7f2b780fbdc8 for type 'volatile uint32_t' (aka 'volatile unsigned int'), which requires 64 byte alignment
0x7f2b780fbdc8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:261:25 in
drivers/../kmod/llring.h:261:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:261:5 in
drivers/../kmod/llring.h:261:5: runtime error: member access within misaligned address 0x7f2b780fbd88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fbd88: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:261:5 in
drivers/../kmod/llring.h:261:10: runtime error: store to misaligned address 0x7f2b780fbd88 for type 'volatile uint32_t' (aka 'volatile unsigned int'), which requires 64 byte alignment
0x7f2b780fbd88: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:261:10 in
drivers/../kmod/llring.h:262:20: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:262:20 in
drivers/../kmod/llring.h:262:20: runtime error: member access within misaligned address 0x7f2b780fbdc8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:189:2)', which requires 64 byte alignment
0x7f2b780fbdc8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:262:20 in
drivers/../kmod/llring.h:262:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:262:5 in
drivers/../kmod/llring.h:262:5: runtime error: member access within misaligned address 0x7f2b780fbd88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fbd88: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:262:5 in
drivers/../kmod/llring.h:287:18: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:287:18 in
drivers/../kmod/llring.h:287:18: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:287:18 in
drivers/../kmod/llring.h:287:25: runtime error: load of misaligned address 0x7f2b780fbd48 for type 'uint32_t' (aka 'unsigned int'), which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:287:25 in
drivers/../kmod/llring.h:294:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:294:5 in
drivers/../kmod/llring.h:294:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:294:5 in
drivers/../kmod/llring.h:294:12: runtime error: store to misaligned address 0x7f2b780fbd58 for type 'uint32_t' (aka 'unsigned int'), which requires 16 byte alignment
0x7f2b780fbd58: note: pointer points here
00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:294:12 in
drivers/../kmod/llring.h:729:9: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:729:9 in
drivers/../kmod/llring.h:729:9: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:729:9 in
drivers/../kmod/llring.h:395:21: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:395:21 in
drivers/../kmod/llring.h:395:21: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:395:21 in
drivers/../kmod/llring.h:403:18: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:403:18 in
drivers/../kmod/llring.h:403:18: runtime error: member access within misaligned address 0x7f2b780fdec8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fdec8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:403:18 in
drivers/../kmod/llring.h:403:23: runtime error: load of misaligned address 0x7f2b780fdec8 for type 'volatile uint32_t' (aka 'volatile unsigned int'), which requires 64 byte alignment
0x7f2b780fdec8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:403:23 in
drivers/../kmod/llring.h:404:18: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:404:18 in
drivers/../kmod/llring.h:404:18: runtime error: member access within misaligned address 0x7f2b780fdf08 for type 'struct (anonymous struct at drivers/../kmod/llring.h:189:2)', which requires 64 byte alignment
0x7f2b780fdf08: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:404:18 in
drivers/../kmod/llring.h:429:34: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:429:34 in
drivers/../kmod/llring.h:429:34: runtime error: member access within misaligned address 0x7f2b780fdec8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fdec8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:429:34 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: load of misaligned address 0x7f2b780fde88 for type 'uint32_t' (aka 'unsigned int'), which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:437:6: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:437:6 in
drivers/../kmod/llring.h:437:6: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:437:6 in
drivers/../kmod/llring.h:437:6: runtime error: load of misaligned address 0x7f2b780fde98 for type 'uint32_t' (aka 'unsigned int'), which requires 16 byte alignment
0x7f2b780fde98: note: pointer points here
00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:437:6 in
drivers/../kmod/llring.h:452:9: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:452:9 in
drivers/../kmod/llring.h:452:9: runtime error: member access within misaligned address 0x7f2b780fdec8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fdec8: note: pointer points here
00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:452:9 in
drivers/../kmod/llring.h:455:5: runtime error: member access within misaligned address 0x7f2b780fde88 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fde88: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:455:5 in
drivers/../kmod/llring.h:455:5: runtime error: member access within misaligned address 0x7f2b780fdec8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fdec8: note: pointer points here
00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:455:5 in
drivers/vport_zc.cc:132:53: runtime error: member access within misaligned address 0x7f2b780fde48 for type 'struct vport_out_regs', which requires 64 byte alignment
0x7f2b780fde48: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/vport_zc.cc:132:53 in
[ OK ] ZeroCopyVPortTest.Send (357 ms)
[ RUN ] ZeroCopyVPortTest.Recv
drivers/../kmod/llring.h:729:9: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:729:9 in
drivers/../kmod/llring.h:729:9: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:729:9 in
drivers/../kmod/llring.h:395:21: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:395:21 in
drivers/../kmod/llring.h:395:21: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:395:21 in
drivers/../kmod/llring.h:403:18: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:403:18 in
drivers/../kmod/llring.h:403:18: runtime error: member access within misaligned address 0x7f2b780fbd88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fbd88: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:403:18 in
drivers/../kmod/llring.h:403:23: runtime error: load of misaligned address 0x7f2b780fbd88 for type 'volatile uint32_t' (aka 'volatile unsigned int'), which requires 64 byte alignment
0x7f2b780fbd88: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:403:23 in
drivers/../kmod/llring.h:404:18: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:404:18 in
drivers/../kmod/llring.h:404:18: runtime error: member access within misaligned address 0x7f2b780fbdc8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:189:2)', which requires 64 byte alignment
0x7f2b780fbdc8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:404:18 in
drivers/../kmod/llring.h:429:34: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:429:34 in
drivers/../kmod/llring.h:429:34: runtime error: member access within misaligned address 0x7f2b780fbd88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fbd88: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:429:34 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: load of misaligned address 0x7f2b780fbd48 for type 'uint32_t' (aka 'unsigned int'), which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:433:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:433:2 in
drivers/../kmod/llring.h:437:6: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:437:6 in
drivers/../kmod/llring.h:437:6: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:437:6 in
drivers/../kmod/llring.h:437:6: runtime error: load of misaligned address 0x7f2b780fbd58 for type 'uint32_t' (aka 'unsigned int'), which requires 16 byte alignment
0x7f2b780fbd58: note: pointer points here
00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:437:6 in
drivers/../kmod/llring.h:452:9: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:452:9 in
drivers/../kmod/llring.h:452:9: runtime error: member access within misaligned address 0x7f2b780fbd88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fbd88: note: pointer points here
00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:452:9 in
drivers/../kmod/llring.h:455:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:455:5 in
drivers/../kmod/llring.h:455:5: runtime error: member access within misaligned address 0x7f2b780fbd88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fbd88: note: pointer points here
00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:455:5 in
drivers/../kmod/llring.h:1117:9: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:1117:9 in
drivers/../kmod/llring.h:1117:9: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:1117:9 in
drivers/../kmod/llring.h:576:21: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:576:21 in
drivers/../kmod/llring.h:576:21: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:576:21 in
drivers/../kmod/llring.h:583:18: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:583:18 in
drivers/../kmod/llring.h:583:18: runtime error: member access within misaligned address 0x7f2b780fbdc8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:189:2)', which requires 64 byte alignment
0x7f2b780fbdc8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:583:18 in
drivers/../kmod/llring.h:583:23: runtime error: load of misaligned address 0x7f2b780fbdc8 for type 'volatile uint32_t' (aka 'volatile unsigned int'), which requires 64 byte alignment
0x7f2b780fbdc8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:583:23 in
drivers/../kmod/llring.h:584:18: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:584:18 in
drivers/../kmod/llring.h:584:18: runtime error: member access within misaligned address 0x7f2b780fbd88 for type 'struct (anonymous struct at drivers/../kmod/llring.h:183:2)', which requires 64 byte alignment
0x7f2b780fbd88: note: pointer points here
00 00 00 00 20 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:584:18 in
drivers/../kmod/llring.h:608:34: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:608:34 in
drivers/../kmod/llring.h:608:34: runtime error: member access within misaligned address 0x7f2b780fbdc8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:189:2)', which requires 64 byte alignment
0x7f2b780fbdc8: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:608:34 in
drivers/../kmod/llring.h:612:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:612:2 in
drivers/../kmod/llring.h:612:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct (anonymous struct at drivers/../kmod/llring.h:173:2)', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:612:2 in
drivers/../kmod/llring.h:612:2: runtime error: load of misaligned address 0x7f2b780fbd48 for type 'uint32_t' (aka 'unsigned int'), which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:612:2 in
drivers/../kmod/llring.h:612:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:612:2 in
drivers/../kmod/llring.h:612:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:612:2 in
drivers/../kmod/llring.h:612:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:612:2 in
drivers/../kmod/llring.h:612:2: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:612:2 in
drivers/../kmod/llring.h:619:9: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:619:9 in
drivers/../kmod/llring.h:619:9: runtime error: member access within misaligned address 0x7f2b780fbdc8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:189:2)', which requires 64 byte alignment
0x7f2b780fbdc8: note: pointer points here
00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:619:9 in
drivers/../kmod/llring.h:623:5: runtime error: member access within misaligned address 0x7f2b780fbd48 for type 'struct llring', which requires 64 byte alignment
0x7f2b780fbd48: note: pointer points here
00 00 00 00 00 04 00 00 ff 03 00 00 00 00 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:623:5 in
drivers/../kmod/llring.h:623:5: runtime error: member access within misaligned address 0x7f2b780fbdc8 for type 'struct (anonymous struct at drivers/../kmod/llring.h:189:2)', which requires 64 byte alignment
0x7f2b780fbdc8: note: pointer points here
00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: AddressSanitizer: undefined-behavior drivers/../kmod/llring.h:623:5 in
[ OK ] ZeroCopyVPortTest.Recv (83 ms)
[----------] 2 tests from ZeroCopyVPortTest (441 ms total)
Hello,
We are trying to run bess on a machine that has a single port Mellanox ConnectX-3 NIC. We were able to run bessd and detect the mellanox port. But when we are trying to create a PMDPort from bessctl CLI (add port PMDPort pport0 port_id=0) an exception is being thrown. We traced back the root of the reason and it seems rte_eth_rx_queue_setup is returning -EINVAL, i.e., "The size of network buffers which can be allocated from the memory pool does not fit the various buffer sizes allowed by the device controller". Any suggestions as to what configuration/parameter in bess might be causing this problem?
Hi,
I see that this commit disabled "guest mode". I assume that means we cannot load KMOD under a para-virtualized kernel (CONFIG_PARAVIRT). My question is -
git show 0ada460
commit 0ada460
Author: Sangjin Han [email protected]
Date: Tue Dec 1 01:02:58 2015 -0800
disable guest mode
Hi Sangjin,
I am using bess to build a cluster for running NFV applications.
I create 2 ZeroCopyVport in the host and connect these 2 ZeroCopyVPort in the host. And I can successfully run /core/nvport/native_app/source.c and /core/nvport/native_app/sink.c from the host.
Then I create a docker container and try to run /core/nvport/native_app/source.c in side the container, but it doesn't work. The problem is that I can't successfully initialize DPDK EAL.
I'm wondering if it is possible to use ZeroCopyVPort in the container? Do I need to mount some directories inside the file system?
It runs fine for some indeterminate amount of time (minutes) and then stops forwarding packets altogether.
Hi,
I cannot seem to compile bess on Fedora 24 which is 4.7.x kernel based (4.7.6-200.fc24.x86_64). The problem is that in core/kmod/sndrv.c there is a check for " if (paravirt_enabled()) {" in the sndrv_init function. This is non-existent on 4.7 kernel. Maybe we need to use a different function to check this ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.