From 95a279f3106d1f32501bdca37b53aabcc997b288 Mon Sep 17 00:00:00 2001 From: Dmitri Makarov Date: Mon, 14 Mar 2022 18:41:03 -0700 Subject: [PATCH] Double the chunk size for sending the program binary data in tx (cherry picked from commit 03ed334ebbf31f343d5be595b922ae97dc7c211f) # Conflicts: # programs/bpf/tests/programs.rs --- programs/bpf/tests/programs.rs | 21 ++++++++++++++------- runtime/src/loader_utils.rs | 6 ++++-- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/programs/bpf/tests/programs.rs b/programs/bpf/tests/programs.rs index f92f18b1d9..f2b37abd43 100644 --- a/programs/bpf/tests/programs.rs +++ b/programs/bpf/tests/programs.rs @@ -113,7 +113,7 @@ fn write_bpf_program( program_keypair: &Keypair, elf: &[u8], ) { - let chunk_size = 256; // Size of chunk just needs to fit into tx + let chunk_size = 512; // Size of chunk just needs to fit into tx let mut offset = 0; for chunk in elf.chunks(chunk_size) { let instruction = @@ -1433,20 +1433,27 @@ fn assert_instruction_count() { { programs.extend_from_slice(&[ ("solana_bpf_rust_128bit", 584), - ("solana_bpf_rust_alloc", 4559), - ("solana_bpf_rust_custom_heap", 458), + ("solana_bpf_rust_alloc", 4459), + ("solana_bpf_rust_custom_heap", 469), ("solana_bpf_rust_dep_crate", 2), - ("solana_bpf_rust_external_spend", 327), + ("solana_bpf_rust_external_spend", 338), ("solana_bpf_rust_iter", 108), ("solana_bpf_rust_many_args", 1289), - ("solana_bpf_rust_mem", 2217), - ("solana_bpf_rust_membuiltins", 1705), - ("solana_bpf_rust_noop", 315), + ("solana_bpf_rust_mem", 2118), + ("solana_bpf_rust_membuiltins", 1539), + ("solana_bpf_rust_noop", 326), ("solana_bpf_rust_param_passing", 146), +<<<<<<< HEAD ("solana_bpf_rust_rand", 418), ("solana_bpf_rust_sanity", 9128), ("solana_bpf_rust_secp256k1_recover", 25707), ("solana_bpf_rust_sha", 27033), +======= + ("solana_bpf_rust_rand", 429), + ("solana_bpf_rust_sanity", 9139), + ("solana_bpf_rust_secp256k1_recover", 25707), + ("solana_bpf_rust_sha", 26390), +>>>>>>> 03ed334eb (Double the chunk size for sending the program binary data in tx) ]); } diff --git a/runtime/src/loader_utils.rs b/runtime/src/loader_utils.rs index 6c5196300c..fda5ebe2fa 100644 --- a/runtime/src/loader_utils.rs +++ b/runtime/src/loader_utils.rs @@ -12,6 +12,8 @@ use { }, }; +const CHUNK_SIZE: usize = 512; // Size of chunk just needs to fit into tx + pub fn load_program( bank_client: &T, from_keypair: &Keypair, @@ -39,7 +41,7 @@ pub fn load_program( ) .unwrap(); - let chunk_size = 256; // Size of chunk just needs to fit into tx + let chunk_size = CHUNK_SIZE; let mut offset = 0; for chunk in program.chunks(chunk_size) { let instruction = @@ -91,7 +93,7 @@ pub fn load_buffer_account( ) .unwrap(); - let chunk_size = 256; // Size of chunk just needs to fit into tx + let chunk_size = CHUNK_SIZE; let mut offset = 0; for chunk in program.chunks(chunk_size) { let message = Message::new(