-
Notifications
You must be signed in to change notification settings - Fork 217
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
Disable LTO and update changelog #6777
base: main
Are you sure you want to change the base?
Conversation
Any preview of the perf impact of this? |
@achamayou could you please elaborate for posterity? |
@maxtropets (admittedly limited) experience shows that mixing LTO CCF static libraries with non-LTO rego-cpp static libraries in scitt-ccf-ledger leads to link-time errors. This is apparently not completely unheard of: https://stackoverflow.com/questions/57118064/using-lto-causes-undefined-reference-to-stdbasic-string-destructor I'll run some manual tests before this merges/gets to Bencher, and this is hopefully something we can revisit later, perhaps when we exclusively use a more modern toolchain on Azure Linux. For reference, this is where LTO was turned on: #5857 Before: After: Cherry-picked to show the most dramatic effect, impact varies on other benchmarks. |
On pi_basic (the most basic handler possible), ~16% throughput hit. |
On pi_basic_js_virtual:
On pi_ls_jwt
This is interesting, because the JS benchmark is very close, and the logging jwt benchmark is surprisingly much faster with LTO disabled (it obviously uses quite a different code path, with frequent RSA crypto). |
Follow up to #6775