Repository navigation
fix(rust): scope PGO and BOLT builds to the shipped binary - #527
Merged
Merged
Conversation
Every cargo-pgo step now passes --bin for each binary packaging ships: the PGO instrument and optimise builds, and both BOLT builds. The no-split BOLT retry carries the same scope. Without a target filter, cargo builds every bin whose required features are on. Under --all-features that includes a feature-gated pgo-driver bin in the app package. It has no profile, so the profile-use compile logged about 2,200 "no profile data available" warnings per arch on dfe-transform-vector, and BOLT optimised a binary nothing ships. --bin filters targets only. Package selection and feature resolution are unchanged, so -p would not have helped: the driver is a bin in the same package. The build stage hands over every packaged binary, so a multi-binary app still gets all of them built in each step. The workload still profiles the first one. The plain-build fallback, used when cargo-pgo cannot be installed, is unchanged. The local smoke recipe in docs/runtime/pgo-bolt.md now passes --bin too. Closes #526
Contributor
|
Released in v2.12.16 -- https://github.com/hyperi-io/hyperi-ci/releases/tag/v2.12.16 |
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.
Closes #526.
Every cargo-pgo step now passes
--bin <name>for each binary packaging ships: the PGO instrument and optimise builds, both BOLT builds, and the no-split BOLT retry.Under
--all-featurescargo also built the app's feature-gatedpgo-driverbin, which has no profile. So the profile-use compile logged ~2,230 "no profile data available" lines per arch on dfe-transform-vector and 500 on dfe-loader, and BOLT optimised a binary nothing ships.--binfilters targets only, so features and package selection are unchanged.-pwould not have helped: the driver is a bin in the same package.--tocargo build(src/build.rs:122, 231).target/release/pgo-driver, so they never used the instrumented copy undertarget/<triple>/. Checked in receiver, loader, archiver, fetcher, vector, vrl and elastic.Evidence:
hyperi-ci checkclean, with 5454 unit tests passing. 7 new tests assert the forwarded args per step, and 6 of them fail with the scoping removed.Not proven yet: a real release-tier run showing zero "no profile data" lines. That needs one
optimize-tier=releasedispatch on a GA app after merge.