Comments (6)
Queues are passed as parameters in most example scripts and seems to work, can you give an example where it is corrupted?
I've seen problems with MAC addresses, yes. But 48 bits should be serializable and I think I once fixed something related to this, I will check this.
from libmoon.
Just revert the mentioned commit QratorLabs/MoonGen@f4565f1 in my MoonGen clone and run
./build/MoonGen ./examples/l3-tcp-syn-ack-flood.lua 0 -c
That's about RX queue serialization, so to get an error some traffic must be received at the running machine.
...
[INFO] Device 0 (7C:FE:90:77:D2:92) is up: 40000 MBit/s
rxCount
[FATAL] Lua error in task rxCount
/home/art/MoonGen/build/../libmoon/lua/driver/mlx5.lua:71: bad argument #2 to 'new' (cannot convert 'nil' to 'int')
Stack Traceback
===============
(2) Lua method 'getThroughput' at file '/home/art/MoonGen/build/../libmoon/lua/driver/mlx5.lua:71'
Local variables:
self = [Device: id=0] {initialized:true, rxQueues:table: 0x414071c8, txQueues:table: 0x41f42dc8 (more...)}
...
It seems that queue object was corrupted, and so its dev points to nowhere.
Now I'm trying to reproduce this bug with by task within the pristine repository.
from libmoon.
Yes, it also breaks in https://github.com/emmericp/MoonGen repository.
Just grab this file https://github.com/QratorLabs/MoonGen/blob/testing-queue-serialization/examples/l3-tcp-syn-ack-flood.lua and run
./build/MoonGen ./examples/l3-tcp-syn-ack-flood.lua 0 -c
from libmoon.
Working as expected for me, fresh server, fresh clone:
3 git clone https://github.com/emmericp/MoonGen
4 cd MoonGen/
5 ls
6 ./build.sh
7 ./setup-hugetlbfs.sh
8 curl https://raw.githubusercontent.com/QratorLabs/MoonGen/testing-queue-serialization/examples/l3-tcp-syn-ack-flood.lua > test.lua
9 ./build/MoonGen test.lua 0 -c
[INFO] Device 0 (68:05:CA:32:44:D8) is up: 40000 MBit/s
rxCount
^C[Device: id=0] RX: 0.00 Mpps, 0 Mbit/s (0 Mbit/s with framing)
[Device: id=0] RX: nan (StdDev 0.00) Mpps, nan (StdDev 0) Mbit/s (nan Mbit/s with framing), total 1 packets with 87 bytes (incl. CRC)
from libmoon.
i've fixed the queue thing, it was specific to the mlx driver and the way you were using it
mac serialization seems to work for me, can you provide an example where this fails? i've tested it with this test:
local mg = require "libmoon"
local function test(mac)
assert(mg.startTask("thread", mac):wait() == mac)
end
function master()
test(0xFFFFFFFFFFFF)
test(0)
test(0x1234567890AB)
end
function thread(mac)
return mac
end
this used to be broken due to bad serialization, but that should have been fixed here: 08255c3
from libmoon.
Thank you for fixing queues, it works.
As for MAC serialization, that's quite old issue, I need some time to restore that circumstance.
from libmoon.
Related Issues (20)
- attempt to index local 'fw' error with Pktgen
- Fault for hello world
- Does libmoon and FlowScope support more than 128 lcores? HOT 1
- Rate Limit RX HOT 1
- pcap magic number not accepted
- Cores from different sockets are never used
- Timestamp of Outgoing Packets HOT 2
- libmoon with dpdk 20+? Mellanox PMD drivers ConnectX5 HOT 1
- Unclear how libmoon is supposed to interface with Mellanox dev=mlx5_core HOT 3
- rate limit less than 1mbit/s
- Segmentation Fault in Script
- Send and receive on the same interface
- Multiple Definitions
- Building error.
- Error on running dump-pkts.lua example HOT 5
- Newer DPDK HOT 7
- The relationship between numpkts and bufs.size, and the impact of batching on performance after receiving packets
- pktgen example not working with Intel X540-AT2 HOT 2
- Build error HOT 3
- libmoon can't find qlogic QL41000 nic while dpdk example app can work HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libmoon.