difftreelog
fix benchmarks+try-runtime
in: master
6 files changed
node/cli/src/command.rsdiffbeforeafterboth--- a/node/cli/src/command.rs
+++ b/node/cli/src/command.rs
@@ -352,11 +352,14 @@
use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE};
use polkadot_cli::Block;
+ type Header = <Block as sp_runtime::traits::Block>::Header;
+ type Hasher = <Header as sp_runtime::traits::Header>::Hashing;
+
let runner = cli.create_runner(cmd)?;
// Switch on the concrete benchmark sub-command-
match cmd {
BenchmarkCmd::Pallet(cmd) => {
- runner.sync_run(|config| cmd.run::<Block, ParachainHostFunctions>(config))
+ runner.sync_run(|config| cmd.run::<Hasher, ParachainHostFunctions>(config))
}
BenchmarkCmd::Block(cmd) => runner.sync_run(|config| {
let partials = new_partial::<
pallets/foreign-assets/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/foreign-assets/src/benchmarking.rs
+++ b/pallets/foreign-assets/src/benchmarking.rs
@@ -32,8 +32,7 @@
#[benchmark]
fn force_register_foreign_asset() -> Result<(), BenchmarkError> {
- let location =
- Location::from((Parachain(1000), PalletInstance(42), GeneralIndex(1)).into());
+ let asset_id: AssetId = (Parachain(1000), PalletInstance(42), GeneralIndex(1)).into();
let name = create_u16_data::<MAX_COLLECTION_NAME_LENGTH>();
let token_prefix = create_data::<MAX_TOKEN_PREFIX_LENGTH>();
let mode = ForeignCollectionMode::NFT;
@@ -41,7 +40,7 @@
#[extrinsic_call]
_(
RawOrigin::Root,
- Box::new(location.into()),
+ Box::new(asset_id.into()),
name,
token_prefix,
mode,
runtime/common/config/governance/fellowship.rsdiffbeforeafterboth--- a/runtime/common/config/governance/fellowship.rs
+++ b/runtime/common/config/governance/fellowship.rs
@@ -73,6 +73,9 @@
type Polls = FellowshipReferenda;
type MinRankOfClass = ClassToRankMapper<Self, ()>;
type VoteWeight = pallet_ranked_collective::Geometric;
+
+ #[cfg(feature = "runtime-benchmarks")]
+ type BenchmarkSetup = ();
}
pub struct EnsureFellowshipProposition;
runtime/common/config/xcm.rsdiffbeforeafterboth--- a/runtime/common/config/xcm.rs
+++ b/runtime/common/config/xcm.rs
@@ -194,11 +194,6 @@
type TransactionalProcessor = FrameTransactionalProcessor;
}
-#[cfg(feature = "runtime-benchmarks")]
-parameter_types! {
- pub ReachableDest: Option<Location> = Some(Parent.into());
-}
-
impl pallet_xcm::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type SendXcmOrigin = EnsureXcmOrigin<RuntimeOrigin, ()>;
@@ -223,10 +218,21 @@
type AdminOrigin = EnsureRoot<AccountId>;
type MaxRemoteLockConsumers = ConstU32<0>;
type RemoteLockConsumerIdentifier = ();
- #[cfg(feature = "runtime-benchmarks")]
- type ReachableDest = ReachableDest;
}
+#[cfg(feature = "runtime-benchmarks")]
+impl pallet_xcm::benchmarking::Config for Runtime {
+ type DeliveryHelper = ();
+
+ fn reachable_dest() -> Option<Location> {
+ Some(Parent.into())
+ }
+
+ fn get_asset() -> Asset {
+ (Location::here(), 1_000_000_000_000_000_000u128).into()
+ }
+}
+
impl cumulus_pallet_xcm::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type XcmExecutor = XcmExecutor<XcmExecutorConfig<Self>>;
runtime/common/runtime_apis.rsdiffbeforeafterboth--- a/runtime/common/runtime_apis.rs
+++ b/runtime/common/runtime_apis.rs
@@ -535,9 +535,10 @@
) {
use frame_benchmarking::{list_benchmark, Benchmarking, BenchmarkList};
use frame_support::traits::StorageInfoTrait;
+ use pallet_xcm::benchmarking::Pallet as PalletXcmBenchmarks;
let mut list = Vec::<BenchmarkList>::new();
- list_benchmark!(list, extra, pallet_xcm, PolkadotXcm);
+ list_benchmark!(list, extra, pallet_xcm, PalletXcmBenchmarks::<Runtime>);
list_benchmark!(list, extra, pallet_evm_migration, EvmMigration);
list_benchmark!(list, extra, pallet_common, Common);
@@ -578,6 +579,7 @@
) -> Result<Vec<frame_benchmarking::BenchmarkBatch>, sp_runtime::RuntimeString> {
use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark};
use sp_storage::TrackedStorageKey;
+ use pallet_xcm::benchmarking::Pallet as PalletXcmBenchmarks;
let allowlist: Vec<TrackedStorageKey> = vec![
// Total Issuance
@@ -601,8 +603,9 @@
let mut batches = Vec::<BenchmarkBatch>::new();
let params = (&config, &allowlist);
- add_benchmark!(params, batches, pallet_xcm, PolkadotXcm);
+ add_benchmark!(params, batches, pallet_xcm, PalletXcmBenchmarks::<Runtime>);
+
add_benchmark!(params, batches, pallet_evm_migration, EvmMigration);
add_benchmark!(params, batches, pallet_common, Common);
add_benchmark!(params, batches, pallet_unique, Unique);
runtime/common/weights/xcm.rsdiffbeforeafterboth1// Template adopted from https://github.com/paritytech/substrate/blob/master/.maintain/frame-weight-template.hbs23//! Autogenerated weights for pallet_xcm4//!5//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 29.0.06//! DATE: 2023-11-29, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`7//! WORST CASE MAP SIZE: `1000000`8//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024910// Executed Command:11// ./target/production/unique-collator12// benchmark13// pallet14// --pallet15// pallet-xcm16// --wasm-execution17// compiled18// --extrinsic19// *20// --template=.maintain/external-weight-template.hbs21// --steps=5022// --repeat=8023// --heap-pages=409624// --output=./runtime/common/weights/xcm.rs2526#![cfg_attr(rustfmt, rustfmt_skip)]27#![allow(unused_parens)]28#![allow(unused_imports)]29#![allow(missing_docs)]30#![allow(clippy::unnecessary_cast)]3132use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};33use sp_std::marker::PhantomData;3435/// Weights for pallet_xcm using the Substrate node and recommended hardware.36pub struct SubstrateWeight<T>(PhantomData<T>);37impl<T: frame_system::Config> pallet_xcm::WeightInfo for SubstrateWeight<T> {38 /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)39 /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)40 /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)41 /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)42 /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)43 /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)44 /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)45 /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)46 /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)47 /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)48 fn send() -> Weight {49 // Proof Size summary in bytes:50 // Measured: `278`51 // Estimated: `3743`52 // Minimum execution time: 22_693_000 picoseconds.53 Weight::from_parts(23_155_000, 3743)54 .saturating_add(T::DbWeight::get().reads(5_u64))55 .saturating_add(T::DbWeight::get().writes(2_u64))56 }57 /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)58 /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)59 fn teleport_assets() -> Weight {60 // Proof Size summary in bytes:61 // Measured: `169`62 // Estimated: `1489`63 // Minimum execution time: 21_165_000 picoseconds.64 Weight::from_parts(21_568_000, 1489)65 .saturating_add(T::DbWeight::get().reads(1_u64))66 }67 /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)68 /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)69 fn reserve_transfer_assets() -> Weight {70 // Proof Size summary in bytes:71 // Measured: `169`72 // Estimated: `1489`73 // Minimum execution time: 20_929_000 picoseconds.74 Weight::from_parts(21_295_000, 1489)75 .saturating_add(T::DbWeight::get().reads(1_u64))76 }77 fn execute() -> Weight {78 // Proof Size summary in bytes:79 // Measured: `0`80 // Estimated: `0`81 // Minimum execution time: 7_580_000 picoseconds.82 Weight::from_parts(7_829_000, 0)83 }84 /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1)85 /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)86 fn force_xcm_version() -> Weight {87 // Proof Size summary in bytes:88 // Measured: `0`89 // Estimated: `0`90 // Minimum execution time: 7_503_000 picoseconds.91 Weight::from_parts(7_703_000, 0)92 .saturating_add(T::DbWeight::get().writes(1_u64))93 }94 /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1)95 /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)96 fn force_default_xcm_version() -> Weight {97 // Proof Size summary in bytes:98 // Measured: `0`99 // Estimated: `0`100 // Minimum execution time: 2_505_000 picoseconds.101 Weight::from_parts(2_619_000, 0)102 .saturating_add(T::DbWeight::get().writes(1_u64))103 }104 /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1)105 /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)106 /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)107 /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)108 /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)109 /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)110 /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)111 /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)112 /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)113 /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)114 /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)115 /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)116 /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)117 /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)118 /// Storage: `PolkadotXcm::Queries` (r:0 w:1)119 /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)120 fn force_subscribe_version_notify() -> Weight {121 // Proof Size summary in bytes:122 // Measured: `278`123 // Estimated: `3743`124 // Minimum execution time: 26_213_000 picoseconds.125 Weight::from_parts(26_652_000, 3743)126 .saturating_add(T::DbWeight::get().reads(7_u64))127 .saturating_add(T::DbWeight::get().writes(5_u64))128 }129 /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1)130 /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)131 /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)132 /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)133 /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)134 /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)135 /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)136 /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)137 /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)138 /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)139 /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)140 /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)141 /// Storage: `PolkadotXcm::Queries` (r:0 w:1)142 /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)143 fn force_unsubscribe_version_notify() -> Weight {144 // Proof Size summary in bytes:145 // Measured: `461`146 // Estimated: `3926`147 // Minimum execution time: 27_648_000 picoseconds.148 Weight::from_parts(28_084_000, 3926)149 .saturating_add(T::DbWeight::get().reads(6_u64))150 .saturating_add(T::DbWeight::get().writes(4_u64))151 }152 /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1)153 /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)154 fn force_suspension() -> Weight {155 // Proof Size summary in bytes:156 // Measured: `0`157 // Estimated: `0`158 // Minimum execution time: 2_529_000 picoseconds.159 Weight::from_parts(2_650_000, 0)160 .saturating_add(T::DbWeight::get().writes(1_u64))161 }162 /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2)163 /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)164 fn migrate_supported_version() -> Weight {165 // Proof Size summary in bytes:166 // Measured: `196`167 // Estimated: `11086`168 // Minimum execution time: 15_973_000 picoseconds.169 Weight::from_parts(16_358_000, 11086)170 .saturating_add(T::DbWeight::get().reads(4_u64))171 .saturating_add(T::DbWeight::get().writes(2_u64))172 }173 /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2)174 /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)175 fn migrate_version_notifiers() -> Weight {176 // Proof Size summary in bytes:177 // Measured: `200`178 // Estimated: `11090`179 // Minimum execution time: 16_027_000 picoseconds.180 Weight::from_parts(16_585_000, 11090)181 .saturating_add(T::DbWeight::get().reads(4_u64))182 .saturating_add(T::DbWeight::get().writes(2_u64))183 }184 /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0)185 /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)186 fn already_notified_target() -> Weight {187 // Proof Size summary in bytes:188 // Measured: `207`189 // Estimated: `13572`190 // Minimum execution time: 16_817_000 picoseconds.191 Weight::from_parts(17_137_000, 13572)192 .saturating_add(T::DbWeight::get().reads(5_u64))193 }194 /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)195 /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)196 /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)197 /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)198 /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)199 /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)200 /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)201 /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)202 /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)203 /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)204 /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)205 /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)206 fn notify_current_targets() -> Weight {207 // Proof Size summary in bytes:208 // Measured: `345`209 // Estimated: `6285`210 // Minimum execution time: 24_551_000 picoseconds.211 Weight::from_parts(24_975_000, 6285)212 .saturating_add(T::DbWeight::get().reads(7_u64))213 .saturating_add(T::DbWeight::get().writes(3_u64))214 }215 /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0)216 /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)217 fn notify_target_migration_fail() -> Weight {218 // Proof Size summary in bytes:219 // Measured: `239`220 // Estimated: `8654`221 // Minimum execution time: 8_412_000 picoseconds.222 Weight::from_parts(8_710_000, 8654)223 .saturating_add(T::DbWeight::get().reads(3_u64))224 }225 /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2)226 /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)227 fn migrate_version_notify_targets() -> Weight {228 // Proof Size summary in bytes:229 // Measured: `207`230 // Estimated: `11097`231 // Minimum execution time: 16_427_000 picoseconds.232 Weight::from_parts(16_774_000, 11097)233 .saturating_add(T::DbWeight::get().reads(4_u64))234 .saturating_add(T::DbWeight::get().writes(2_u64))235 }236 /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2)237 /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)238 /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)239 /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)240 /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)241 /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)242 /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)243 /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)244 /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)245 /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)246 /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)247 /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)248 fn migrate_and_notify_old_targets() -> Weight {249 // Proof Size summary in bytes:250 // Measured: `349`251 // Estimated: `11239`252 // Minimum execution time: 30_394_000 picoseconds.253 Weight::from_parts(30_868_000, 11239)254 .saturating_add(T::DbWeight::get().reads(9_u64))255 .saturating_add(T::DbWeight::get().writes(4_u64))256 }257258 fn transfer_assets() -> Weight {259 // TODO!260 Self::send()261 }262263 fn new_query() -> Weight {264 // TODO!265 Self::send()266 }267268 fn take_response() -> Weight {269 // TODO!270 Self::send()271 }272273 fn claim_assets() -> Weight {274 // TODO!275 Self::send()276 }277}278