chore: Split QNS workflows#3279
Conversation
Into one generating a Docker image for the interop runner, and one running on PRs. The old file had both, and they had zero overlap.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3279 +/- ##
==========================================
- Coverage 93.73% 93.66% -0.07%
==========================================
Files 125 125
Lines 37134 37134
Branches 37134 37134
==========================================
- Hits 34807 34782 -25
- Misses 1470 1497 +27
+ Partials 857 855 -2
|
CodSpeed Performance ReportMerging #3279 will degrade performances by 7.01%Comparing Summary
Benchmarks breakdown
Footnotes |
There was a problem hiding this comment.
Pull request overview
This PR refactors the QNS (QUIC Network Simulator) workflow by splitting it into two separate workflow files: one for building and pushing Docker images to the registry (scheduled and manual), and another for running interop tests on pull requests. The original qns.yml file contained both workflows with conditional logic, but they had no overlap in functionality.
Key changes:
- Removed PR-triggered logic and all PR-specific jobs from
qns.yml, keeping only the scheduled Docker image build - Created new
qns-pr.ymlworkflow containing all PR-specific jobs (docker-image, implementations, run-qns, report) - Updated concurrency groups and removed unnecessary conditions to reflect the split responsibilities
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
.github/workflows/qns.yml |
Simplified to only build and push Docker images on schedule/manual trigger; removed all PR-related jobs and conditions |
.github/workflows/qns-pr.yml |
New workflow file containing all PR-specific QNS testing logic moved from the original file |
Client/server transfer resultsPerformance differences relative to b3338f9. Transfer of 33554432 bytes over loopback, min. 100 runs. All unit-less numbers are in milliseconds.
Table above only shows statistically significant changes. See all results below. All resultsTransfer of 33554432 bytes over loopback, min. 100 runs. All unit-less numbers are in milliseconds.
Download data for |
Benchmark resultsNo significant performance differences relative to b3338f9. All results1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: Change within noise threshold. time: [205.23 ms 205.65 ms 206.23 ms]
thrpt: [484.91 MiB/s 486.27 MiB/s 487.26 MiB/s]
change:
time: [-0.5597% -0.2989% +0.0232] (p = 0.04 < 0.05)
thrpt: [-0.0232% +0.2998% +0.5628]
Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low mild
1 (1.00%) high mild
1 (1.00%) high severe1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected. time: [281.89 ms 283.59 ms 285.30 ms]
thrpt: [35.051 Kelem/s 35.262 Kelem/s 35.475 Kelem/s]
change:
time: [-1.2291% -0.3615% +0.5379] (p = 0.43 > 0.05)
thrpt: [-0.5350% +0.3628% +1.2444]
No change in performance detected.1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected. time: [38.754 ms 38.903 ms 39.069 ms]
thrpt: [25.596 B/s 25.705 B/s 25.804 B/s]
change:
time: [-0.7999% -0.1474% +0.5139] (p = 0.65 > 0.05)
thrpt: [-0.5113% +0.1476% +0.8063]
No change in performance detected.
Found 8 outliers among 100 measurements (8.00%)
1 (1.00%) high mild
7 (7.00%) high severe1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: No change in performance detected. time: [210.25 ms 210.60 ms 210.99 ms]
thrpt: [473.96 MiB/s 474.83 MiB/s 475.63 MiB/s]
change:
time: [-0.1911% +0.0803% +0.3424] (p = 0.56 > 0.05)
thrpt: [-0.3413% -0.0802% +0.1915]
No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severedecode 4096 bytes, mask ff: No change in performance detected. time: [4.5121 µs 4.5191 µs 4.5264 µs]
change: [-0.6970% -0.3054% +0.0437] (p = 0.10 > 0.05)
No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severedecode 1048576 bytes, mask ff: No change in performance detected. time: [1.1621 ms 1.1650 ms 1.1692 ms]
change: [-0.7046% +0.1779% +1.1423] (p = 0.71 > 0.05)
No change in performance detected.
Found 12 outliers among 100 measurements (12.00%)
1 (1.00%) high mild
11 (11.00%) high severedecode 4096 bytes, mask 7f: No change in performance detected. time: [5.7957 µs 5.8046 µs 5.8135 µs]
change: [-0.3960% -0.0618% +0.2456] (p = 0.73 > 0.05)
No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
2 (2.00%) high mild
1 (1.00%) high severedecode 1048576 bytes, mask 7f: No change in performance detected. time: [1.4758 ms 1.4810 ms 1.4886 ms]
change: [-0.8617% -0.4348% +0.1264] (p = 0.07 > 0.05)
No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severedecode 4096 bytes, mask 3f: No change in performance detected. time: [5.5389 µs 5.5492 µs 5.5602 µs]
change: [-0.6790% -0.2441% +0.0952] (p = 0.25 > 0.05)
No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severedecode 1048576 bytes, mask 3f: No change in performance detected. time: [1.4157 ms 1.4182 ms 1.4208 ms]
change: [-0.1975% +0.0480% +0.2753] (p = 0.70 > 0.05)
No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild1-streams/each-1000-bytes/wallclock-time: No change in performance detected. time: [584.61 µs 587.76 µs 591.18 µs]
change: [-0.8562% -0.1770% +0.4905] (p = 0.62 > 0.05)
No change in performance detected.
Found 19 outliers among 100 measurements (19.00%)
19 (19.00%) high severe1-streams/each-1000-bytes/simulated-time: No change in performance detected. time: [118.72 ms 118.97 ms 119.23 ms]
thrpt: [8.1906 KiB/s 8.2082 KiB/s 8.2257 KiB/s]
change:
time: [-0.2820% +0.0062% +0.3109] (p = 0.96 > 0.05)
thrpt: [-0.3099% -0.0062% +0.2828]
No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
4 (4.00%) high mild1000-streams/each-1-bytes/wallclock-time: Change within noise threshold. time: [12.255 ms 12.296 ms 12.338 ms]
change: [-1.3308% -0.8785% -0.4377] (p = 0.00 < 0.05)
Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild1000-streams/each-1-bytes/simulated-time: No change in performance detected. time: [2.3315 s 2.3352 s 2.3389 s]
thrpt: [427.54 B/s 428.23 B/s 428.91 B/s]
change:
time: [-0.0883% +0.1154% +0.3377] (p = 0.30 > 0.05)
thrpt: [-0.3366% -0.1153% +0.0884]
No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mild1000-streams/each-1000-bytes/wallclock-time: Change within noise threshold. time: [49.926 ms 50.026 ms 50.129 ms]
change: [-1.1159% -0.8114% -0.5138] (p = 0.00 < 0.05)
Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild1000-streams/each-1000-bytes/simulated-time: No change in performance detected. time: [16.106 s 16.344 s 16.577 s]
thrpt: [58.911 KiB/s 59.751 KiB/s 60.634 KiB/s]
change:
time: [-2.9959% -0.8567% +1.3823] (p = 0.45 > 0.05)
thrpt: [-1.3634% +0.8641% +3.0884]
No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) low mildcoalesce_acked_from_zero 1+1 entries: No change in performance detected. time: [89.495 ns 89.834 ns 90.169 ns]
change: [-0.8172% -0.2274% +0.2907] (p = 0.44 > 0.05)
No change in performance detected.
Found 13 outliers among 100 measurements (13.00%)
12 (12.00%) high mild
1 (1.00%) high severecoalesce_acked_from_zero 3+1 entries: No change in performance detected. time: [105.76 ns 106.10 ns 106.45 ns]
change: [-0.6572% -0.2186% +0.1698] (p = 0.31 > 0.05)
No change in performance detected.
Found 12 outliers among 100 measurements (12.00%)
1 (1.00%) low mild
1 (1.00%) high mild
10 (10.00%) high severecoalesce_acked_from_zero 10+1 entries: No change in performance detected. time: [105.56 ns 106.42 ns 107.61 ns]
change: [-0.1306% +0.9703% +2.2174] (p = 0.11 > 0.05)
No change in performance detected.
Found 17 outliers among 100 measurements (17.00%)
1 (1.00%) low severe
3 (3.00%) low mild
1 (1.00%) high mild
12 (12.00%) high severecoalesce_acked_from_zero 1000+1 entries: Change within noise threshold. time: [90.367 ns 90.512 ns 90.680 ns]
change: [-1.7063% -1.1433% -0.6114] (p = 0.00 < 0.05)
Change within noise threshold.
Found 12 outliers among 100 measurements (12.00%)
4 (4.00%) high mild
8 (8.00%) high severeRxStreamOrderer::inbound_frame(): No change in performance detected. time: [108.36 ms 108.48 ms 108.63 ms]
change: [-0.1989% -0.0039% +0.1663] (p = 0.97 > 0.05)
No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severesent::Packets::take_ranges: Change within noise threshold. time: [4.3856 µs 4.4994 µs 4.6161 µs]
change: [-7.8288% -4.1917% -0.4388] (p = 0.03 < 0.05)
Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mildtransfer/pacing-false/varying-seeds/wallclock-time/run: Change within noise threshold. time: [23.263 ms 23.277 ms 23.292 ms]
change: [+1.1936% +1.2930% +1.3853] (p = 0.00 < 0.05)
Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mildtransfer/pacing-false/varying-seeds/simulated-time/run: No change in performance detected. time: [23.941 s 23.941 s 23.941 s]
thrpt: [171.09 KiB/s 171.09 KiB/s 171.09 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000]
No change in performance detected.transfer/pacing-true/varying-seeds/wallclock-time/run: Change within noise threshold. time: [23.493 ms 23.517 ms 23.548 ms]
change: [+0.2922% +0.4248% +0.5654] (p = 0.00 < 0.05)
Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) high severetransfer/pacing-true/varying-seeds/simulated-time/run: No change in performance detected. time: [23.676 s 23.676 s 23.676 s]
thrpt: [173.01 KiB/s 173.01 KiB/s 173.01 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000]
No change in performance detected.transfer/pacing-false/same-seed/wallclock-time/run: Change within noise threshold. time: [23.168 ms 23.197 ms 23.240 ms]
change: [+0.3259% +0.4663% +0.6526] (p = 0.00 < 0.05)
Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
2 (2.00%) high mild
1 (1.00%) high severetransfer/pacing-false/same-seed/simulated-time/run: No change in performance detected. time: [23.941 s 23.941 s 23.941 s]
thrpt: [171.09 KiB/s 171.09 KiB/s 171.09 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000]
No change in performance detected.transfer/pacing-true/same-seed/wallclock-time/run: Change within noise threshold. time: [23.831 ms 23.855 ms 23.885 ms]
change: [-0.2775% -0.1537% -0.0198] (p = 0.02 < 0.05)
Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
2 (2.00%) high mild
1 (1.00%) high severetransfer/pacing-true/same-seed/simulated-time/run: No change in performance detected. time: [23.676 s 23.676 s 23.676 s]
thrpt: [173.01 KiB/s 173.01 KiB/s 173.01 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000]
No change in performance detected.Download data for |
Into one generating a Docker image for the interop runner, and one running on PRs. The old file had both, and they had zero overlap.