forked from snabbco/snabb
-
Notifications
You must be signed in to change notification settings - Fork 19
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
Vita Q4 2019 #109
Merged
Vita Q4 2019 #109
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Take padding to minimum Ethernet frame size into account.
Implement semantics according to RFC6020, 9.6. When validating a configuration against a schema which contains leaf foo { type enumeration { enum bar; enum baz; } } the resulting Lua table will contain the key "foo" whose value is the string of the chosen enum in the configuration, e.g. { foo = "baz" } It is debatable whether this should actually result in the numerical value assigned to the name in the schema. The name appears to be more useful because the consumer of this table would have to reproduce the same name-to-value mapping as the schema, which introduces a source of possible errors.
The goal of this change is to simplify the loop structure of the Snabb engine to make it more likely that the compiler can find and optimize the packet-processing loops. In particular, it can help in the situation when the program starts in an idle state with no packets to process. In that case, we want to avoid that traces compiled for this initial workload have a negative impact on the creation of traces for the actual (non-idle) workload. See snabbco#1414 for an analysis with a simplified engine.
* lib/ljsyscall/syscall/linux/syscalls.lua: More robustly create multi-word bitmasks. * src/lib/numa.lua: Remove facility for blacklisting kernel versions. Re-enable bind_to_numa_node generally.
By setting the "standard" option to a true value, the value returned by the hash function will be the lower 32 bits of the 64-bit value produced by the reference implementation. This option is not available for the multi-hash implementation.
This commit makes four changes: (1) On the individual revision nodes in a schema, the revision date is now stored under `date` instead of `value`. (2) Schemas now have a `last_revision` property, indicating the date of the most recent revision. (3) This revision now gets serialized into compiled configurations. (4) When loading compiled configurations, we check that the compiled file's revision date corresponds to the what we are expecting. Fixes snabbco#1208.
The file in question is too small for the minimum ethernet frame size; with the CRC it becomes 58 bytes, which is smaller than the minimum frame size of 64, so it gets padded as it goes out on the wire, which later gets rejected on the receiver as its lengths don't make sense. In any case it doesn't test what it means to test, so remove it.
Remove bogus lwaftr benchmarking file
Detect version mismatch when loading compiled YANG configurations
Re-enable NUMA memory binding on newer kernels
Fix PCI affinity check for --preferred NUMA binding
This patch extends the NUMA module to be able to run some self-checks when it is used to reserve a CPU for a data plane, for example checking the CPU frequency scaling governor or the set of isolated CPUs.
Add more system performance diagnostics
This patch will print a warning if a network function tries to bind to a CPU, but irqbalance is detected. Irqbalance, installed by default on Debian-derived systems, will modify CPU affinities for IRQ handlers in an effort to spread out the IRQ-processing load among CPUs. However this is not what we want in Snabb; we do not want data-plane CPUs to run IRQ handlers, and we do not want bug reports coming from users that have this daemon installed. See https://github.com/snabbco/snabb/blob/master/src/doc/performance-tuning.md#avoid-interrupts-on-data-plane-cpus, for more details.
Detect irqbalance presence and suggest remedy
Improve snabb lwaftr run --help
This reverts commit 3ed5659.
- do not assert the revision date unless schema has revisions - do not try to load as source any compiled configs (with magic number header) that are rejected (instead bail with an error)
This fixes a bug in which data_printer_from_grammar would not print choice case members when an order is given to body_printer. XXX: it is not clear to me why some invocations of body_printer take orderings, since it seems that the pre-ordering always matches the internal ordering logic of body_printer. \o/
This fixes a bug where packets would not be transmitted unless the tx queue was full.
This fixes a bug where packets would not be transmitted unless the tx queue was full.
This fixes a bug in which data_printer_from_grammar would not print choice case members when an order is given to body_printer. XXX: it is not clear to me why some invocations of body_printer take orderings, since it seems that the pre-ordering always matches the internal ordering logic of body_printer. \o/
Used to be that configurations read from the command line or stdin bypassed the consistency checker.
This updates the consistency checkers to expand choices and visit the bodies of all cases.
This removes the order parameter in the affected functions altogether. Test suite passes so I am assuming this was dead code from the past.
eugeneia
added a commit
that referenced
this pull request
Dec 13, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Includes: