-
Notifications
You must be signed in to change notification settings - Fork 127
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
ci(nss): handle system-, cached-, and to-be-build-NSS #2142
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2142 +/- ##
=======================================
Coverage 95.35% 95.35%
=======================================
Files 112 112
Lines 36336 36336
=======================================
Hits 34648 34648
Misses 1688 1688 ☔ View full report in Codecov by Sentry. |
Is this fixing a bug? When a prebuilt NSS is downloaded from the GitHub cache, |
Failed Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
All resultsSucceeded Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
Unsupported Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
|
Benchmark resultsPerformance differences relative to 55e3a93. coalesce_acked_from_zero 1+1 entries: 💚 Performance has improved.time: [99.642 ns 99.941 ns 100.25 ns] change: [-12.012% -11.570% -11.105%] (p = 0.00 < 0.05) coalesce_acked_from_zero 3+1 entries: 💚 Performance has improved.time: [117.92 ns 118.33 ns 118.76 ns] change: [-32.923% -32.618% -32.290%] (p = 0.00 < 0.05) coalesce_acked_from_zero 10+1 entries: 💚 Performance has improved.time: [117.20 ns 117.50 ns 117.90 ns] change: [-39.393% -35.094% -32.494%] (p = 0.00 < 0.05) coalesce_acked_from_zero 1000+1 entries: 💚 Performance has improved.time: [98.432 ns 98.576 ns 98.730 ns] change: [-31.383% -30.817% -30.182%] (p = 0.00 < 0.05) RxStreamOrderer::inbound_frame(): Change within noise threshold.time: [111.68 ms 111.74 ms 111.81 ms] change: [+0.2440% +0.3205% +0.3914%] (p = 0.00 < 0.05) transfer/pacing-false/varying-seeds: No change in performance detected.time: [25.917 ms 27.053 ms 28.191 ms] change: [-10.525% -5.3449% -0.1115%] (p = 0.06 > 0.05) transfer/pacing-true/varying-seeds: No change in performance detected.time: [34.464 ms 36.182 ms 37.918 ms] change: [-10.971% -5.5414% +0.4415%] (p = 0.09 > 0.05) transfer/pacing-false/same-seed: Change within noise threshold.time: [25.233 ms 26.036 ms 26.851 ms] change: [-8.5883% -4.8002% -0.6522%] (p = 0.03 < 0.05) transfer/pacing-true/same-seed: No change in performance detected.time: [39.706 ms 41.674 ms 43.710 ms] change: [-10.861% -4.7015% +1.6731%] (p = 0.15 > 0.05) 1-conn/1-100mb-resp (aka. Download)/client: Change within noise threshold.time: [113.70 ms 114.36 ms 115.11 ms] thrpt: [868.74 MiB/s 874.40 MiB/s 879.49 MiB/s] change: time: [-1.9679% -1.3456% -0.7499%] (p = 0.00 < 0.05) thrpt: [+0.7556% +1.3639% +2.0074%] 1-conn/10_000-parallel-1b-resp (aka. RPS)/client: No change in performance detected.time: [312.84 ms 316.84 ms 320.83 ms] thrpt: [31.169 Kelem/s 31.562 Kelem/s 31.966 Kelem/s] change: time: [-2.7633% -1.0983% +0.6630%] (p = 0.21 > 0.05) thrpt: [-0.6586% +1.1105% +2.8418%] 1-conn/1-1b-resp (aka. HPS)/client: 💔 Performance has regressed.time: [34.193 ms 34.400 ms 34.628 ms] thrpt: [28.879 elem/s 29.070 elem/s 29.245 elem/s] change: time: [+1.1200% +1.9545% +2.8118%] (p = 0.00 < 0.05) thrpt: [-2.7349% -1.9170% -1.1076%] Client/server transfer resultsTransfer of 33554432 bytes over loopback.
|
Ufff, a 35% performance improvement on an unrelated change 🤔 |
Yes, this fixes #2141.
When Lines 428 to 434 in 55e3a93
Thus I don't think the environment variables need to be set when using the NSS installation from brew on MacOS. @larseggert am I missing something? |
You are right that if But if we need to use an NSS that was build from source, we need to set the environment variables, so that neqo can link against the NSS that was build by (or cache-restored by) the GitHub action. With your change, is it still using the prebuilt-from-source NSS, or is it building it again as part of neqo? |
I think I understand now. Thanks @larseggert. I missed that neqo/.github/actions/nss/action.yml Lines 124 to 125 in a484f64
Let me take another look. |
@@ -86,21 +86,21 @@ runs: | |||
fi | |||
|
|||
- name: Checkout NSS | |||
if: env.BUILD_NSS == '1' | |||
if: env.USE_SYSTEM == '0' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
USE_SYSTEM_NSS !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Uff, good catch. Thank you @martinthomson! Will be fixed in #2145.
When the system NSS version is sufficient:
neqo/.github/actions/nss/action.yml
Line 31 in 55e3a93
Then one must not set the environment variables pointing to a local copy:
neqo/.github/actions/nss/action.yml
Lines 177 to 190 in 55e3a93
Fixes #2141.