Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

packetblaster: use default number of tx/rx descriptors #883

Merged
merged 6 commits into from
May 12, 2016

Conversation

lukego
Copy link
Member

@lukego lukego commented Apr 19, 2016

This depends on the default number of descriptors being sane and for that reason this branch includes a merge of #882.

This seems to work fine - tested line rate with minimum packet size on 10x10G per packetblaster process: https://twitter.com/lukego/status/721693707251105792

lukego added 3 commits April 19, 2016 08:08
Adopt the value for num_descriptors that is recommended in the
optimization guidelines:
https://github.com/snabbco/snabb/blob/next/src/doc/performance-tuning.md
This depends on the default number of descriptors being sane.
See merge 192f00c to ensure this.

This seems to work fine - tested line rate with minimum packet size on
10x10G per packetblaster process:
https://twitter.com/lukego/status/721693707251105792
lukego added a commit to lukego/snabb that referenced this pull request Apr 19, 2016
Enable a really important assertion that the packet freelist does not
overflow when we allocate a new batch of packets.

This should not be a performance issue: the check is on a slow-path
where we are allocating a thousand new packets.

This is actually very important. I found a bug that packetblaster
would crash with heap corruption / segfault when you run it with more
than 3 network interfaces at the same time. This is because it
allocated too many packets for transmit/receive buffers and that error
was not caught unless "developer debug" mode was enabled.

(That problem is separately alleviated by snabbco#883 that reduces the
descriptor queues from 32K packets to 2K packets each.)
lukego added 3 commits April 22, 2016 11:41
Packets are allocated dynamically on demand and this is only an
artifical limit of "more than anybody should ever need" for catching
unbounded allocations (leaks). (The limit also serves to make the
freelist simple i.e. a fixed-size array.)

The previous value of 100,000 is too low to serve its purpose: it is
reasonable to allocate more than 100,000 packet buffers when managing
many network receive queues and wanting to avoid packet drops.

See discussion at:
snabbco#882 (comment)
Needed to work around CI problems.
@eugeneia
Copy link
Member

eugeneia commented Apr 25, 2016

Had to manually kill off SnabbBot for d616abf because the nfvconfig selftest got stuck. Can't really tell why this happened.

@eugeneia eugeneia self-assigned this Apr 26, 2016
eugeneia added a commit that referenced this pull request Apr 26, 2016
# Conflicts:
#	src/program/packetblaster/packetblaster.lua
@eugeneia eugeneia merged commit 0a2154d into snabbco:master May 12, 2016
takikawa pushed a commit to takikawa/snabb that referenced this pull request Aug 5, 2017
Distinguish state vs config grammars
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants