* Report timing info for stakes cache updates from txs (#20856)
(cherry picked from commit 735016661b
)
# Conflicts:
# runtime/src/bank.rs
* resolve conflicts
Co-authored-by: Justin Starry <justin@solana.com>
This commit is contained in:
@ -63,6 +63,11 @@ impl ReplaySlotStats {
|
||||
("load_us", self.execute_timings.load_us, i64),
|
||||
("execute_us", self.execute_timings.execute_us, i64),
|
||||
("store_us", self.execute_timings.store_us, i64),
|
||||
(
|
||||
"update_stakes_cache_us",
|
||||
self.execute_timings.update_stakes_cache_us,
|
||||
i64
|
||||
),
|
||||
(
|
||||
"total_batches_len",
|
||||
self.execute_timings.total_batches_len,
|
||||
|
@ -172,6 +172,7 @@ pub struct ExecuteTimings {
|
||||
pub load_us: u64,
|
||||
pub execute_us: u64,
|
||||
pub store_us: u64,
|
||||
pub update_stakes_cache_us: u64,
|
||||
pub total_batches_len: usize,
|
||||
pub num_execute_batches: u64,
|
||||
pub details: ExecuteDetailsTimings,
|
||||
@ -183,6 +184,7 @@ impl ExecuteTimings {
|
||||
self.load_us += other.load_us;
|
||||
self.execute_us += other.execute_us;
|
||||
self.store_us += other.store_us;
|
||||
self.update_stakes_cache_us += other.update_stakes_cache_us;
|
||||
self.total_batches_len += other.total_batches_len;
|
||||
self.num_execute_batches += other.num_execute_batches;
|
||||
self.details.accumulate(&other.details);
|
||||
@ -3978,8 +3980,10 @@ impl Bank {
|
||||
);
|
||||
let rent_debits = self.collect_rent(executed, loaded_txs);
|
||||
|
||||
let mut update_stakes_cache_time = Measure::start("update_stakes_cache_time");
|
||||
let overwritten_vote_accounts =
|
||||
self.update_cached_accounts(hashed_txs.as_transactions_iter(), executed, loaded_txs);
|
||||
self.update_stakes_cache(hashed_txs.as_transactions_iter(), executed, loaded_txs);
|
||||
update_stakes_cache_time.stop();
|
||||
|
||||
// once committed there is no way to unroll
|
||||
write_time.stop();
|
||||
@ -3989,6 +3993,7 @@ impl Bank {
|
||||
hashed_txs.len()
|
||||
);
|
||||
timings.store_us += write_time.as_us();
|
||||
timings.update_stakes_cache_us += update_stakes_cache_time.as_us();
|
||||
self.update_transaction_statuses(hashed_txs, executed);
|
||||
let fee_collection_results =
|
||||
self.filter_program_errors_and_collect_fee(hashed_txs.as_transactions_iter(), executed);
|
||||
@ -5380,8 +5385,8 @@ impl Bank {
|
||||
self.epoch_schedule.get_leader_schedule_epoch(slot)
|
||||
}
|
||||
|
||||
/// a bank-level cache of vote accounts
|
||||
fn update_cached_accounts<'a>(
|
||||
/// a bank-level cache of vote accounts and stake delegation info
|
||||
fn update_stakes_cache<'a>(
|
||||
&self,
|
||||
txs: impl Iterator<Item = &'a Transaction>,
|
||||
res: &[TransactionExecutionResult],
|
||||
|
Reference in New Issue
Block a user