diff --git a/polkadot/primitives/src/v4/executor_params.rs b/polkadot/primitives/src/v4/executor_params.rs index badaf3b44a..0cdeb44704 100644 --- a/polkadot/primitives/src/v4/executor_params.rs +++ b/polkadot/primitives/src/v4/executor_params.rs @@ -29,6 +29,7 @@ use sp_std::{ops::Deref, time::Duration, vec, vec::Vec}; /// The different executor parameters for changing the execution environment semantics. #[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, TypeInfo)] +#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] pub enum ExecutorParam { /// Maximum number of memory pages (64KiB bytes per page) the executor can allocate. #[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 // they show up, they must be clearly documented as mandatory ones. #[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, TypeInfo)] +#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] pub struct ExecutorParams(Vec); impl ExecutorParams { diff --git a/polkadot/primitives/src/v4/mod.rs b/polkadot/primitives/src/v4/mod.rs index 6b8434cbbe..56fe856d15 100644 --- a/polkadot/primitives/src/v4/mod.rs +++ b/polkadot/primitives/src/v4/mod.rs @@ -1708,6 +1708,7 @@ impl PvfCheckStatement { /// Type discriminator for PVF preparation timeouts #[derive(Encode, Decode, TypeInfo, Clone, Copy, Debug, PartialEq, Eq)] +#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] pub enum PvfPrepTimeoutKind { /// For prechecking requests, the time period after which the preparation worker is considered /// unresponsive and will be killed. @@ -1721,6 +1722,7 @@ pub enum PvfPrepTimeoutKind { /// Type discriminator for PVF execution timeouts #[derive(Encode, Decode, TypeInfo, Clone, Copy, Debug, PartialEq, Eq)] +#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] pub enum PvfExecTimeoutKind { /// The amount of time to spend on execution during backing. Backing, diff --git a/polkadot/runtime/kusama/src/weights/runtime_parachains_configuration.rs b/polkadot/runtime/kusama/src/weights/runtime_parachains_configuration.rs index b5a194796b..d5344bc8ea 100644 --- a/polkadot/runtime/kusama/src/weights/runtime_parachains_configuration.rs +++ b/polkadot/runtime/kusama/src/weights/runtime_parachains_configuration.rs @@ -16,24 +16,26 @@ //! Autogenerated weights for `runtime_parachains::configuration` //! //! 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` -//! 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 // Executed Command: -// ./target/production/polkadot +// target/production/polkadot // benchmark // pallet -// --chain=kusama-dev // --steps=50 // --repeat=20 -// --pallet=runtime_parachains::configuration // --extrinsic=* // --execution=wasm // --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 -// --output=./runtime/kusama/src/weights/runtime_parachains_configuration.rs +// --output=./runtime/kusama/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +57,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 8_970_000 picoseconds. - Weight::from_parts(9_143_000, 0) + // Minimum execution time: 9_394_000 picoseconds. + Weight::from_parts(9_686_000, 0) .saturating_add(Weight::from_parts(0, 4725)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -71,8 +73,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 9_192_000 picoseconds. - Weight::from_parts(9_475_000, 0) + // Minimum execution time: 9_379_000 picoseconds. + Weight::from_parts(9_700_000, 0) .saturating_add(Weight::from_parts(0, 4725)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -87,8 +89,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 9_259_000 picoseconds. - Weight::from_parts(9_499_000, 0) + // Minimum execution time: 9_612_000 picoseconds. + Weight::from_parts(16_194_000, 0) .saturating_add(Weight::from_parts(0, 4725)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -103,8 +105,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 9_323_000 picoseconds. - Weight::from_parts(9_697_000, 0) + // Minimum execution time: 9_533_000 picoseconds. + Weight::from_parts(9_745_000, 0) .saturating_add(Weight::from_parts(0, 4725)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -129,8 +131,24 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 9_270_000 picoseconds. - Weight::from_parts(9_527_000, 0) + // Minimum execution time: 9_463_000 picoseconds. + 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(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/polkadot/runtime/parachains/src/configuration.rs b/polkadot/runtime/parachains/src/configuration.rs index 802e4751e2..380ae47708 100644 --- a/polkadot/runtime/parachains/src/configuration.rs +++ b/polkadot/runtime/parachains/src/configuration.rs @@ -24,8 +24,8 @@ use frame_system::pallet_prelude::*; use parity_scale_codec::{Decode, Encode}; use polkadot_parachain::primitives::{MAX_HORIZONTAL_MESSAGE_NUM, MAX_UPWARD_MESSAGE_NUM}; use primitives::{ - vstaging::AsyncBackingParams, Balance, SessionIndex, MAX_CODE_SIZE, MAX_HEAD_DATA_SIZE, - MAX_POV_SIZE, + vstaging::AsyncBackingParams, Balance, ExecutorParams, SessionIndex, MAX_CODE_SIZE, + MAX_HEAD_DATA_SIZE, MAX_POV_SIZE, }; use sp_runtime::traits::Zero; use sp_std::prelude::*; @@ -157,6 +157,8 @@ pub struct HostConfiguration { /// /// This parameter affects the upper bound of size of `CandidateCommitments`. pub hrmp_channel_max_message_size: u32, + /// The executor environment parameters + pub executor_params: ExecutorParams, /** * Parameters that will unlikely be needed by parachains. @@ -296,6 +298,7 @@ impl> Default for HostConfiguration Weight; fn set_config_with_balance() -> Weight; fn set_hrmp_open_request_ttl() -> Weight; + fn set_config_with_executor_params() -> Weight; } pub struct TestWeightInfo; @@ -472,6 +476,9 @@ impl WeightInfo for TestWeightInfo { fn set_hrmp_open_request_ttl() -> Weight { Weight::MAX } + fn set_config_with_executor_params() -> Weight { + Weight::MAX + } } #[frame_support::pallet] @@ -1163,6 +1170,19 @@ pub mod pallet { 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, new: ExecutorParams) -> DispatchResult { + ensure_root(origin)?; + Self::schedule_config_update(|config| { + config.executor_params = new; + }) + } } #[pallet::hooks] diff --git a/polkadot/runtime/parachains/src/configuration/benchmarking.rs b/polkadot/runtime/parachains/src/configuration/benchmarking.rs index b8237b0145..0b8b09fe72 100644 --- a/polkadot/runtime/parachains/src/configuration/benchmarking.rs +++ b/polkadot/runtime/parachains/src/configuration/benchmarking.rs @@ -17,6 +17,7 @@ use crate::configuration::*; use frame_benchmarking::{benchmarks, BenchmarkError, BenchmarkResult}; use frame_system::RawOrigin; +use primitives::{ExecutorParam, ExecutorParams, PvfExecTimeoutKind, PvfPrepTimeoutKind}; use sp_runtime::traits::One; benchmarks! { @@ -36,6 +37,18 @@ benchmarks! { 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!( Pallet, crate::mock::new_test_ext(Default::default()), diff --git a/polkadot/runtime/parachains/src/configuration/migration.rs b/polkadot/runtime/parachains/src/configuration/migration.rs index fae8fe31fb..3aef176111 100644 --- a/polkadot/runtime/parachains/src/configuration/migration.rs +++ b/polkadot/runtime/parachains/src/configuration/migration.rs @@ -28,7 +28,9 @@ use sp_std::vec::Vec; /// v1-v2: /// v2-v3: /// v3-v4: -/// v4-v5: + +/// v4-v5: +/// + +/// + pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(5); 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. 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 { use super::*; use crate::mock::{new_test_ext, Test}; + use primitives::ExecutorParams; #[test] fn v4_deserialized_from_actual_data() { @@ -391,6 +397,7 @@ mod tests { // additional checks for async backing. assert_eq!(v5.async_backing_params.allowed_ancestry_len, 0); assert_eq!(v5.async_backing_params.max_candidate_depth, 0); + assert_eq!(v5.executor_params, ExecutorParams::new()); } }); } diff --git a/polkadot/runtime/parachains/src/configuration/tests.rs b/polkadot/runtime/parachains/src/configuration/tests.rs index d7cc934ce5..d076865bf6 100644 --- a/polkadot/runtime/parachains/src/configuration/tests.rs +++ b/polkadot/runtime/parachains/src/configuration/tests.rs @@ -326,6 +326,7 @@ fn setting_pending_config_members() { pvf_checking_enabled: true, pvf_voting_ttl: 3, minimum_validation_upgrade_delay: 20, + executor_params: Default::default(), }; Configuration::set_validation_upgrade_cooldown( diff --git a/polkadot/runtime/parachains/src/session_info.rs b/polkadot/runtime/parachains/src/session_info.rs index dc2a2b5e46..9f47ad0b03 100644 --- a/polkadot/runtime/parachains/src/session_info.rs +++ b/polkadot/runtime/parachains/src/session_info.rs @@ -27,9 +27,7 @@ use frame_support::{ pallet_prelude::*, traits::{OneSessionHandler, ValidatorSet, ValidatorSetWithIdentification}, }; -use primitives::{ - AssignmentId, AuthorityDiscoveryId, ExecutorParam, ExecutorParams, SessionIndex, SessionInfo, -}; +use primitives::{AssignmentId, AuthorityDiscoveryId, ExecutorParams, SessionIndex, SessionInfo}; use sp_std::vec::Vec; pub use pallet::*; @@ -39,10 +37,6 @@ pub mod migration; #[cfg(test)] 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. pub type AccountId = <::ValidatorSet as ValidatorSet< ::AccountId, @@ -196,10 +190,8 @@ impl Pallet { dispute_period, }; Sessions::::insert(&new_session_index, &new_session_info); - SessionExecutorParams::::insert( - &new_session_index, - ExecutorParams::from(&EXECUTOR_PARAMS[..]), - ); + + SessionExecutorParams::::insert(&new_session_index, config.executor_params); } /// Called by the initializer to initialize the session info pallet. diff --git a/polkadot/runtime/polkadot/src/weights/runtime_parachains_configuration.rs b/polkadot/runtime/polkadot/src/weights/runtime_parachains_configuration.rs index 35ff4e8c94..79f99e6551 100644 --- a/polkadot/runtime/polkadot/src/weights/runtime_parachains_configuration.rs +++ b/polkadot/runtime/polkadot/src/weights/runtime_parachains_configuration.rs @@ -16,24 +16,26 @@ //! Autogenerated weights for `runtime_parachains::configuration` //! //! 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` -//! 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 // Executed Command: -// ./target/production/polkadot +// target/production/polkadot // benchmark // pallet -// --chain=polkadot-dev // --steps=50 // --repeat=20 -// --pallet=runtime_parachains::configuration // --extrinsic=* // --execution=wasm // --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 -// --output=./runtime/polkadot/src/weights/runtime_parachains_configuration.rs +// --output=./runtime/polkadot/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,11 +57,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_block_number() -> Weight { // Proof Size summary in bytes: - // Measured: `317` - // Estimated: `7208` - // Minimum execution time: 12_097_000 picoseconds. - Weight::from_parts(12_745_000, 0) - .saturating_add(Weight::from_parts(0, 7208)) + // Measured: `393` + // Estimated: `7512` + // Minimum execution time: 13_232_000 picoseconds. + Weight::from_parts(13_585_000, 0) + .saturating_add(Weight::from_parts(0, 7512)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -73,11 +75,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { // Proof Size summary in bytes: - // Measured: `317` - // Estimated: `7208` - // Minimum execution time: 12_691_000 picoseconds. - Weight::from_parts(13_006_000, 0) - .saturating_add(Weight::from_parts(0, 7208)) + // Measured: `393` + // Estimated: `7512` + // Minimum execution time: 13_436_000 picoseconds. + Weight::from_parts(13_919_000, 0) + .saturating_add(Weight::from_parts(0, 7512)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -91,11 +93,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_option_u32() -> Weight { // Proof Size summary in bytes: - // Measured: `317` - // Estimated: `7208` - // Minimum execution time: 12_533_000 picoseconds. - Weight::from_parts(13_126_000, 0) - .saturating_add(Weight::from_parts(0, 7208)) + // Measured: `393` + // Estimated: `7512` + // Minimum execution time: 13_053_000 picoseconds. + Weight::from_parts(13_330_000, 0) + .saturating_add(Weight::from_parts(0, 7512)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -109,11 +111,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_weight() -> Weight { // Proof Size summary in bytes: - // Measured: `317` - // Estimated: `7208` - // Minimum execution time: 12_511_000 picoseconds. - Weight::from_parts(12_858_000, 0) - .saturating_add(Weight::from_parts(0, 7208)) + // Measured: `393` + // Estimated: `7512` + // Minimum execution time: 12_931_000 picoseconds. + Weight::from_parts(13_349_000, 0) + .saturating_add(Weight::from_parts(0, 7512)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -137,11 +139,29 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `317` - // Estimated: `7208` - // Minimum execution time: 12_525_000 picoseconds. - Weight::from_parts(13_130_000, 0) - .saturating_add(Weight::from_parts(0, 7208)) + // Measured: `393` + // Estimated: `7512` + // Minimum execution time: 12_861_000 picoseconds. + Weight::from_parts(13_341_000, 0) + .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().writes(1)) } diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_configuration.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_configuration.rs index 8a7b1a354b..42f5086c2b 100644 --- a/polkadot/runtime/rococo/src/weights/runtime_parachains_configuration.rs +++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_configuration.rs @@ -16,24 +16,26 @@ //! Autogenerated weights for `runtime_parachains::configuration` //! //! 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` -//! 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 // Executed Command: -// ./target/production/polkadot +// target/production/polkadot // benchmark // pallet -// --chain=rococo-dev // --steps=50 // --repeat=20 -// --pallet=runtime_parachains::configuration // --extrinsic=* // --execution=wasm // --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 -// --output=./runtime/rococo/src/weights/runtime_parachains_configuration.rs +// --output=./runtime/rococo/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,11 +57,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_block_number() -> Weight { // Proof Size summary in bytes: - // Measured: `392` - // Estimated: `7508` - // Minimum execution time: 12_943_000 picoseconds. - Weight::from_parts(13_396_000, 0) - .saturating_add(Weight::from_parts(0, 7508)) + // Measured: `397` + // Estimated: `7528` + // Minimum execution time: 12_920_000 picoseconds. + Weight::from_parts(13_270_000, 0) + .saturating_add(Weight::from_parts(0, 7528)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -73,11 +75,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { // Proof Size summary in bytes: - // Measured: `392` - // Estimated: `7508` - // Minimum execution time: 13_054_000 picoseconds. - Weight::from_parts(13_391_000, 0) - .saturating_add(Weight::from_parts(0, 7508)) + // Measured: `397` + // Estimated: `7528` + // Minimum execution time: 12_858_000 picoseconds. + Weight::from_parts(13_184_000, 0) + .saturating_add(Weight::from_parts(0, 7528)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -91,11 +93,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_option_u32() -> Weight { // Proof Size summary in bytes: - // Measured: `392` - // Estimated: `7508` - // Minimum execution time: 13_012_000 picoseconds. - Weight::from_parts(13_464_000, 0) - .saturating_add(Weight::from_parts(0, 7508)) + // Measured: `397` + // Estimated: `7528` + // Minimum execution time: 13_117_000 picoseconds. + Weight::from_parts(13_517_000, 0) + .saturating_add(Weight::from_parts(0, 7528)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -109,11 +111,11 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_weight() -> Weight { // Proof Size summary in bytes: - // Measured: `392` - // Estimated: `7508` - // Minimum execution time: 12_998_000 picoseconds. - Weight::from_parts(13_458_000, 0) - .saturating_add(Weight::from_parts(0, 7508)) + // Measured: `397` + // Estimated: `7528` + // Minimum execution time: 12_941_000 picoseconds. + Weight::from_parts(13_507_000, 0) + .saturating_add(Weight::from_parts(0, 7528)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -137,11 +139,29 @@ impl runtime_parachains::configuration::WeightInfo for /// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `392` - // Estimated: `7508` - // Minimum execution time: 12_815_000 picoseconds. - Weight::from_parts(13_368_000, 0) - .saturating_add(Weight::from_parts(0, 7508)) + // Measured: `397` + // Estimated: `7528` + // Minimum execution time: 12_814_000 picoseconds. + Weight::from_parts(13_258_000, 0) + .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().writes(1)) } diff --git a/polkadot/runtime/westend/src/weights/runtime_parachains_configuration.rs b/polkadot/runtime/westend/src/weights/runtime_parachains_configuration.rs index 2e1d5ac6bf..8192c978de 100644 --- a/polkadot/runtime/westend/src/weights/runtime_parachains_configuration.rs +++ b/polkadot/runtime/westend/src/weights/runtime_parachains_configuration.rs @@ -16,24 +16,26 @@ //! Autogenerated weights for `runtime_parachains::configuration` //! //! 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` -//! 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 // Executed Command: -// ./target/production/polkadot +// target/production/polkadot // benchmark // pallet -// --chain=westend-dev // --steps=50 // --repeat=20 -// --pallet=runtime_parachains::configuration // --extrinsic=* // --execution=wasm // --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 -// --output=./runtime/westend/src/weights/runtime_parachains_configuration.rs +// --output=./runtime/westend/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +57,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 9_426_000 picoseconds. - Weight::from_parts(9_764_000, 0) + // Minimum execution time: 9_585_000 picoseconds. + Weight::from_parts(9_914_000, 0) .saturating_add(Weight::from_parts(0, 4725)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -71,8 +73,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 9_836_000 picoseconds. - Weight::from_parts(10_178_000, 0) + // Minimum execution time: 9_620_000 picoseconds. + Weight::from_parts(9_963_000, 0) .saturating_add(Weight::from_parts(0, 4725)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -87,8 +89,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 9_515_000 picoseconds. - Weight::from_parts(9_857_000, 0) + // Minimum execution time: 9_687_000 picoseconds. + Weight::from_parts(9_932_000, 0) .saturating_add(Weight::from_parts(0, 4725)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -103,8 +105,8 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 9_432_000 picoseconds. - Weight::from_parts(9_864_000, 0) + // Minimum execution time: 9_635_000 picoseconds. + Weight::from_parts(9_878_000, 0) .saturating_add(Weight::from_parts(0, 4725)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -129,8 +131,24 @@ impl runtime_parachains::configuration::WeightInfo for // Proof Size summary in bytes: // Measured: `90` // Estimated: `4725` - // Minimum execution time: 9_655_000 picoseconds. - Weight::from_parts(9_975_000, 0) + // Minimum execution time: 9_626_000 picoseconds. + 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(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1))