Increment execution timings on errors as well (#22053)
This commit is contained in:
parent
f67ecd5c18
commit
37f6777ceb
|
@ -995,7 +995,7 @@ impl Executor for BpfExecutor {
|
||||||
serialize_time.stop();
|
serialize_time.stop();
|
||||||
let mut create_vm_time = Measure::start("create_vm");
|
let mut create_vm_time = Measure::start("create_vm");
|
||||||
let mut execute_time;
|
let mut execute_time;
|
||||||
{
|
let execution_result = {
|
||||||
let mut vm = match create_vm(
|
let mut vm = match create_vm(
|
||||||
&self.executable,
|
&self.executable,
|
||||||
parameter_bytes.as_slice_mut(),
|
parameter_bytes.as_slice_mut(),
|
||||||
|
@ -1040,12 +1040,10 @@ impl Executor for BpfExecutor {
|
||||||
stable_log::program_return(&log_collector, &program_id, return_data);
|
stable_log::program_return(&log_collector, &program_id, return_data);
|
||||||
}
|
}
|
||||||
match result {
|
match result {
|
||||||
Ok(status) => {
|
Ok(status) if status != SUCCESS => {
|
||||||
if status != SUCCESS {
|
|
||||||
let error: InstructionError = status.into();
|
let error: InstructionError = status.into();
|
||||||
stable_log::program_failure(&log_collector, &program_id, &error);
|
stable_log::program_failure(&log_collector, &program_id, &error);
|
||||||
return Err(error);
|
Err(error)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
let error = match error {
|
let error = match error {
|
||||||
|
@ -1058,12 +1056,15 @@ impl Executor for BpfExecutor {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
stable_log::program_failure(&log_collector, &program_id, &error);
|
stable_log::program_failure(&log_collector, &program_id, &error);
|
||||||
return Err(error);
|
Err(error)
|
||||||
}
|
}
|
||||||
|
_ => Ok(()),
|
||||||
}
|
}
|
||||||
|
};
|
||||||
execute_time.stop();
|
execute_time.stop();
|
||||||
}
|
|
||||||
let mut deserialize_time = Measure::start("deserialize");
|
let mut deserialize_time = Measure::start("deserialize");
|
||||||
|
let execute_or_deserialize_result = execution_result.and_then(|_| {
|
||||||
let keyed_accounts = invoke_context.get_keyed_accounts()?;
|
let keyed_accounts = invoke_context.get_keyed_accounts()?;
|
||||||
deserialize_parameters(
|
deserialize_parameters(
|
||||||
&loader_id,
|
&loader_id,
|
||||||
|
@ -1073,8 +1074,11 @@ impl Executor for BpfExecutor {
|
||||||
invoke_context
|
invoke_context
|
||||||
.feature_set
|
.feature_set
|
||||||
.is_active(&do_support_realloc::id()),
|
.is_active(&do_support_realloc::id()),
|
||||||
)?;
|
)
|
||||||
|
});
|
||||||
deserialize_time.stop();
|
deserialize_time.stop();
|
||||||
|
|
||||||
|
// Update the timings
|
||||||
let timings = &mut invoke_context.timings;
|
let timings = &mut invoke_context.timings;
|
||||||
timings.serialize_us = timings.serialize_us.saturating_add(serialize_time.as_us());
|
timings.serialize_us = timings.serialize_us.saturating_add(serialize_time.as_us());
|
||||||
timings.create_vm_us = timings.create_vm_us.saturating_add(create_vm_time.as_us());
|
timings.create_vm_us = timings.create_vm_us.saturating_add(create_vm_time.as_us());
|
||||||
|
@ -1082,8 +1086,11 @@ impl Executor for BpfExecutor {
|
||||||
timings.deserialize_us = timings
|
timings.deserialize_us = timings
|
||||||
.deserialize_us
|
.deserialize_us
|
||||||
.saturating_add(deserialize_time.as_us());
|
.saturating_add(deserialize_time.as_us());
|
||||||
|
|
||||||
|
if execute_or_deserialize_result.is_ok() {
|
||||||
stable_log::program_success(&log_collector, &program_id);
|
stable_log::program_success(&log_collector, &program_id);
|
||||||
Ok(())
|
}
|
||||||
|
execute_or_deserialize_result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue