-
Notifications
You must be signed in to change notification settings - Fork 2.2k
chore: migrate from bincode to bitcode #5617
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
Open
kalyazin
wants to merge
2
commits into
firecracker-microvm:main
Choose a base branch
from
kalyazin:bitcode
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5617 +/- ##
==========================================
- Coverage 83.23% 83.14% -0.10%
==========================================
Files 277 277
Lines 29316 29377 +61
==========================================
+ Hits 24402 24425 +23
- Misses 4914 4952 +38
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
P4X-ng
approved these changes
Jan 10, 2026
2a93c51 to
022b3a5
Compare
Reason: the bincode crate is no longer maintained [1]. Notable changes made during the migration: - Since, unlike bincode, bitcode does not support with_fixed_int_encoding mode, the snapshot CRC field is now written as plain bytes to guarantee that its length is not going to change due to potential future changes in the serialisation logic. - Added a new argument to the seccompiler-bin to produce per-thread filter files to facilitate testing. Previously, the test_validate_filter was parsing the bincode-encoded filters itself. With individual per-thread filter files this is no longer required. [1] https://rustsec.org/advisories/RUSTSEC-2025-0141 Signed-off-by: Nikita Kalyazin <kalyazin@amazon.com>
When migrating from bincode to bitcode, booted VMs sometimes exceed the 5 MiB RSS overhead threshold mainly on large VMs (32 vCPUs). The threshold for restored VMs is still maintained. Introduce separate thresholds for booted and restored VMs and increase the former to 6 MiB. It is acceptable because resource usage of restored VMs is more important as they are mainly used at scale, while booted VMs are used for creating snapshots at a lower scale. Signed-off-by: Nikita Kalyazin <kalyazin@amazon.com>
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.
Changes
Notable changes made during the migration:
1 https://rustsec.org/advisories/RUSTSEC-2025-0141
Reason
The bincode crate is no longer maintained 1.
License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following Developer
Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md.PR Checklist
tools/devtool checkbuild --allto verify that the PR passesbuild checks on all supported architectures.
tools/devtool checkstyleto verify that the PR passes theautomated style checks.
how they are solving the problem in a clear and encompassing way.
in the PR.
CHANGELOG.md.Runbook for Firecracker API changes.
integration tests.
TODO.rust-vmm.