Enforce host aligned memory for program regions (backport #16590) (#16683)

* Enforce host aligned memory for program regions (#16590)

(cherry picked from commit 08d5253651)

# Conflicts:
#	cli/Cargo.toml
#	programs/bpf/Cargo.toml
#	programs/bpf/benches/bpf_loader.rs
#	programs/bpf/tests/programs.rs
#	programs/bpf_loader/Cargo.toml
#	programs/bpf_loader/src/lib.rs

* fix conflicts

Co-authored-by: Jack May <jack@solana.com>
This commit is contained in:
mergify[bot]
2021-04-21 01:47:00 +00:00
committed by GitHub
parent a5794efe16
commit bbd8bd2e74
12 changed files with 399 additions and 127 deletions

View File

@@ -3527,9 +3527,9 @@ dependencies = [
[[package]]
name = "solana_rbpf"
version = "0.2.7"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14e36c51d5aa290416c5dea3c43ac467cb57c0b643184af23e6bdab7434710fb"
checksum = "7fcec120278017a67e2dd98494dfdd8e565f53f1d05ab558d1656c369c5dd95e"
dependencies = [
"byteorder 1.3.4",
"combine",

View File

@@ -29,7 +29,7 @@ solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.6.7" }
solana-cli-output = { path = "../../cli-output", version = "=1.6.7" }
solana-logger = { path = "../../logger", version = "=1.6.7" }
solana-measure = { path = "../../measure", version = "=1.6.7" }
solana_rbpf = "=0.2.7"
solana_rbpf = "=0.2.8"
solana-runtime = { path = "../../runtime", version = "=1.6.7" }
solana-sdk = { path = "../../sdk", version = "=1.6.7" }
solana-transaction-status = { path = "../../transaction-status", version = "=1.6.7" }

View File

@@ -75,9 +75,12 @@ fn bench_program_create_executable(bencher: &mut Bencher) {
let elf = load_elf("bench_alu").unwrap();
bencher.iter(|| {
let _ =
Executable::<BpfError, ThisInstructionMeter>::from_elf(&elf, None, Config::default())
.unwrap();
let _ = <dyn Executable<BpfError, ThisInstructionMeter>>::from_elf(
&elf,
None,
Config::default(),
)
.unwrap();
});
}
@@ -95,7 +98,7 @@ fn bench_program_alu(bencher: &mut Bencher) {
let elf = load_elf("bench_alu").unwrap();
let mut executable =
Executable::<BpfError, ThisInstructionMeter>::from_elf(&elf, None, Config::default())
<dyn Executable<BpfError, ThisInstructionMeter>>::from_elf(&elf, None, Config::default())
.unwrap();
executable.set_syscall_registry(register_syscalls(&mut invoke_context).unwrap());
executable.jit_compile().unwrap();
@@ -222,7 +225,7 @@ fn bench_instruction_count_tuner(_bencher: &mut Bencher) {
let elf = load_elf("tuner").unwrap();
let mut executable =
Executable::<BpfError, ThisInstructionMeter>::from_elf(&elf, None, Config::default())
<dyn Executable<BpfError, ThisInstructionMeter>>::from_elf(&elf, None, Config::default())
.unwrap();
executable.set_syscall_registry(register_syscalls(&mut invoke_context).unwrap());
let compute_meter = invoke_context.get_compute_meter();
@@ -230,7 +233,7 @@ fn bench_instruction_count_tuner(_bencher: &mut Bencher) {
let mut vm = create_vm(
&loader_id,
executable.as_ref(),
&mut serialized,
serialized.as_slice_mut(),
&[],
&mut invoke_context,
)

View File

@@ -219,7 +219,7 @@ fn run_program(
let mut vm = create_vm(
&loader_id,
executable.as_ref(),
&mut parameter_bytes,
parameter_bytes.as_slice_mut(),
parameter_accounts,
&mut invoke_context,
)
@@ -233,7 +233,7 @@ fn run_program(
deserialize_parameters(
&bpf_loader::id(),
parameter_accounts,
&parameter_bytes,
parameter_bytes.as_slice(),
true,
)
.unwrap();