Repository navigation
[release-1.0] Cherry-pick #3456: microvm: skip software bounce buffer (SWIOTLB) by default - #3515
Merged
Benjamin Elder (BenTheElder) merged 1 commit intoOct 31, 2026
Conversation
…trate#3456) Pass [`swiotlb=noforce`](https://docs.kernel.org/admin-guide/kernel-parameters.html) on the microVM guest kernel command line to skip the 64 MiB software bounce buffer ([`SWIOTLB`](https://docs.kernel.org/core-api/swiotlb.html)) reserved at boot on `> 3 GiB` VMs (see agent-substrate#3444). ### Benchmark The change itself is tiny, but it gives us solid improvements! Having 64 MiB less uncompressed data in `memory-ranges` shrinks snapshots and cuts lifecycle latencies. To confirm this, here is a comparison against `main` on a `4 GiB` [SWE-bench workload](https://github.com/agent-substrate/substrate/blob/main/docs/guides/benchmarking.md#sweperf-benchmark): - **Setup**: GKE 1.35, `c3-highmem-192-metal` (bare metal), `hyperdisk-balanced` 200 GB - **Workload**: [`sweperf-astropy-7336`](https://github.com/agent-substrate/substrate/blob/main/benchmarking/workloads/manifests/sweperf/generated/sweperf-astropy-7336-template.yaml.tmpl) (`2 vCPU / 4 GiB` RAM), cold start + 4 cycles of `Resume → Execute → Suspend` (median of 4 cycles): | Metric | `main` | With `swiotlb=noforce` | Delta | | :--- | :---: | :---: | :---: | | **Golden `memory-ranges` populated size** | `223 MiB` | **`158 MiB`** | **`-64 MiB` (`-29%`)** | | **Golden cold boot (`RunWorkload`)** | `491 ms` | **`416 ms`** | **`-75 ms` (`-15%`)** | | **Suspend (`async`, on node) — `Resume` / `Suspend`** | `360 ms` / `383 ms` | **`314 ms` / `352 ms`** | **`-46 ms` / `-31 ms`** | | **Suspend (`sync`, to GCS) — `Resume` / `Suspend`** | `365 ms` / `1843 ms` | **`341 ms` / `1652 ms`** | **`-24 ms` / `-191 ms`** | Fixes agent-substrate#3444 AI use: AI-assisted for the benchmark. - [x] Tests pass Signed-off-by: Jiayi Bao <[email protected]> (cherry picked from commit 6db0d3a) Signed-off-by: Jiayi Bao <[email protected]>
Benjamin Elder (BenTheElder)
approved these changes
Oct 31, 2026
Collaborator
|
since this is a cherry-pick of a PR that already had the 2 freeze approvers, I'm merging it once tests pass. |
Benjamin Elder (BenTheElder)
merged commit Oct 31, 2026
6e1640f
into
agent-substrate:release-1.0
7 checks passed
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.
Cherry-pick of #3456 onto
release-1.0(git cherry-pick -xof the squash commit), it applied cleanly with no changes.Pass
swiotlb=noforceon the microVM guest kernel command line to skip the 64 MiB software bounce buffer (SWIOTLB) reserved at boot on> 3 GiBVMs. Fixes #3444 for 1.0.AI use: AI-assisted. Clean pick.