From c597a6c828cd69455d09274fab3525e82010e085 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 22 Oct 2021 15:51:20 -0400 Subject: [PATCH] Report timing info for stakes cache updates from txs (backport #20856) (#20883) * Report timing info for stakes cache updates from txs (#20856) (cherry picked from commit 735016661ba0f63561fab0c3592ce4cde7030be2) # Conflicts: # runtime/src/bank.rs * resolve conflicts Co-authored-by: Justin Starry --- core/src/progress_map.rs | 5 +++++ runtime/src/bank.rs | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/core/src/progress_map.rs b/core/src/progress_map.rs index 36348ca534..a556f3abbc 100644 --- a/core/src/progress_map.rs +++ b/core/src/progress_map.rs @@ -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, diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index da28f6b1c4..b0c17eb0d6 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -167,6 +167,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, @@ -178,6 +179,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); @@ -3917,8 +3919,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(); @@ -3928,6 +3932,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); @@ -5301,8 +5306,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, res: &[TransactionExecutionResult],