reports bpf execution units without tx-wide-compute-cap feature
This commit is contained in:
@ -1258,6 +1258,9 @@ impl MessageProcessor {
|
|||||||
account_db,
|
account_db,
|
||||||
ancestors,
|
ancestors,
|
||||||
);
|
);
|
||||||
|
let pre_remaining_units = invoke_context.get_compute_meter().borrow().get_remaining();
|
||||||
|
let mut time = Measure::start("execute_instruction");
|
||||||
|
|
||||||
self.process_instruction(program_id, &instruction.data, &mut invoke_context)?;
|
self.process_instruction(program_id, &instruction.data, &mut invoke_context)?;
|
||||||
Self::verify(
|
Self::verify(
|
||||||
message,
|
message,
|
||||||
@ -1272,6 +1275,14 @@ impl MessageProcessor {
|
|||||||
invoke_context.is_feature_active(&demote_program_write_locks::id()),
|
invoke_context.is_feature_active(&demote_program_write_locks::id()),
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
time.stop();
|
||||||
|
let post_remaining_units = invoke_context.get_compute_meter().borrow().get_remaining();
|
||||||
|
|
||||||
|
let program_timing = timings.per_program_timings.entry(*program_id).or_default();
|
||||||
|
program_timing.accumulated_us += time.as_us();
|
||||||
|
program_timing.accumulated_units += pre_remaining_units - post_remaining_units;
|
||||||
|
program_timing.count += 1;
|
||||||
|
|
||||||
timings.accumulate(&invoke_context.timings);
|
timings.accumulate(&invoke_context.timings);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
@ -1299,8 +1310,6 @@ impl MessageProcessor {
|
|||||||
ancestors: &Ancestors,
|
ancestors: &Ancestors,
|
||||||
) -> Result<(), TransactionError> {
|
) -> Result<(), TransactionError> {
|
||||||
for (instruction_index, instruction) in message.instructions.iter().enumerate() {
|
for (instruction_index, instruction) in message.instructions.iter().enumerate() {
|
||||||
let mut time = Measure::start("execute_instruction");
|
|
||||||
let pre_remaining_units = compute_meter.borrow().get_remaining();
|
|
||||||
let instruction_recorder = instruction_recorders
|
let instruction_recorder = instruction_recorders
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|recorders| recorders[instruction_index].clone());
|
.map(|recorders| recorders[instruction_index].clone());
|
||||||
@ -1323,14 +1332,6 @@ impl MessageProcessor {
|
|||||||
ancestors,
|
ancestors,
|
||||||
)
|
)
|
||||||
.map_err(|err| TransactionError::InstructionError(instruction_index as u8, err));
|
.map_err(|err| TransactionError::InstructionError(instruction_index as u8, err));
|
||||||
time.stop();
|
|
||||||
let post_remaining_units = compute_meter.borrow().get_remaining();
|
|
||||||
|
|
||||||
let program_id = instruction.program_id(&message.account_keys);
|
|
||||||
let program_timing = timings.per_program_timings.entry(*program_id).or_default();
|
|
||||||
program_timing.accumulated_us += time.as_us();
|
|
||||||
program_timing.accumulated_units += pre_remaining_units - post_remaining_units;
|
|
||||||
program_timing.count += 1;
|
|
||||||
|
|
||||||
err?;
|
err?;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user