From c68c0e881ecafece318c6a6fa091e03f715a0845 Mon Sep 17 00:00:00 2001 From: Jack May Date: Mon, 14 Mar 2022 15:00:00 -0700 Subject: [PATCH] consolidate use-jit flag (#23652) --- program-runtime/src/invoke_context.rs | 1 - programs/bpf_loader/src/lib.rs | 16 +++++++--------- runtime/src/bank.rs | 1 - 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/program-runtime/src/invoke_context.rs b/program-runtime/src/invoke_context.rs index cdfc09b54d..2dee0b89f1 100644 --- a/program-runtime/src/invoke_context.rs +++ b/program-runtime/src/invoke_context.rs @@ -67,7 +67,6 @@ pub trait Executor: Debug + Send + Sync { first_instruction_account: usize, instruction_data: &[u8], invoke_context: &'a mut InvokeContext<'b>, - use_jit: bool, ) -> Result<(), InstructionError>; } diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index 7b3bd371a2..b1d52b6065 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -187,7 +187,10 @@ pub fn create_executor( } } create_executor_metrics.submit_datapoint(); - Ok(Arc::new(BpfExecutor { executable })) + Ok(Arc::new(BpfExecutor { + executable, + use_jit, + })) } fn write_program_data<'a>( @@ -384,12 +387,7 @@ fn process_instruction_common( get_or_create_executor_time.as_us() ); - executor.execute( - program_account_index, - instruction_data, - invoke_context, - use_jit, - ) + executor.execute(program_account_index, instruction_data, invoke_context) } else { drop(program); debug_assert_eq!(first_instruction_account, 1); @@ -1291,6 +1289,7 @@ impl InstructionMeter for ThisInstructionMeter { /// BPF Loader's Executor implementation pub struct BpfExecutor { executable: Pin>>, + use_jit: bool, } // Well, implement Debug for solana_rbpf::vm::Executable in solana-rbpf... @@ -1306,7 +1305,6 @@ impl Executor for BpfExecutor { _first_instruction_account: usize, _instruction_data: &[u8], invoke_context: &'a mut InvokeContext<'b>, - use_jit: bool, ) -> Result<(), InstructionError> { let log_collector = invoke_context.get_log_collector(); let compute_meter = invoke_context.get_compute_meter(); @@ -1340,7 +1338,7 @@ impl Executor for BpfExecutor { stable_log::program_invoke(&log_collector, &program_id, stack_height); let mut instruction_meter = ThisInstructionMeter::new(compute_meter.clone()); let before = compute_meter.borrow().get_remaining(); - let result = if use_jit { + let result = if self.use_jit { vm.execute_program_jit(&mut instruction_meter) } else { vm.execute_program_interpreted(&mut instruction_meter) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index a3eb3812ba..1caff19028 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -13736,7 +13736,6 @@ pub(crate) mod tests { _first_instruction_account: usize, _instruction_data: &[u8], _invoke_context: &'a mut InvokeContext<'b>, - _use_jit: bool, ) -> std::result::Result<(), InstructionError> { Ok(()) }