Skip to content

Sync changes from Agave master (Feb 23)#12

Open
mircea-c wants to merge 29 commits intoanza-xyz:masterfrom
mircea-c:sync-agave-feb20
Open

Sync changes from Agave master (Feb 23)#12
mircea-c wants to merge 29 commits intoanza-xyz:masterfrom
mircea-c:sync-agave-feb20

Conversation

@mircea-c
Copy link
Contributor

@mircea-c mircea-c commented Feb 20, 2026

Syncs 19 commits from Agave master that touched SVM-owned files, plus maintenance commits.

Cherry-picks

Agave commits cherry-picked into SVM-owned paths (ordered oldest to newest):

  • #10241 – #10694: 17 commits spanning svm/, program-runtime/, transaction-context/, programs/system/, programs/bpf_loader/, programs/loader-v4/, programs/compute-budget/
  • #10197: clippy — update programs/system/ and rustfmt.toml to Rust 2024 style
  • #10748: fix(svm) — remove redundant Box allocation in program loader

SVM maintenance

  • Bumps agave git dep pin to cc74332e59 (last cherry-picked commit)
  • Adds [patch] entries for solana-bpf-loader-program and solana-loader-v4-program so that solana-builtins (agave git dep) uses SVM's local copies. Required because #10529 added #[cfg(feature = "metrics")]-gated parameters to program-runtime's deploy API that agave's copies don't handle.
  • Adds #[allow(deprecated)] in the system program test mockup for Rent::lamports_per_byte_year, deprecated in solana-rent 3.1.0 and renamed to lamports_per_byte in v4.

Lichtso and others added 22 commits January 23, 2026 08:57
* Bumps solana-sbpf to v0.14.1

* Uses sbpf_version.stack_frame_gaps() flag for MemoryRegion::new_writable_gapped().

* Rekeys enable_sbpf_v3_deployment_and_execution.

