Set CurrentCodeHash before running some dispatchable benchmarks (#4645)

* Set CurrentCodeHash before running some dispatchable benchmarks

* Use insert instead of put

* Actually hash the ValidationCode

* cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_paras.rs

Co-authored-by: Parity Bot <admin@parity.io>
This commit is contained in:
Keith Yeung
2022-01-02 18:05:37 -08:00
committed by GitHub
parent 575775a19f
commit 5047ef8eff
2 changed files with 18 additions and 11 deletions
@@ -81,6 +81,7 @@ benchmarks! {
let c in 1 .. MAX_CODE_SIZE; let c in 1 .. MAX_CODE_SIZE;
let new_code = ValidationCode(vec![0; c as usize]); let new_code = ValidationCode(vec![0; c as usize]);
let para_id = ParaId::from(c as u32); let para_id = ParaId::from(c as u32);
<Pallet<T> as Store>::CurrentCodeHash::insert(&para_id, new_code.hash());
generate_disordered_pruning::<T>(); generate_disordered_pruning::<T>();
}: _(RawOrigin::Root, para_id, new_code) }: _(RawOrigin::Root, para_id, new_code)
verify { verify {
@@ -108,6 +109,8 @@ benchmarks! {
let s in 1 .. MAX_HEAD_DATA_SIZE; let s in 1 .. MAX_HEAD_DATA_SIZE;
let para_id = ParaId::from(1000); let para_id = ParaId::from(1000);
let new_head = HeadData(vec![0; s as usize]); let new_head = HeadData(vec![0; s as usize]);
let old_code_hash = ValidationCode(vec![0]).hash();
<Pallet<T> as Store>::CurrentCodeHash::insert(&para_id, old_code_hash);
// schedule an expired code upgrade for this `para_id` so that force_note_new_head would use // schedule an expired code upgrade for this `para_id` so that force_note_new_head would use
// the worst possible code path // the worst possible code path
let expired = frame_system::Pallet::<T>::block_number().saturating_sub(One::one()); let expired = frame_system::Pallet::<T>::block_number().saturating_sub(One::one());
@@ -16,7 +16,7 @@
//! Autogenerated weights for `runtime_parachains::paras` //! Autogenerated weights for `runtime_parachains::paras`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2021-12-29, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2021-12-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 128 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 128
// Executed Command: // Executed Command:
@@ -45,17 +45,20 @@ pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> runtime_parachains::paras::WeightInfo for WeightInfo<T> { impl<T: frame_system::Config> runtime_parachains::paras::WeightInfo for WeightInfo<T> {
// Storage: Paras CurrentCodeHash (r:1 w:1) // Storage: Paras CurrentCodeHash (r:1 w:1)
// Storage: Paras CodeByHashRefs (r:1 w:1) // Storage: Paras CodeByHashRefs (r:1 w:1)
// Storage: Paras PastCodeMeta (r:1 w:1)
// Storage: Paras PastCodePruning (r:1 w:1)
// Storage: Paras PastCodeHash (r:0 w:1)
// Storage: Paras CodeByHash (r:0 w:1) // Storage: Paras CodeByHash (r:0 w:1)
fn force_set_current_code(c: u32, ) -> Weight { fn force_set_current_code(c: u32, ) -> Weight {
(0 as Weight) (0 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((3_000 as Weight).saturating_mul(c as Weight)) .saturating_add((2_000 as Weight).saturating_mul(c as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight)) .saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(3 as Weight)) .saturating_add(T::DbWeight::get().writes(6 as Weight))
} }
// Storage: Paras Heads (r:0 w:1) // Storage: Paras Heads (r:0 w:1)
fn force_set_current_head(s: u32, ) -> Weight { fn force_set_current_head(s: u32, ) -> Weight {
(12_596_000 as Weight) (13_711_000 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(s as Weight)) .saturating_add((1_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight))
@@ -73,23 +76,24 @@ impl<T: frame_system::Config> runtime_parachains::paras::WeightInfo for WeightIn
fn force_schedule_code_upgrade(c: u32, ) -> Weight { fn force_schedule_code_upgrade(c: u32, ) -> Weight {
(0 as Weight) (0 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((3_000 as Weight).saturating_mul(c as Weight)) .saturating_add((2_000 as Weight).saturating_mul(c as Weight))
.saturating_add(T::DbWeight::get().reads(8 as Weight)) .saturating_add(T::DbWeight::get().reads(8 as Weight))
.saturating_add(T::DbWeight::get().writes(8 as Weight)) .saturating_add(T::DbWeight::get().writes(8 as Weight))
} }
// Storage: Paras FutureCodeUpgrades (r:1 w:0) // Storage: Paras FutureCodeUpgrades (r:1 w:0)
// Storage: Paras Heads (r:0 w:1) // Storage: Paras Heads (r:0 w:1)
// Storage: Paras UpgradeGoAheadSignal (r:0 w:1)
fn force_note_new_head(s: u32, ) -> Weight { fn force_note_new_head(s: u32, ) -> Weight {
(19_699_000 as Weight) (18_543_000 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(s as Weight)) .saturating_add((1_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight)) .saturating_add(T::DbWeight::get().writes(2 as Weight))
} }
// Storage: ParasShared CurrentSessionIndex (r:1 w:0) // Storage: ParasShared CurrentSessionIndex (r:1 w:0)
// Storage: Paras ActionsQueue (r:1 w:1) // Storage: Paras ActionsQueue (r:1 w:1)
fn force_queue_action() -> Weight { fn force_queue_action() -> Weight {
(23_566_000 as Weight) (22_153_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight)) .saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight))
} }
@@ -98,14 +102,14 @@ impl<T: frame_system::Config> runtime_parachains::paras::WeightInfo for WeightIn
fn add_trusted_validation_code(c: u32, ) -> Weight { fn add_trusted_validation_code(c: u32, ) -> Weight {
(0 as Weight) (0 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((3_000 as Weight).saturating_mul(c as Weight)) .saturating_add((2_000 as Weight).saturating_mul(c as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight)) .saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight))
} }
// Storage: Paras CodeByHashRefs (r:1 w:0) // Storage: Paras CodeByHashRefs (r:1 w:0)
// Storage: Paras CodeByHash (r:0 w:1) // Storage: Paras CodeByHash (r:0 w:1)
fn poke_unused_validation_code() -> Weight { fn poke_unused_validation_code() -> Weight {
(4_736_000 as Weight) (4_207_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight))
} }