Enable changing executor params through governance (#6934)

* Add a pallet call to change executor params

* Use `OptionQuery`; Avoid runtime panic

* Move pending executor params to `configuration`

* Move `ExecutorParams` to `HostConfiguration` structure

* Add executor params to the v5 migration

* Add an `ExecutorParams` benchmark

* ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::configuration

* Add to `WeightInfo`

* Add dummy weights to other networks

* ".git/.scripts/commands/bench/bench.sh" runtime kusama runtime_parachains::configuration

* ".git/.scripts/commands/bench/bench.sh" runtime rococo runtime_parachains::configuration

* ".git/.scripts/commands/bench/bench.sh" runtime westend runtime_parachains::configuration

* Use real weight

* Fix comment

---------

Co-authored-by: command-bot <>
This commit is contained in:
s0me0ne-unkn0wn
2023-04-14 13:21:12 +02:00
committed by GitHub
parent f0c507362d
commit 0211c4b2f7
11 changed files with 221 additions and 108 deletions
@@ -29,6 +29,7 @@ use sp_std::{ops::Deref, time::Duration, vec, vec::Vec};
/// The different executor parameters for changing the execution environment semantics. /// The different executor parameters for changing the execution environment semantics.
#[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, TypeInfo)] #[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, TypeInfo)]
#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))]
pub enum ExecutorParam { pub enum ExecutorParam {
/// Maximum number of memory pages (64KiB bytes per page) the executor can allocate. /// Maximum number of memory pages (64KiB bytes per page) the executor can allocate.
#[codec(index = 1)] #[codec(index = 1)]
@@ -93,6 +94,7 @@ impl sp_std::fmt::LowerHex for ExecutorParamsHash {
// new entries and removing old ones. At the moment, there's no mandatory parameters defined. If // new entries and removing old ones. At the moment, there's no mandatory parameters defined. If
// they show up, they must be clearly documented as mandatory ones. // they show up, they must be clearly documented as mandatory ones.
#[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, TypeInfo)] #[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, TypeInfo)]
#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))]
pub struct ExecutorParams(Vec<ExecutorParam>); pub struct ExecutorParams(Vec<ExecutorParam>);
impl ExecutorParams { impl ExecutorParams {
+2
View File
@@ -1708,6 +1708,7 @@ impl PvfCheckStatement {
/// Type discriminator for PVF preparation timeouts /// Type discriminator for PVF preparation timeouts
#[derive(Encode, Decode, TypeInfo, Clone, Copy, Debug, PartialEq, Eq)] #[derive(Encode, Decode, TypeInfo, Clone, Copy, Debug, PartialEq, Eq)]
#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))]
pub enum PvfPrepTimeoutKind { pub enum PvfPrepTimeoutKind {
/// For prechecking requests, the time period after which the preparation worker is considered /// For prechecking requests, the time period after which the preparation worker is considered
/// unresponsive and will be killed. /// unresponsive and will be killed.
@@ -1721,6 +1722,7 @@ pub enum PvfPrepTimeoutKind {
/// Type discriminator for PVF execution timeouts /// Type discriminator for PVF execution timeouts
#[derive(Encode, Decode, TypeInfo, Clone, Copy, Debug, PartialEq, Eq)] #[derive(Encode, Decode, TypeInfo, Clone, Copy, Debug, PartialEq, Eq)]
#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))]
pub enum PvfExecTimeoutKind { pub enum PvfExecTimeoutKind {
/// The amount of time to spend on execution during backing. /// The amount of time to spend on execution during backing.
Backing, Backing,
@@ -16,24 +16,26 @@
//! Autogenerated weights for `runtime_parachains::configuration` //! Autogenerated weights for `runtime_parachains::configuration`
//! //!
//! 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: 2023-03-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-04-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot // target/production/polkadot
// benchmark // benchmark
// pallet // pallet
// --chain=kusama-dev
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --pallet=runtime_parachains::configuration
// --extrinsic=* // --extrinsic=*
// --execution=wasm // --execution=wasm
// --wasm-execution=compiled // --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json
// --pallet=runtime_parachains::configuration
// --chain=kusama-dev
// --header=./file_header.txt // --header=./file_header.txt
// --output=./runtime/kusama/src/weights/runtime_parachains_configuration.rs // --output=./runtime/kusama/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -55,8 +57,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 8_970_000 picoseconds. // Minimum execution time: 9_394_000 picoseconds.
Weight::from_parts(9_143_000, 0) Weight::from_parts(9_686_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -71,8 +73,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 9_192_000 picoseconds. // Minimum execution time: 9_379_000 picoseconds.
Weight::from_parts(9_475_000, 0) Weight::from_parts(9_700_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -87,8 +89,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 9_259_000 picoseconds. // Minimum execution time: 9_612_000 picoseconds.
Weight::from_parts(9_499_000, 0) Weight::from_parts(16_194_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -103,8 +105,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 9_323_000 picoseconds. // Minimum execution time: 9_533_000 picoseconds.
Weight::from_parts(9_697_000, 0) Weight::from_parts(9_745_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -129,8 +131,24 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 9_270_000 picoseconds. // Minimum execution time: 9_463_000 picoseconds.
Weight::from_parts(9_527_000, 0) Weight::from_parts(9_852_000, 0)
.saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: Configuration PendingConfigs (r:1 w:1)
/// Proof Skipped: Configuration PendingConfigs (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: Configuration BypassConsistencyCheck (r:1 w:0)
/// Proof Skipped: Configuration BypassConsistencyCheck (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_executor_params() -> Weight {
// Proof Size summary in bytes:
// Measured: `90`
// Estimated: `4725`
// Minimum execution time: 10_405_000 picoseconds.
Weight::from_parts(10_693_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -24,8 +24,8 @@ use frame_system::pallet_prelude::*;
use parity_scale_codec::{Decode, Encode}; use parity_scale_codec::{Decode, Encode};
use polkadot_parachain::primitives::{MAX_HORIZONTAL_MESSAGE_NUM, MAX_UPWARD_MESSAGE_NUM}; use polkadot_parachain::primitives::{MAX_HORIZONTAL_MESSAGE_NUM, MAX_UPWARD_MESSAGE_NUM};
use primitives::{ use primitives::{
vstaging::AsyncBackingParams, Balance, SessionIndex, MAX_CODE_SIZE, MAX_HEAD_DATA_SIZE, vstaging::AsyncBackingParams, Balance, ExecutorParams, SessionIndex, MAX_CODE_SIZE,
MAX_POV_SIZE, MAX_HEAD_DATA_SIZE, MAX_POV_SIZE,
}; };
use sp_runtime::traits::Zero; use sp_runtime::traits::Zero;
use sp_std::prelude::*; use sp_std::prelude::*;
@@ -157,6 +157,8 @@ pub struct HostConfiguration<BlockNumber> {
/// ///
/// This parameter affects the upper bound of size of `CandidateCommitments`. /// This parameter affects the upper bound of size of `CandidateCommitments`.
pub hrmp_channel_max_message_size: u32, pub hrmp_channel_max_message_size: u32,
/// The executor environment parameters
pub executor_params: ExecutorParams,
/** /**
* Parameters that will unlikely be needed by parachains. * Parameters that will unlikely be needed by parachains.
@@ -296,6 +298,7 @@ impl<BlockNumber: Default + From<u32>> Default for HostConfiguration<BlockNumber
pvf_checking_enabled: false, pvf_checking_enabled: false,
pvf_voting_ttl: 2u32.into(), pvf_voting_ttl: 2u32.into(),
minimum_validation_upgrade_delay: 2.into(), minimum_validation_upgrade_delay: 2.into(),
executor_params: Default::default(),
} }
} }
} }
@@ -450,6 +453,7 @@ pub trait WeightInfo {
fn set_config_with_weight() -> Weight; fn set_config_with_weight() -> Weight;
fn set_config_with_balance() -> Weight; fn set_config_with_balance() -> Weight;
fn set_hrmp_open_request_ttl() -> Weight; fn set_hrmp_open_request_ttl() -> Weight;
fn set_config_with_executor_params() -> Weight;
} }
pub struct TestWeightInfo; pub struct TestWeightInfo;
@@ -472,6 +476,9 @@ impl WeightInfo for TestWeightInfo {
fn set_hrmp_open_request_ttl() -> Weight { fn set_hrmp_open_request_ttl() -> Weight {
Weight::MAX Weight::MAX
} }
fn set_config_with_executor_params() -> Weight {
Weight::MAX
}
} }
#[frame_support::pallet] #[frame_support::pallet]
@@ -1163,6 +1170,19 @@ pub mod pallet {
config.async_backing_params = new; config.async_backing_params = new;
}) })
} }
/// Set PVF executor parameters.
#[pallet::call_index(46)]
#[pallet::weight((
T::WeightInfo::set_config_with_executor_params(),
DispatchClass::Operational,
))]
pub fn set_executor_params(origin: OriginFor<T>, new: ExecutorParams) -> DispatchResult {
ensure_root(origin)?;
Self::schedule_config_update(|config| {
config.executor_params = new;
})
}
} }
#[pallet::hooks] #[pallet::hooks]
@@ -17,6 +17,7 @@
use crate::configuration::*; use crate::configuration::*;
use frame_benchmarking::{benchmarks, BenchmarkError, BenchmarkResult}; use frame_benchmarking::{benchmarks, BenchmarkError, BenchmarkResult};
use frame_system::RawOrigin; use frame_system::RawOrigin;
use primitives::{ExecutorParam, ExecutorParams, PvfExecTimeoutKind, PvfPrepTimeoutKind};
use sp_runtime::traits::One; use sp_runtime::traits::One;
benchmarks! { benchmarks! {
@@ -36,6 +37,18 @@ benchmarks! {
set_config_with_balance {}: set_hrmp_sender_deposit(RawOrigin::Root, 100_000_000_000) set_config_with_balance {}: set_hrmp_sender_deposit(RawOrigin::Root, 100_000_000_000)
set_config_with_executor_params {}: set_executor_params(RawOrigin::Root, ExecutorParams::from(&[
ExecutorParam::MaxMemoryPages(2080),
ExecutorParam::StackLogicalMax(65536),
ExecutorParam::StackNativeMax(256 * 1024 * 1024),
ExecutorParam::WasmExtBulkMemory,
ExecutorParam::PrecheckingMaxMemory(2 * 1024 * 1024 * 1024),
ExecutorParam::PvfPrepTimeout(PvfPrepTimeoutKind::Precheck, 60_000),
ExecutorParam::PvfPrepTimeout(PvfPrepTimeoutKind::Lenient, 360_000),
ExecutorParam::PvfExecTimeout(PvfExecTimeoutKind::Backing, 2_000),
ExecutorParam::PvfExecTimeout(PvfExecTimeoutKind::Approval, 12_000),
][..]))
impl_benchmark_test_suite!( impl_benchmark_test_suite!(
Pallet, Pallet,
crate::mock::new_test_ext(Default::default()), crate::mock::new_test_ext(Default::default()),
@@ -28,7 +28,9 @@ use sp_std::vec::Vec;
/// v1-v2: <https://github.com/paritytech/polkadot/pull/4420> /// v1-v2: <https://github.com/paritytech/polkadot/pull/4420>
/// v2-v3: <https://github.com/paritytech/polkadot/pull/6091> /// v2-v3: <https://github.com/paritytech/polkadot/pull/6091>
/// v3-v4: <https://github.com/paritytech/polkadot/pull/6345> /// v3-v4: <https://github.com/paritytech/polkadot/pull/6345>
/// v4-v5: <https://github.com/paritytech/polkadot/pull/6937> + <https://github.com/paritytech/polkadot/pull/6961> /// v4-v5: <https://github.com/paritytech/polkadot/pull/6937>
/// + <https://github.com/paritytech/polkadot/pull/6961>
/// + <https://github.com/paritytech/polkadot/pull/6934>
pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(5); pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(5);
pub mod v5 { pub mod v5 {
@@ -230,6 +232,9 @@ minimum_validation_upgrade_delay : pre.minimum_validation_upgrade_delay,
// Default values are zeroes, thus it's ensured allowed ancestry never crosses the upgrade block. // Default values are zeroes, thus it's ensured allowed ancestry never crosses the upgrade block.
async_backing_params : AsyncBackingParams { max_candidate_depth: 0, allowed_ancestry_len: 0 }, async_backing_params : AsyncBackingParams { max_candidate_depth: 0, allowed_ancestry_len: 0 },
// Default executor parameters set is empty
executor_params : Default::default(),
} }
}; };
@@ -268,6 +273,7 @@ async_backing_params : AsyncBackingParams { max_candidate_de
mod tests { mod tests {
use super::*; use super::*;
use crate::mock::{new_test_ext, Test}; use crate::mock::{new_test_ext, Test};
use primitives::ExecutorParams;
#[test] #[test]
fn v4_deserialized_from_actual_data() { fn v4_deserialized_from_actual_data() {
@@ -391,6 +397,7 @@ mod tests {
// additional checks for async backing. // additional checks for async backing.
assert_eq!(v5.async_backing_params.allowed_ancestry_len, 0); assert_eq!(v5.async_backing_params.allowed_ancestry_len, 0);
assert_eq!(v5.async_backing_params.max_candidate_depth, 0); assert_eq!(v5.async_backing_params.max_candidate_depth, 0);
assert_eq!(v5.executor_params, ExecutorParams::new());
} }
}); });
} }
@@ -326,6 +326,7 @@ fn setting_pending_config_members() {
pvf_checking_enabled: true, pvf_checking_enabled: true,
pvf_voting_ttl: 3, pvf_voting_ttl: 3,
minimum_validation_upgrade_delay: 20, minimum_validation_upgrade_delay: 20,
executor_params: Default::default(),
}; };
Configuration::set_validation_upgrade_cooldown( Configuration::set_validation_upgrade_cooldown(
@@ -27,9 +27,7 @@ use frame_support::{
pallet_prelude::*, pallet_prelude::*,
traits::{OneSessionHandler, ValidatorSet, ValidatorSetWithIdentification}, traits::{OneSessionHandler, ValidatorSet, ValidatorSetWithIdentification},
}; };
use primitives::{ use primitives::{AssignmentId, AuthorityDiscoveryId, ExecutorParams, SessionIndex, SessionInfo};
AssignmentId, AuthorityDiscoveryId, ExecutorParam, ExecutorParams, SessionIndex, SessionInfo,
};
use sp_std::vec::Vec; use sp_std::vec::Vec;
pub use pallet::*; pub use pallet::*;
@@ -39,10 +37,6 @@ pub mod migration;
#[cfg(test)] #[cfg(test)]
mod tests; mod tests;
// The order of parameters should be deterministic, that is, one should not reorder them when
// changing the array contents to avoid creating excessive pressure to PVF execution subsys.
const EXECUTOR_PARAMS: [ExecutorParam; 0] = [];
/// A type for representing the validator account id in a session. /// A type for representing the validator account id in a session.
pub type AccountId<T> = <<T as Config>::ValidatorSet as ValidatorSet< pub type AccountId<T> = <<T as Config>::ValidatorSet as ValidatorSet<
<T as frame_system::Config>::AccountId, <T as frame_system::Config>::AccountId,
@@ -196,10 +190,8 @@ impl<T: Config> Pallet<T> {
dispute_period, dispute_period,
}; };
Sessions::<T>::insert(&new_session_index, &new_session_info); Sessions::<T>::insert(&new_session_index, &new_session_info);
SessionExecutorParams::<T>::insert(
&new_session_index, SessionExecutorParams::<T>::insert(&new_session_index, config.executor_params);
ExecutorParams::from(&EXECUTOR_PARAMS[..]),
);
} }
/// Called by the initializer to initialize the session info pallet. /// Called by the initializer to initialize the session info pallet.
@@ -16,24 +16,26 @@
//! Autogenerated weights for `runtime_parachains::configuration` //! Autogenerated weights for `runtime_parachains::configuration`
//! //!
//! 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: 2023-03-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-04-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot // target/production/polkadot
// benchmark // benchmark
// pallet // pallet
// --chain=polkadot-dev
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --pallet=runtime_parachains::configuration
// --extrinsic=* // --extrinsic=*
// --execution=wasm // --execution=wasm
// --wasm-execution=compiled // --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json
// --pallet=runtime_parachains::configuration
// --chain=polkadot-dev
// --header=./file_header.txt // --header=./file_header.txt
// --output=./runtime/polkadot/src/weights/runtime_parachains_configuration.rs // --output=./runtime/polkadot/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -55,11 +57,11 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_block_number() -> Weight { fn set_config_with_block_number() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `317` // Measured: `393`
// Estimated: `7208` // Estimated: `7512`
// Minimum execution time: 12_097_000 picoseconds. // Minimum execution time: 13_232_000 picoseconds.
Weight::from_parts(12_745_000, 0) Weight::from_parts(13_585_000, 0)
.saturating_add(Weight::from_parts(0, 7208)) .saturating_add(Weight::from_parts(0, 7512))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -73,11 +75,11 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_u32() -> Weight { fn set_config_with_u32() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `317` // Measured: `393`
// Estimated: `7208` // Estimated: `7512`
// Minimum execution time: 12_691_000 picoseconds. // Minimum execution time: 13_436_000 picoseconds.
Weight::from_parts(13_006_000, 0) Weight::from_parts(13_919_000, 0)
.saturating_add(Weight::from_parts(0, 7208)) .saturating_add(Weight::from_parts(0, 7512))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -91,11 +93,11 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_option_u32() -> Weight { fn set_config_with_option_u32() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `317` // Measured: `393`
// Estimated: `7208` // Estimated: `7512`
// Minimum execution time: 12_533_000 picoseconds. // Minimum execution time: 13_053_000 picoseconds.
Weight::from_parts(13_126_000, 0) Weight::from_parts(13_330_000, 0)
.saturating_add(Weight::from_parts(0, 7208)) .saturating_add(Weight::from_parts(0, 7512))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -109,11 +111,11 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_weight() -> Weight { fn set_config_with_weight() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `317` // Measured: `393`
// Estimated: `7208` // Estimated: `7512`
// Minimum execution time: 12_511_000 picoseconds. // Minimum execution time: 12_931_000 picoseconds.
Weight::from_parts(12_858_000, 0) Weight::from_parts(13_349_000, 0)
.saturating_add(Weight::from_parts(0, 7208)) .saturating_add(Weight::from_parts(0, 7512))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -137,11 +139,29 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_balance() -> Weight { fn set_config_with_balance() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `317` // Measured: `393`
// Estimated: `7208` // Estimated: `7512`
// Minimum execution time: 12_525_000 picoseconds. // Minimum execution time: 12_861_000 picoseconds.
Weight::from_parts(13_130_000, 0) Weight::from_parts(13_341_000, 0)
.saturating_add(Weight::from_parts(0, 7208)) .saturating_add(Weight::from_parts(0, 7512))
.saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: Configuration PendingConfigs (r:1 w:1)
/// Proof Skipped: Configuration PendingConfigs (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: Configuration ActiveConfig (r:1 w:0)
/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: Configuration BypassConsistencyCheck (r:1 w:0)
/// Proof Skipped: Configuration BypassConsistencyCheck (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_executor_params() -> Weight {
// Proof Size summary in bytes:
// Measured: `393`
// Estimated: `7512`
// Minimum execution time: 13_678_000 picoseconds.
Weight::from_parts(14_093_000, 0)
.saturating_add(Weight::from_parts(0, 7512))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -16,24 +16,26 @@
//! Autogenerated weights for `runtime_parachains::configuration` //! Autogenerated weights for `runtime_parachains::configuration`
//! //!
//! 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: 2023-03-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-04-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot // target/production/polkadot
// benchmark // benchmark
// pallet // pallet
// --chain=rococo-dev
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --pallet=runtime_parachains::configuration
// --extrinsic=* // --extrinsic=*
// --execution=wasm // --execution=wasm
// --wasm-execution=compiled // --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json
// --pallet=runtime_parachains::configuration
// --chain=rococo-dev
// --header=./file_header.txt // --header=./file_header.txt
// --output=./runtime/rococo/src/weights/runtime_parachains_configuration.rs // --output=./runtime/rococo/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -55,11 +57,11 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_block_number() -> Weight { fn set_config_with_block_number() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `392` // Measured: `397`
// Estimated: `7508` // Estimated: `7528`
// Minimum execution time: 12_943_000 picoseconds. // Minimum execution time: 12_920_000 picoseconds.
Weight::from_parts(13_396_000, 0) Weight::from_parts(13_270_000, 0)
.saturating_add(Weight::from_parts(0, 7508)) .saturating_add(Weight::from_parts(0, 7528))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -73,11 +75,11 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_u32() -> Weight { fn set_config_with_u32() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `392` // Measured: `397`
// Estimated: `7508` // Estimated: `7528`
// Minimum execution time: 13_054_000 picoseconds. // Minimum execution time: 12_858_000 picoseconds.
Weight::from_parts(13_391_000, 0) Weight::from_parts(13_184_000, 0)
.saturating_add(Weight::from_parts(0, 7508)) .saturating_add(Weight::from_parts(0, 7528))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -91,11 +93,11 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_option_u32() -> Weight { fn set_config_with_option_u32() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `392` // Measured: `397`
// Estimated: `7508` // Estimated: `7528`
// Minimum execution time: 13_012_000 picoseconds. // Minimum execution time: 13_117_000 picoseconds.
Weight::from_parts(13_464_000, 0) Weight::from_parts(13_517_000, 0)
.saturating_add(Weight::from_parts(0, 7508)) .saturating_add(Weight::from_parts(0, 7528))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -109,11 +111,11 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_weight() -> Weight { fn set_config_with_weight() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `392` // Measured: `397`
// Estimated: `7508` // Estimated: `7528`
// Minimum execution time: 12_998_000 picoseconds. // Minimum execution time: 12_941_000 picoseconds.
Weight::from_parts(13_458_000, 0) Weight::from_parts(13_507_000, 0)
.saturating_add(Weight::from_parts(0, 7508)) .saturating_add(Weight::from_parts(0, 7528))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -137,11 +139,29 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_balance() -> Weight { fn set_config_with_balance() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `392` // Measured: `397`
// Estimated: `7508` // Estimated: `7528`
// Minimum execution time: 12_815_000 picoseconds. // Minimum execution time: 12_814_000 picoseconds.
Weight::from_parts(13_368_000, 0) Weight::from_parts(13_258_000, 0)
.saturating_add(Weight::from_parts(0, 7508)) .saturating_add(Weight::from_parts(0, 7528))
.saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: Configuration PendingConfigs (r:1 w:1)
/// Proof Skipped: Configuration PendingConfigs (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: Configuration ActiveConfig (r:1 w:0)
/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: Configuration BypassConsistencyCheck (r:1 w:0)
/// Proof Skipped: Configuration BypassConsistencyCheck (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_executor_params() -> Weight {
// Proof Size summary in bytes:
// Measured: `397`
// Estimated: `7528`
// Minimum execution time: 13_908_000 picoseconds.
Weight::from_parts(14_382_000, 0)
.saturating_add(Weight::from_parts(0, 7528))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -16,24 +16,26 @@
//! Autogenerated weights for `runtime_parachains::configuration` //! Autogenerated weights for `runtime_parachains::configuration`
//! //!
//! 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: 2023-03-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-04-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot // target/production/polkadot
// benchmark // benchmark
// pallet // pallet
// --chain=westend-dev
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --pallet=runtime_parachains::configuration
// --extrinsic=* // --extrinsic=*
// --execution=wasm // --execution=wasm
// --wasm-execution=compiled // --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json
// --pallet=runtime_parachains::configuration
// --chain=westend-dev
// --header=./file_header.txt // --header=./file_header.txt
// --output=./runtime/westend/src/weights/runtime_parachains_configuration.rs // --output=./runtime/westend/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -55,8 +57,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 9_426_000 picoseconds. // Minimum execution time: 9_585_000 picoseconds.
Weight::from_parts(9_764_000, 0) Weight::from_parts(9_914_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -71,8 +73,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 9_836_000 picoseconds. // Minimum execution time: 9_620_000 picoseconds.
Weight::from_parts(10_178_000, 0) Weight::from_parts(9_963_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -87,8 +89,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 9_515_000 picoseconds. // Minimum execution time: 9_687_000 picoseconds.
Weight::from_parts(9_857_000, 0) Weight::from_parts(9_932_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -103,8 +105,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 9_432_000 picoseconds. // Minimum execution time: 9_635_000 picoseconds.
Weight::from_parts(9_864_000, 0) Weight::from_parts(9_878_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -129,8 +131,24 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `90` // Measured: `90`
// Estimated: `4725` // Estimated: `4725`
// Minimum execution time: 9_655_000 picoseconds. // Minimum execution time: 9_626_000 picoseconds.
Weight::from_parts(9_975_000, 0) Weight::from_parts(9_987_000, 0)
.saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: Configuration PendingConfigs (r:1 w:1)
/// Proof Skipped: Configuration PendingConfigs (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: Configuration BypassConsistencyCheck (r:1 w:0)
/// Proof Skipped: Configuration BypassConsistencyCheck (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
fn set_config_with_executor_params() -> Weight {
// Proof Size summary in bytes:
// Measured: `90`
// Estimated: `4725`
// Minimum execution time: 10_483_000 picoseconds.
Weight::from_parts(10_695_000, 0)
.saturating_add(Weight::from_parts(0, 4725)) .saturating_add(Weight::from_parts(0, 4725))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))