- Tweak linker script
Ensure that all read only sections end up in one segment, and
everything else in other segments. Discard .eh_frame, .hash and
.gnu.hash since they are unused.
- Don't create invalid string slices in stdout/stderr on Solana
- Report exceeded stack size as a warning if dynamic frames are off
- Native support for signed division in SBF
Adds BPF_SDIV, which is enabled only for the SBF subtarget.
- Introduce dynamic stack frames and the SBFv2 flag
Dynamic stack frames are currently opt-in and enabled setting
cpu=sbfv2. When sbfv2 is used, ELF files are flagged with
e_flags=EF_SBF_V2 so the runtime can detect it and react
accordingly.
(cherry picked from commit 6b611e1c52)
Co-authored-by: Dmitri Makarov <dmakarov@alumni.stanford.edu>
- don't store pending tx signatures and costs in CostTracker
- apply tx costs to global state immediately again
- go from commit_or_cancel to update_or_remove, where the cost tracker
is either updated with the true costs for successful tx, or the costs
of a retryable tx is removed
- move the function into qos_service and hold the cost tracker lock for
the whole loop
(cherry picked from commit 924b8ea1eb)
# Conflicts:
# core/src/qos_service.rs
# runtime/src/cost_tracker.rs
- In-fly transactions are pended in cost_tracker until being committed
or cancelled;
(cherry picked from commit 9e07272af8)
# Conflicts:
# core/src/qos_service.rs
# runtime/src/cost_model.rs
# runtime/src/cost_tracker.rs
* add get_confirmed_blocks_with_data and get_protobuf_or_bincode_cells
(cherry picked from commit f3219fb695)
* appease clippy
(cherry picked from commit 5533e9393c)
* use &[T] instead of Vec<T> where appropriate
clippy
(cherry picked from commit fbcf6a0802)
* modify get_protobuf_or_bincode_cells to accept and return an iterator
(cherry picked from commit f717fda9a3)
* make get_protobuf_or_bincode_cells accept IntoIter on row_keys, make get_confirmed_blocks_with_data return an Iterator
(cherry picked from commit d8be0d9430)
Co-authored-by: Edgar Xi <edgarxi97@gmail.com>
* docs: update sysvar docs for load_instruction_at_checked
Update the instruction introspection docs to use the updated load_instruction_at_checked function instead of deprecated load_instruction_at
* Update to load_current_index_checked
(cherry picked from commit 64e2d9dc47)
Co-authored-by: Zayyan Faizal <zayyanf@gmail.com>
* Fix `process_set_validator_info`
Add space for keys in calculation for rent exempt in
`process_set_validator_info`.
The space required for allocating the `(ConfigKeys, ValidatorInfo)`
tuple only considered space for `ValidatorInfo`.
But `config_instruction::create_account` also requires space for `n`
keys.
* Remove one clone call from closure
(cherry picked from commit 7eaec26a1c)
Co-authored-by: Enrique Fynn <me@enriquefynn.com>
* Ensure blocks do not exceed the max accounts data size during Replay Stage (#23422)
(cherry picked from commit 3c6840050c)
# Conflicts:
# runtime/src/bank.rs
* fix conflicts
Co-authored-by: Brooks Prumo <brooks@solana.com>
* Revert "fix tests after merge"
This reverts commit ba2d83f580.
(cherry picked from commit 0a17edcc1f)
* Revert "1. Persist to blockstore less frequently;"
This reverts commit 7aa1fb4e24.
(cherry picked from commit c878c9e2cb)
# Conflicts:
# core/src/cost_update_service.rs
# core/src/tvu.rs
# runtime/src/cost_model.rs
* Revert "use EMA in place of Welford"
This reverts commit 6587dbfa47.
(cherry picked from commit 9acbfa5eb1)
* Revert "- estimate a program cost as 2 standard deviation above mean"
This reverts commit a25ac1c988.
(cherry picked from commit 5a0cd05866)
# Conflicts:
# core/src/cost_update_service.rs
# runtime/src/cost_model.rs
* fix merge conflicts
Co-authored-by: Carl Lin <carl@solana.com>
Co-authored-by: Tao Zhu <tao@solana.com>