move `ExecuteTimings` from `runtime::bank` to `program_runtime::timings`

This commit is contained in:
Trent Nelson 2022-01-04 01:23:56 -07:00 committed by Trent Nelson
parent 47b74e28ec
commit 7d32909e17
12 changed files with 52 additions and 45 deletions

1
Cargo.lock generated
View File

@ -5134,6 +5134,7 @@ dependencies = [
"solana-measure", "solana-measure",
"solana-metrics", "solana-metrics",
"solana-perf", "solana-perf",
"solana-program-runtime",
"solana-rayon-threadlimit", "solana-rayon-threadlimit",
"solana-runtime", "solana-runtime",
"solana-sdk", "solana-sdk",

View File

@ -43,6 +43,7 @@ solana-metrics = { path = "../metrics", version = "=1.10.0" }
solana-net-utils = { path = "../net-utils", version = "=1.10.0" } solana-net-utils = { path = "../net-utils", version = "=1.10.0" }
solana-perf = { path = "../perf", version = "=1.10.0" } solana-perf = { path = "../perf", version = "=1.10.0" }
solana-poh = { path = "../poh", version = "=1.10.0" } solana-poh = { path = "../poh", version = "=1.10.0" }
solana-program-runtime = { path = "../program-runtime", version = "=1.10.0" }
solana-rpc = { path = "../rpc", version = "=1.10.0" } solana-rpc = { path = "../rpc", version = "=1.10.0" }
solana-replica-lib = { path = "../replica-lib", version = "=1.10.0" } solana-replica-lib = { path = "../replica-lib", version = "=1.10.0" }
solana-runtime = { path = "../runtime", version = "=1.10.0" } solana-runtime = { path = "../runtime", version = "=1.10.0" }

View File

@ -18,12 +18,10 @@ use {
perf_libs, perf_libs,
}, },
solana_poh::poh_recorder::{BankStart, PohRecorder, PohRecorderError, TransactionRecorder}, solana_poh::poh_recorder::{BankStart, PohRecorder, PohRecorderError, TransactionRecorder},
solana_program_runtime::timings::ExecuteTimings,
solana_runtime::{ solana_runtime::{
accounts_db::ErrorCounters, accounts_db::ErrorCounters,
bank::{ bank::{Bank, TransactionBalancesSet, TransactionCheckResult, TransactionExecutionResult},
Bank, ExecuteTimings, TransactionBalancesSet, TransactionCheckResult,
TransactionExecutionResult,
},
bank_utils, bank_utils,
cost_model::CostModel, cost_model::CostModel,
transaction_batch::TransactionBatch, transaction_batch::TransactionBatch,

View File

@ -6,10 +6,8 @@
use { use {
solana_ledger::blockstore::Blockstore, solana_ledger::blockstore::Blockstore,
solana_measure::measure::Measure, solana_measure::measure::Measure,
solana_runtime::{ solana_program_runtime::timings::ExecuteTimings,
bank::{Bank, ExecuteTimings}, solana_runtime::{bank::Bank, cost_model::CostModel},
cost_model::CostModel,
},
solana_sdk::timing::timestamp, solana_sdk::timing::timestamp,
std::{ std::{
sync::{ sync::{

View File

@ -40,13 +40,14 @@ use {
solana_measure::measure::Measure, solana_measure::measure::Measure,
solana_metrics::inc_new_counter_info, solana_metrics::inc_new_counter_info,
solana_poh::poh_recorder::{PohRecorder, GRACE_TICKS_FACTOR, MAX_GRACE_SLOTS}, solana_poh::poh_recorder::{PohRecorder, GRACE_TICKS_FACTOR, MAX_GRACE_SLOTS},
solana_program_runtime::timings::ExecuteTimings,
solana_rpc::{ solana_rpc::{
optimistically_confirmed_bank_tracker::{BankNotification, BankNotificationSender}, optimistically_confirmed_bank_tracker::{BankNotification, BankNotificationSender},
rpc_subscriptions::RpcSubscriptions, rpc_subscriptions::RpcSubscriptions,
}, },
solana_runtime::{ solana_runtime::{
accounts_background_service::AbsRequestSender, accounts_background_service::AbsRequestSender,
bank::{Bank, ExecuteTimings, NewBankOptions}, bank::{Bank, NewBankOptions},
bank_forks::BankForks, bank_forks::BankForks,
commitment::BlockCommitmentCache, commitment::BlockCommitmentCache,
vote_sender_types::ReplayVoteSender, vote_sender_types::ReplayVoteSender,

View File

@ -38,6 +38,7 @@ solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.10.0" }
solana-transaction-status = { path = "../transaction-status", version = "=1.10.0" } solana-transaction-status = { path = "../transaction-status", version = "=1.10.0" }
solana-measure = { path = "../measure", version = "=1.10.0" } solana-measure = { path = "../measure", version = "=1.10.0" }
solana-metrics = { path = "../metrics", version = "=1.10.0" } solana-metrics = { path = "../metrics", version = "=1.10.0" }
solana-program-runtime = { path = "../program-runtime", version = "=1.10.0" }
solana-perf = { path = "../perf", version = "=1.10.0" } solana-perf = { path = "../perf", version = "=1.10.0" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.10.0" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.10.0" }
solana-runtime = { path = "../runtime", version = "=1.10.0" } solana-runtime = { path = "../runtime", version = "=1.10.0" }

View File

@ -14,13 +14,14 @@ use {
}, },
solana_measure::measure::Measure, solana_measure::measure::Measure,
solana_metrics::{datapoint_error, inc_new_counter_debug}, solana_metrics::{datapoint_error, inc_new_counter_debug},
solana_program_runtime::timings::ExecuteTimings,
solana_rayon_threadlimit::get_thread_count, solana_rayon_threadlimit::get_thread_count,
solana_runtime::{ solana_runtime::{
accounts_db::{AccountShrinkThreshold, AccountsDbConfig}, accounts_db::{AccountShrinkThreshold, AccountsDbConfig},
accounts_index::AccountSecondaryIndexes, accounts_index::AccountSecondaryIndexes,
accounts_update_notifier_interface::AccountsUpdateNotifier, accounts_update_notifier_interface::AccountsUpdateNotifier,
bank::{ bank::{
Bank, ExecuteTimings, RentDebits, TransactionBalancesSet, TransactionExecutionResult, Bank, RentDebits, TransactionBalancesSet, TransactionExecutionResult,
TransactionResults, TransactionResults,
}, },
bank_forks::BankForks, bank_forks::BankForks,

View File

@ -35,6 +35,39 @@ impl ProgramTiming {
} }
} }
#[derive(Default, Debug)]
pub struct ExecuteTimings {
pub check_us: u64,
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 collect_logs_us: u64,
pub details: ExecuteDetailsTimings,
}
impl ExecuteTimings {
pub fn accumulate(&mut self, other: &ExecuteTimings) {
self.check_us = self.check_us.saturating_add(other.check_us);
self.load_us = self.load_us.saturating_add(other.load_us);
self.execute_us = self.execute_us.saturating_add(other.execute_us);
self.store_us = self.store_us.saturating_add(other.store_us);
self.update_stakes_cache_us = self
.update_stakes_cache_us
.saturating_add(other.update_stakes_cache_us);
self.total_batches_len = self
.total_batches_len
.saturating_add(other.total_batches_len);
self.num_execute_batches = self
.num_execute_batches
.saturating_add(other.num_execute_batches);
self.collect_logs_us = self.collect_logs_us.saturating_add(other.collect_logs_us);
self.details.accumulate(&other.details);
}
}
#[derive(Default, Debug, PartialEq)] #[derive(Default, Debug, PartialEq)]
pub struct ExecuteDetailsTimings { pub struct ExecuteDetailsTimings {
pub serialize_us: u64, pub serialize_us: u64,

View File

@ -11,9 +11,11 @@ use {
log::*, log::*,
solana_banks_client::start_client, solana_banks_client::start_client,
solana_banks_server::banks_server::start_local_server, solana_banks_server::banks_server::start_local_server,
solana_program_runtime::{ic_msg, invoke_context::ProcessInstructionWithContext, stable_log}, solana_program_runtime::{
ic_msg, invoke_context::ProcessInstructionWithContext, stable_log, timings::ExecuteTimings,
},
solana_runtime::{ solana_runtime::{
bank::{Bank, ExecuteTimings}, bank::Bank,
bank_forks::BankForks, bank_forks::BankForks,
builtins::Builtin, builtins::Builtin,
commitment::BlockCommitmentCache, commitment::BlockCommitmentCache,

View File

@ -3375,6 +3375,7 @@ dependencies = [
"num-traits", "num-traits",
"rustc_version 0.4.0", "rustc_version 0.4.0",
"serde", "serde",
"solana-measure",
"solana-sdk", "solana-sdk",
"thiserror", "thiserror",
] ]

View File

@ -17,7 +17,7 @@ use solana_bpf_loader_program::{
use solana_bpf_rust_invoke::instructions::*; use solana_bpf_rust_invoke::instructions::*;
use solana_bpf_rust_realloc::instructions::*; use solana_bpf_rust_realloc::instructions::*;
use solana_bpf_rust_realloc_invoke::instructions::*; use solana_bpf_rust_realloc_invoke::instructions::*;
use solana_program_runtime::invoke_context::with_mock_invoke_context; use solana_program_runtime::{invoke_context::with_mock_invoke_context, timings::ExecuteTimings};
use solana_rbpf::{ use solana_rbpf::{
elf::Executable, elf::Executable,
static_analysis::Analysis, static_analysis::Analysis,
@ -25,7 +25,7 @@ use solana_rbpf::{
}; };
use solana_runtime::{ use solana_runtime::{
bank::{ bank::{
Bank, DurableNonceFee, ExecuteTimings, TransactionBalancesSet, TransactionExecutionDetails, Bank, DurableNonceFee, TransactionBalancesSet, TransactionExecutionDetails,
TransactionExecutionResult, TransactionResults, TransactionExecutionResult, TransactionResults,
}, },
bank_client::BankClient, bank_client::BankClient,

View File

@ -78,7 +78,7 @@ use {
BuiltinProgram, Executor, Executors, ProcessInstructionWithContext, TransactionExecutor, BuiltinProgram, Executor, Executors, ProcessInstructionWithContext, TransactionExecutor,
}, },
log_collector::LogCollector, log_collector::LogCollector,
timings::ExecuteDetailsTimings, timings::{ExecuteDetailsTimings, ExecuteTimings},
}, },
solana_sdk::{ solana_sdk::{
account::{ account::{
@ -209,36 +209,6 @@ impl RentDebits {
} }
} }
#[derive(Default, Debug)]
pub struct ExecuteTimings {
pub check_us: u64,
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,
}
impl ExecuteTimings {
pub fn accumulate(&mut self, other: &ExecuteTimings) {
self.check_us = self.check_us.saturating_add(other.check_us);
self.load_us = self.load_us.saturating_add(other.load_us);
self.execute_us = self.execute_us.saturating_add(other.execute_us);
self.store_us = self.store_us.saturating_add(other.store_us);
self.update_stakes_cache_us = self
.update_stakes_cache_us
.saturating_add(other.update_stakes_cache_us);
self.total_batches_len = self
.total_batches_len
.saturating_add(other.total_batches_len);
self.num_execute_batches = self
.num_execute_batches
.saturating_add(other.num_execute_batches);
self.details.accumulate(&other.details);
}
}
type BankStatusCache = StatusCache<Result<()>>; type BankStatusCache = StatusCache<Result<()>>;
#[frozen_abi(digest = "6XG6H1FChrDdY39K62KFWj5XfDao4dd24WZgcJkdMu1E")] #[frozen_abi(digest = "6XG6H1FChrDdY39K62KFWj5XfDao4dd24WZgcJkdMu1E")]
pub type BankSlotDelta = SlotDelta<Result<()>>; pub type BankSlotDelta = SlotDelta<Result<()>>;