Fix XDP cpu eval filter#445
Closed
Axonis wants to merge 2 commits into
Closed
Conversation
Recipes where only one host runs the workload under test (e.g. XDP on the receiver) need a way to exclude the other host from CPU baseline evaluation. The generator side only pushes traffic and its aggregate CPU is not a meaningful regression signal. Defaults to all matched hosts so existing recipes are unaffected.
The generator host only pushes traffic toward the receiver where XDP processes it. Including the generator in CPU baseline evaluation contaminates the rolling baseline with unrelated load patterns and causes false positive CPU detections. Restrict CPU evaluation to host2 (the receiver) where the actual XDP workload runs and where IRQs are pinned to a single CPU.
Collaborator
|
this could theoretically be a useful feature... so not discarding it YET. however, the initial analysis of xdp related issues is incorrect, and IMO there is no reason to evaluate only the so for now let's work a bit more on the analysis side of things, and until it is proven that this is needed i'm blocking this. |
Collaborator
Author
|
Built on wrong assumptions, closing. |
This file contains hidden or 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
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.
Description
XDP recipes (drop, tx) evaluate aggregate CPU utilization on both test hosts. The generator host only pushes traffic toward the receiver - it does not run the XDP program. Because the generator spreads packet transmission across multiple cores while the receiver pins IRQs to a single CPU, their aggregate CPU profiles are very different.
When machines rotate between generator and receiver roles across pipeline runs, the rolling baseline for a given host absorbs values from both roles. This makes the baseline unstable and causes false positive CPU eval detections that have nothing to do with actual XDP performance.
Changes
cpu_perf_evaluation_hostsproperty toBaseEnrtRecipethat controls which hosts are included in CPU baseline evaluation. Defaults to all matched hosts, so existing recipes are unaffected.XDPDropRecipeandXDPTxRecipeto only evaluate CPU on host2 (the receiver), where the XDP workload actually runs.CPU data is still collected and saved on both hosts - only the evaluation step is scoped to the receiver.
Tests
TODO - run XDP
Reviews
@olichtne @enhaut @jtluka
Closes: #