Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Added measured benchmarks for pallet_xcm #1968

Merged
merged 32 commits into from
Dec 13, 2022
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
393a384
Fix
bkontur Dec 7, 2022
38a5f8b
Fix
bkontur Dec 7, 2022
317e1bf
Fixes for transact benchmark
bkontur Dec 7, 2022
52823de
Fixes add pallet_xcm to benchmarks
bkontur Dec 7, 2022
a460dd9
Merge remote-tracking branch 'origin/gav-xcm-v3' into bko-gav-xcm-v3
bkontur Dec 8, 2022
47056cd
Revert remark_with_event
bkontur Dec 8, 2022
ba344bf
Merge remote-tracking branch 'origin/gav-xcm-v3' into bko-gav-xcm-v3
bkontur Dec 8, 2022
e35c329
".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmar…
Dec 8, 2022
d62e8c5
Fixes
bkontur Dec 8, 2022
9aa5042
TMP
bkontur Dec 8, 2022
77657c0
Fix for reserve_asset_deposited
bkontur Dec 8, 2022
f614a7e
".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm
Dec 8, 2022
6287858
Fix
bkontur Dec 8, 2022
80dfab7
".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm
Dec 8, 2022
7bfda25
Fix
bkontur Dec 8, 2022
44dad8d
".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm
Dec 8, 2022
8ddbd0d
Fix westmint
bkontur Dec 8, 2022
d2670bc
".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmar…
Dec 8, 2022
1523742
Fix
bkontur Dec 8, 2022
c1686a9
".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmark…
Dec 8, 2022
9b9e921
".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmar…
Dec 8, 2022
abdb3a2
Merge remote-tracking branch 'origin/gav-xcm-v3' into bko-gav-xcm-v3
bkontur Dec 11, 2022
3ea9f04
Merge branch 'gav-xcm-v3' into bko-gav-xcm-v3
bkontur Dec 11, 2022
8d35b89
".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives …
Dec 11, 2022
8b13dfa
Fix for collectives
bkontur Dec 11, 2022
c73b509
".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pal…
Dec 11, 2022
93cb91e
".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pal…
Dec 11, 2022
5227e17
Fixes for bridge-hubs
bkontur Dec 11, 2022
32b9b86
Merge remote-tracking branch 'origin/gav-xcm-v3' into bko-gav-xcm-v3
bkontur Dec 13, 2022
c5ea372
Fixes - return back Weightless
bkontur Dec 13, 2022
3cdf1d2
Merge remote-tracking branch 'origin/gav-xcm-v3' into bko-gav-xcm-v3
bkontur Dec 13, 2022
b67450b
Fix - removed MigrateToTrackInactive for contracts-rococo
bkontur Dec 13, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pallets/dmp-queue/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ pub mod pallet {
messages_processed: &mut u8,
) -> Weight {
let mut used = Weight::zero();
'page: while page_index.begin_used < page_index.end_used {
while page_index.begin_used < page_index.end_used {
let page = Pages::<T>::take(page_index.begin_used);
for (i, &(sent_at, ref data)) in page.iter().enumerate() {
if *messages_processed >= MAX_MESSAGES_PER_BLOCK {
Expand Down
2 changes: 1 addition & 1 deletion pallets/xcmp-queue/src/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use frame_system::RawOrigin;

benchmarks! {
set_config_with_u32 {}: update_resume_threshold(RawOrigin::Root, 100)
set_config_with_weight {}: update_weight_restrict_decay(RawOrigin::Root, 3_000_000)
set_config_with_weight {}: update_weight_restrict_decay(RawOrigin::Root, Weight::from_ref_time(3_000_000))
}

impl_benchmark_test_suite!(Pallet, crate::mock::new_test_ext(), crate::mock::Test);
5 changes: 3 additions & 2 deletions parachains/runtimes/assets/statemine/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -666,6 +666,7 @@ mod benches {
[pallet_collator_selection, CollatorSelection]
[cumulus_pallet_xcmp_queue, XcmpQueue]
// XCM
[pallet_xcm, PolkadotXcm]
// NOTE: Make sure you point to the individual modules below.
[pallet_xcm_benchmarks::fungible, XcmBalances]
[pallet_xcm_benchmarks::generic, XcmGeneric]
Expand Down Expand Up @@ -853,7 +854,7 @@ impl_runtime_apis! {
impl cumulus_pallet_session_benchmarking::Config for Runtime {}

use xcm::latest::prelude::*;
use xcm_config::KsmLocation;
use xcm_config::{LocalCheckAccount, KsmLocation};
use pallet_xcm_benchmarks::asset_instance_from;

impl pallet_xcm_benchmarks::Config for Runtime {
Expand Down Expand Up @@ -902,7 +903,7 @@ impl_runtime_apis! {
impl pallet_xcm_benchmarks::fungible::Config for Runtime {
type TransactAsset = Balances;

type CheckedAccount = CheckedAccount;
type CheckedAccount = LocalCheckAccount;
type TrustedTeleporter = TrustedTeleporter;

fn get_multi_asset() -> MultiAsset {
Expand Down
1 change: 1 addition & 0 deletions parachains/runtimes/assets/statemine/src/weights/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ pub mod pallet_session;
pub mod pallet_timestamp;
pub mod pallet_uniques;
pub mod pallet_utility;
pub mod pallet_xcm;
pub mod paritydb_weights;
pub mod rocksdb_weights;
pub mod xcm;
Expand Down
117 changes: 117 additions & 0 deletions parachains/runtimes/assets/statemine/src/weights/pallet_xcm.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
// Copyright 2021 Parity Technologies (UK) Ltd.
// This file is part of Cumulus.

// Cumulus is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// Cumulus is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.

//! Autogenerated weights for `pallet_xcm`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2022-12-08, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024

// Executed Command:
// /home/benchbot/cargo_target_dir/production/polkadot-parachain
// benchmark
// pallet
// --steps=50
// --repeat=20
// --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=statemine-dev
// --header=./file_header.txt
// --output=./parachains/runtimes/assets/statemine/src/weights/

#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
#![allow(unused_imports)]

use frame_support::{traits::Get, weights::Weight};
use sp_std::marker::PhantomData;

/// Weight functions for `pallet_xcm`.
pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
fn send() -> Weight {
// Minimum execution time: 25_562 nanoseconds.
Weight::from_ref_time(26_177_000)
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2))
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
fn teleport_assets() -> Weight {
// Minimum execution time: 31_555 nanoseconds.
Weight::from_ref_time(32_297_000)
.saturating_add(T::DbWeight::get().reads(1))
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
fn reserve_transfer_assets() -> Weight {
// Minimum execution time: 24_516 nanoseconds.
Weight::from_ref_time(25_126_000)
.saturating_add(T::DbWeight::get().reads(1))
}
// Storage: Benchmark Override (r:0 w:0)
fn execute() -> Weight {
// Minimum execution time: 18_446_744_073_709_551 nanoseconds.
Weight::from_ref_time(18_446_744_073_709_551_000)
}
// Storage: PolkadotXcm SupportedVersion (r:0 w:1)
fn force_xcm_version() -> Weight {
// Minimum execution time: 14_521 nanoseconds.
Weight::from_ref_time(14_865_000)
.saturating_add(T::DbWeight::get().writes(1))
}
// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1)
fn force_default_xcm_version() -> Weight {
// Minimum execution time: 4_325 nanoseconds.
Weight::from_ref_time(4_578_000)
.saturating_add(T::DbWeight::get().writes(1))
}
// Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
// Storage: PolkadotXcm QueryCounter (r:1 w:1)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
// Storage: PolkadotXcm Queries (r:0 w:1)
fn force_subscribe_version_notify() -> Weight {
// Minimum execution time: 29_836 nanoseconds.
Weight::from_ref_time(30_213_000)
.saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(5))
}
// Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
// Storage: PolkadotXcm Queries (r:0 w:1)
fn force_unsubscribe_version_notify() -> Weight {
// Minimum execution time: 31_333 nanoseconds.
Weight::from_ref_time(31_808_000)
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4))
}
}
3 changes: 2 additions & 1 deletion parachains/runtimes/assets/statemine/src/weights/xcm/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ impl<Call> XcmWeightInfo<Call> for StatemineXcmWeight<Call> {
}
// Currently there is no trusted reserve
fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight {
Weight::MAX
// TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974
Weight::from_ref_time(1_000_000_000 as u64)
}
fn receive_teleported_asset(assets: &MultiAssets) -> Weight {
assets.weigh_multi_assets(XcmFungibleWeight::<Runtime>::receive_teleported_asset())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,23 @@
//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2022-09-30, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! DATE: 2022-12-08, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024

// Executed Command:
// ./artifacts/polkadot-parachain
// /home/benchbot/cargo_target_dir/production/polkadot-parachain
// benchmark
// pallet
// --template=./templates/xcm-bench-template.hbs
// --chain=statemine-dev
// --steps=50
// --repeat=20
// --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
// --pallet=pallet_xcm_benchmarks::generic
// --extrinsic=*
// --steps=50
// --repeat=20
// --json
// --chain=statemine-dev
// --header=./file_header.txt
// --template=./templates/xcm-bench-template.hbs
// --output=./parachains/runtimes/assets/statemine/src/weights/xcm/
Expand All @@ -56,38 +56,40 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_holding() -> Weight {
Weight::from_ref_time(1_303_495_000 as u64)
Weight::from_ref_time(1_007_454_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn buy_execution() -> Weight {
Weight::from_ref_time(8_667_000 as u64)
Weight::from_ref_time(8_069_000 as u64)
}
// Storage: PolkadotXcm Queries (r:1 w:0)
pub(crate) fn query_response() -> Weight {
Weight::from_ref_time(19_292_000 as u64)
Weight::from_ref_time(17_719_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
}
// Storage: Session NextKeys (r:1 w:0)
pub(crate) fn transact() -> Weight {
Weight::from_ref_time(37_996_000 as u64)
Weight::from_ref_time(15_102_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
}
pub(crate) fn refund_surplus() -> Weight {
Weight::from_ref_time(9_076_000 as u64)
Weight::from_ref_time(8_103_000 as u64)
}
pub(crate) fn set_error_handler() -> Weight {
Weight::from_ref_time(6_410_000 as u64)
Weight::from_ref_time(5_803_000 as u64)
}
pub(crate) fn set_appendix() -> Weight {
Weight::from_ref_time(6_412_000 as u64)
Weight::from_ref_time(5_761_000 as u64)
}
pub(crate) fn clear_error() -> Weight {
Weight::from_ref_time(6_311_000 as u64)
Weight::from_ref_time(5_665_000 as u64)
}
pub(crate) fn descend_origin() -> Weight {
Weight::from_ref_time(7_355_000 as u64)
Weight::from_ref_time(6_640_000 as u64)
}
pub(crate) fn clear_origin() -> Weight {
Weight::from_ref_time(6_389_000 as u64)
Weight::from_ref_time(5_832_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
Expand All @@ -96,18 +98,18 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_error() -> Weight {
Weight::from_ref_time(23_020_000 as u64)
Weight::from_ref_time(21_808_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: PolkadotXcm AssetTraps (r:1 w:1)
pub(crate) fn claim_asset() -> Weight {
Weight::from_ref_time(13_613_000 as u64)
Weight::from_ref_time(21_743_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
pub(crate) fn trap() -> Weight {
Weight::from_ref_time(6_457_000 as u64)
Weight::from_ref_time(5_793_000 as u64)
}
// Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
Expand All @@ -116,13 +118,13 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn subscribe_version() -> Weight {
Weight::from_ref_time(31_677_000 as u64)
Weight::from_ref_time(27_736_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(3 as u64))
}
// Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1)
pub(crate) fn unsubscribe_version() -> Weight {
Weight::from_ref_time(9_613_000 as u64)
Weight::from_ref_time(7_913_000 as u64)
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
Expand All @@ -132,21 +134,21 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn initiate_reserve_withdraw() -> Weight {
Weight::from_ref_time(1_588_580_000 as u64)
Weight::from_ref_time(1_181_673_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn burn_asset() -> Weight {
Weight::from_ref_time(497_452_000 as u64)
Weight::from_ref_time(415_651_000 as u64)
}
pub(crate) fn expect_asset() -> Weight {
Weight::from_ref_time(38_502_000 as u64)
Weight::from_ref_time(38_939_000 as u64)
}
pub(crate) fn expect_origin() -> Weight {
Weight::from_ref_time(6_427_000 as u64)
Weight::from_ref_time(5_918_000 as u64)
}
pub(crate) fn expect_error() -> Weight {
Weight::from_ref_time(6_303_000 as u64)
Weight::from_ref_time(5_829_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
Expand All @@ -155,12 +157,12 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn query_pallet() -> Weight {
Weight::from_ref_time(25_510_000 as u64)
Weight::from_ref_time(24_557_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn expect_pallet() -> Weight {
Weight::from_ref_time(7_909_000 as u64)
Weight::from_ref_time(7_407_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
Expand All @@ -169,21 +171,23 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_transact_status() -> Weight {
Weight::from_ref_time(22_949_000 as u64)
Weight::from_ref_time(21_839_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn clear_transact_status() -> Weight {
Weight::from_ref_time(6_491_000 as u64)
Weight::from_ref_time(5_796_000 as u64)
}
pub(crate) fn set_topic() -> Weight {
Weight::from_ref_time(6_527_000 as u64)
Weight::from_ref_time(5_808_000 as u64)
}
pub(crate) fn clear_topic() -> Weight {
Weight::from_ref_time(6_440_000 as u64)
Weight::from_ref_time(5_790_000 as u64)
}
pub(crate) fn set_fees_mode() -> Weight {
Weight::from_ref_time(6_426_000 as u64)
Weight::from_ref_time(5_774_000 as u64)
}
pub(crate) fn unpaid_execution() -> Weight {
Weight::from_ref_time(5_930_000 as u64)
}
pub(crate) fn unpaid_execution() -> Weight { Weight::from_ref_time(3_111_000 as u64) }
}
Loading