- 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>
* Add BenchTpsClient trait (#24208)
* Add BenchTpsClient
* Impl BenchTpsClient for used clients
* Use BenchTpsClient in do_bench
* Update integration test to use faucet via rpc
* Support keypairs from file that are not prefunded
* Remove old perf-utils
(cherry picked from commit 3871c85fd7)
# Conflicts:
# bench-tps/Cargo.toml
* Fix conflicts
Co-authored-by: Tyera Eulberg <tyera@solana.com>
- 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)
test_skip_repair in retransmit-stage is no longer relevant because
following: https://github.com/solana-labs/solana/pull/19233
repair packets are filtered out earlier in window-service and so
retransmit stage does not know if a shred is repaired or not.
Also, following turbine peer shuffle changes:
https://github.com/solana-labs/solana/pull/24080
the test has become flaky since it does not take into account how peers
are shuffled for each shred.
(cherry picked from commit 2282571493)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
Since call-sites are calling unwrap anyways, panicking seems too punitive
for our use cases.
(cherry picked from commit 7cb3b6cbe2)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
Current slot stats are removed when the slot is full or every 30 seconds
if the slot is before root:
https://github.com/solana-labs/solana/blob/493a8e234/ledger/src/blockstore.rs#L2017-L2027
In order to track if the slot is ultimately marked as dead or rooted and
emit more metrics, this commit expands lifetime of SlotStats while
bounding total size of cache using an LRU eviction policy.
(cherry picked from commit 1f9c89c1e8)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
Now that nodes correctly populate position field in coding shreds, and
first_coding_index in erasure meta, the old code to maintain backward
compatibility can be removed.
The commit is working towards changing erasure coding schema to 32:64.
(cherry picked from commit cda3d66b21)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
* 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>