|
@@ -15,7 +15,7 @@ use {
|
|
|
pubkey::Pubkey,
|
|
pubkey::Pubkey,
|
|
|
transaction::{self, TransactionError},
|
|
transaction::{self, TransactionError},
|
|
|
},
|
|
},
|
|
|
- solana_timings::ExecuteDetailsTimings,
|
|
|
|
|
|
|
+ solana_timings::ExecuteTimings,
|
|
|
solana_type_overrides::sync::Arc,
|
|
solana_type_overrides::sync::Arc,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -124,6 +124,7 @@ pub fn load_program_with_pubkey<CB: TransactionProcessingCallback>(
|
|
|
environments: &ProgramRuntimeEnvironments,
|
|
environments: &ProgramRuntimeEnvironments,
|
|
|
pubkey: &Pubkey,
|
|
pubkey: &Pubkey,
|
|
|
slot: Slot,
|
|
slot: Slot,
|
|
|
|
|
+ execute_timings: &mut ExecuteTimings,
|
|
|
reload: bool,
|
|
reload: bool,
|
|
|
) -> Option<Arc<ProgramCacheEntry>> {
|
|
) -> Option<Arc<ProgramCacheEntry>> {
|
|
|
let mut load_program_metrics = LoadProgramMetrics {
|
|
let mut load_program_metrics = LoadProgramMetrics {
|
|
@@ -206,8 +207,7 @@ pub fn load_program_with_pubkey<CB: TransactionProcessingCallback>(
|
|
|
)
|
|
)
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- let mut timings = ExecuteDetailsTimings::default();
|
|
|
|
|
- load_program_metrics.submit_datapoint(&mut timings);
|
|
|
|
|
|
|
+ load_program_metrics.submit_datapoint(&mut execute_timings.details);
|
|
|
loaded_program.update_access_slot(slot);
|
|
loaded_program.update_access_slot(slot);
|
|
|
Some(Arc::new(loaded_program))
|
|
Some(Arc::new(loaded_program))
|
|
|
}
|
|
}
|
|
@@ -524,6 +524,7 @@ mod tests {
|
|
|
&batch_processor.get_environments_for_epoch(50).unwrap(),
|
|
&batch_processor.get_environments_for_epoch(50).unwrap(),
|
|
|
&key,
|
|
&key,
|
|
|
500,
|
|
500,
|
|
|
|
|
+ &mut ExecuteTimings::default(),
|
|
|
false,
|
|
false,
|
|
|
);
|
|
);
|
|
|
assert!(result.is_none());
|
|
assert!(result.is_none());
|
|
@@ -546,6 +547,7 @@ mod tests {
|
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
|
&key,
|
|
&key,
|
|
|
0, // Slot 0
|
|
0, // Slot 0
|
|
|
|
|
+ &mut ExecuteTimings::default(),
|
|
|
false,
|
|
false,
|
|
|
);
|
|
);
|
|
|
|
|
|
|
@@ -580,6 +582,7 @@ mod tests {
|
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
|
&key,
|
|
&key,
|
|
|
200,
|
|
200,
|
|
|
|
|
+ &mut ExecuteTimings::default(),
|
|
|
false,
|
|
false,
|
|
|
);
|
|
);
|
|
|
let loaded_program = ProgramCacheEntry::new_tombstone(
|
|
let loaded_program = ProgramCacheEntry::new_tombstone(
|
|
@@ -607,6 +610,7 @@ mod tests {
|
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
|
&key,
|
|
&key,
|
|
|
200,
|
|
200,
|
|
|
|
|
+ &mut ExecuteTimings::default(),
|
|
|
false,
|
|
false,
|
|
|
);
|
|
);
|
|
|
|
|
|
|
@@ -660,6 +664,7 @@ mod tests {
|
|
|
&batch_processor.get_environments_for_epoch(0).unwrap(),
|
|
&batch_processor.get_environments_for_epoch(0).unwrap(),
|
|
|
&key1,
|
|
&key1,
|
|
|
0,
|
|
0,
|
|
|
|
|
+ &mut ExecuteTimings::default(),
|
|
|
false,
|
|
false,
|
|
|
);
|
|
);
|
|
|
let loaded_program = ProgramCacheEntry::new_tombstone(
|
|
let loaded_program = ProgramCacheEntry::new_tombstone(
|
|
@@ -697,6 +702,7 @@ mod tests {
|
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
|
&key1,
|
|
&key1,
|
|
|
200,
|
|
200,
|
|
|
|
|
+ &mut ExecuteTimings::default(),
|
|
|
false,
|
|
false,
|
|
|
);
|
|
);
|
|
|
|
|
|
|
@@ -746,6 +752,7 @@ mod tests {
|
|
|
&batch_processor.get_environments_for_epoch(0).unwrap(),
|
|
&batch_processor.get_environments_for_epoch(0).unwrap(),
|
|
|
&key,
|
|
&key,
|
|
|
0,
|
|
0,
|
|
|
|
|
+ &mut ExecuteTimings::default(),
|
|
|
false,
|
|
false,
|
|
|
);
|
|
);
|
|
|
let loaded_program = ProgramCacheEntry::new_tombstone(
|
|
let loaded_program = ProgramCacheEntry::new_tombstone(
|
|
@@ -779,6 +786,7 @@ mod tests {
|
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
&batch_processor.get_environments_for_epoch(20).unwrap(),
|
|
|
&key,
|
|
&key,
|
|
|
200,
|
|
200,
|
|
|
|
|
+ &mut ExecuteTimings::default(),
|
|
|
false,
|
|
false,
|
|
|
);
|
|
);
|
|
|
|
|
|
|
@@ -829,6 +837,7 @@ mod tests {
|
|
|
.unwrap(),
|
|
.unwrap(),
|
|
|
&key,
|
|
&key,
|
|
|
200,
|
|
200,
|
|
|
|
|
+ &mut ExecuteTimings::default(),
|
|
|
false,
|
|
false,
|
|
|
)
|
|
)
|
|
|
.unwrap();
|
|
.unwrap();
|