-
Notifications
You must be signed in to change notification settings - Fork 299
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
Max's async Snabb changes + public packet_t #997
Conversation
@kbara Very interesting benchmarks results for this branch on next-tributary. Mixed but broadly positive. I have defined a new next-tributary-murren jobset to benchmark more configurations on generic hardware too. Can be that the effect of increasing the Let me just dig a bit to make sure the performance impact is an overall net positive. I'd love to understand what causes the differences. Plug: Snabb Studio prototype demo that may become a game changer here :). |
Wow, it looks like tooling is getting really exciting. :-) |
Gee it is fun browsing the benchmark datasets that Hydra produces automagically :). Here is a full matrix benchmark report that includes kbara-next. This is testing many different configurations (NFV features for iperf, Virtio-net features for l2fwd) on generic hardware (Hetzner "murren" servers w/o hardware NIC). Observations:
So overall this looks great. The failures with iperf when packet filtering is enabled would in principle be a blocker but I know this is because a specific fix (commit 2a98aa5) has not landed in kbara-next yet:
So I am confident that merging this code into Couple more things I want to look at before pressing merge:
Note: In a perfect world my |
Given that the changes get merged onto next, it sounds like the easy solution to that problem is to simply make sure that kbara-next (and presuambly max-next) frequently merge next into themselves? |
@lukego I think |
Might actually make sense to revert the change I referred to above and see how that affects |
@eugeneia Thanks for that explanation. I think it is okay for |
Merged, thanks! And sorry about the wait. I am actually not sold on putting
Here is a quick experiment suggesting to me that
So I wonder if there is really a problematic case that will be solved with |
Good analysis. My mistake thinking |
I can do that over on |
btw it is very good that you have your eyes peeled for "ctype diversity" problems :). This is relatively easy to fix once you know what to look for but boy did @alexandergall do a lot of work to discover this from first principles over in #612. Finding such issues in submitted PRs seems like a really valuable bit of review. |
Oops, should've verified that it actually caused a ctype diversity problem. I'm happy to merge a reversion. |
Grabbing revert of the packet_t type since we decided to go with 'struct packet' directly instead. See discussion at #997 (comment)
@kbara Interesting thought. This seems like it would work well from my perspective. I suppose we would have to try it to understand all the implications. I would be happy to pull from next-tributary branches that have merged from next. (Separately I still think it makes sense for new features and fixes to be based on master rather than next when possible, but that is the matter of creating new changes rather then merging and integrating them.) |
Sounds reasonable. I figure it has handy side effects, like Hydra performance evaluations being based on the combination of patches we'll actually merge; usually it won't matter, sometimes it will. |
Rename ExprAlarm to CallbackAlarm
From #950 (async changes, in accordance with Luke's vision in #656) and #996 (making packet_t public, in accordance with documentation and to decrease redundant ctype pollution).