* Shifts the tests guest address space up to avoid the difference in access_violation_err between EbpfError::StackAccessViolation and EbpfError::AccessViolation.
…(#10155)

sbpf-debugger: control the debug port through the invocation context.
* Create transaction.rs

* Update toml files

* Do not build everything for sbf

* Sort toml file
* Fix function

* Add unit test
* SIMD-0464: Vote Account Initialize V2

* do not disable legacy instruction
* refactor: remove reloading bool argument thread

Large majority of invocations of program loading have `reloading` set to
`false`. The only non-test use where reloading is used is in deployment,
where an inlined call to `reload` makes more sense anyhow.

Presence of this argument/option was making the code much more difficult
to grok for me, so I went ahead and removed the argument in most places.
It can be added back on a case-by-case basis as needed in the future,
though due to the soundness requirements, I believe calling `reload`
directly will always make more sense anyway.

* ledger-tool
… transaction context (#10524)

* Switch unsafe cell

* Use into_inter
These are detected by the `clippy::redundant_clone` lint which I hope to
deny by default in near future.

ref. anza-xyz/agave#10121
* svm: add metrics feature

* svm: mask out `execute_timings` when `metrics` is enabled
* sbpf-debugger: pass debug_metadata to sbpf

Take advantage of the recent merge at solana-sbpf
(anza-xyz/sbpf#80) where VM creators
could pass debug metadata that can later be visible to the debugger client.

* Remove index_in_trace from debug_metadata.

With (anza-xyz/agave#10557) the order of the
instruction trace would change. It's possible to bring it back with
a follow-up PR if necessary.
Split changes for reordering instruction trace
* transaction_processor: improve comments

* inline `load_program_from_bytes`

* reinline variable
Create configure_instruction_at_index
Revert "refactor: non-functional program-runtime changes for clarity (#10510)"

This reverts commit ad004b758407ff95b68c33a904862fc01d0c246a.
This reverts commit 5db07ad5ed356a69b7d00c4d7be2c148c2119937.

Type annotation added to address type inference failure with some
nightly versions of rustc.
…#10694)

* Renames serialize_parameters_unaligned => serialize_parameters_for_abiv0.

* Renames serialize_parameters_aligned => serialize_parameters_for_abiv1.

* Adds more comments.
* Fix and improve tests

* Split test

* Merge macros

* Fix lint
@mircea-c mircea-c self-assigned this Feb 20, 2026
sashass1315 and others added 2 commits February 23, 2026 14:21
…rams

Bumps the agave pin to the last cherry-picked commit. Adds patch entries
for solana-bpf-loader-program and solana-loader-v4-program to use SVM's
local copies, fixing a signature mismatch caused by the metrics feature
(#10529) adding #[cfg]-gated params that agave's copies don't handle.
@mircea-c mircea-c force-pushed the sync-agave-feb20 branch 3 times, most recently from 5557a1e to e2f09f5 Compare February 23, 2026 15:44
mircea-c and others added 2 commits February 23, 2026 10:55
solana-rent 3.1.0 deprecated lamports_per_byte_year (renamed to
lamports_per_byte in v4), exemption_threshold, and burn_percent.
Suppress warnings in test-only code until the workspace bumps to
solana-rent 4.x.
@mircea-c mircea-c requested review from a team and buffalojoec February 23, 2026 16:13
Copy link
Contributor

@buffalojoec buffalojoec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mind adding more SVM commits through anza-xyz/agave#10679?

@mircea-c mircea-c changed the title Sync changes from Agave master (Feb 20) Sync changes from Agave master (Feb 23) Feb 23, 2026
@mircea-c
Copy link
Contributor Author

@buffalojoec I added all the commits that were merged until today: anza-xyz/agave#10197 and anza-xyz/agave#10748.

As for anza-xyz/agave#10679, programs/vote is from an agave dep. The rev pin is now at cc74332e59 which is downstream of that commit so the changes are included.

@mircea-c mircea-c requested a review from buffalojoec February 23, 2026 19:45
Copy link
Contributor

@buffalojoec buffalojoec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we might be missing anza-xyz/agave#10398 from the history.

It's older than this range, but I just happened to spot it in my review.

@mircea-c
Copy link
Contributor Author

Done. Added anza-xyz/agave#10398

@mircea-c mircea-c requested a review from buffalojoec February 25, 2026 14:35
@buffalojoec
Copy link
Contributor

Done. Added anza-xyz/agave#10398

Do we care about the ordering?

@mircea-c mircea-c force-pushed the sync-agave-feb20 branch 2 times, most recently from 1def558 to 346606b Compare February 25, 2026 17:50
@mircea-c
Copy link
Contributor Author

Do we care about the ordering?

Well, I clearly didn't think about it 😆

I rewrote the commits to be in the right order.

Copy link
Contributor

@buffalojoec buffalojoec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @mircea-c but this is a lot to review and I'm not 100% sure the best way to ensure we haven't a) missed any commits from Agave or b) included all changes from each commit that touched all files in SVM. Plus, the PR is interleaved with CI and other patch-fixes, making this a pretty big beast.

Can we break this up?

@nagisa
Copy link

nagisa commented Mar 4, 2026

I don't think human review is the right way to go about this in the first place.

Could we figure out what's the command to verify that the tree here and tree in agave are the same? Perhaps doesn't really matter if the history is fully preserved, although git filter-tree would be able to provide the relevant history on the agave side at least. Then the review would be largely a "run this command and you'll see that both contents and history are the way we expect them to be."

@buffalojoec
Copy link
Contributor

I don't think human review is the right way to go about this in the first place.

Could we figure out what's the command to verify that the tree here and tree in agave are the same? Perhaps doesn't really matter if the history is fully preserved, although git filter-tree would be able to provide the relevant history on the agave side at least. Then the review would be largely a "run this command and you'll see that both contents and history are the way we expect them to be."

100% agree. I'll see if I can put a script together that can do this and I'll open a PR.

@mircea-c mircea-c force-pushed the sync-agave-feb20 branch 2 times, most recently from 2598e5c to fb2fdd4 Compare March 6, 2026 02:38
@buffalojoec
Copy link
Contributor

I put together some tooling to programmatically keep Agave in sync with SVM, as well as proposed a new workflow.
#14

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants