We saw that the Cumulus pallet xcmp-queue has a configuration for ReservedXcmpWeight https://github.com/paritytech/cumulus/blob/polkadot-v0.9.26/pallets/parachain-system/src/lib.rs#L174-L175 The xcmp-queue seems to be processed before any extrinsics in setValidationData, so I'm wondering if no weight of this ReservedXcmpWeight is used for actualy xcmp messages, will it flow over to be used for extrinsics execution or does it remain unused?

Thanks for the attention.

1 Answer 1


As per my understanding ReservedXcmpWeight seems to be more of a cap in how much weight one block will be able to be filled by XCMP message execution than anything else. Meaning that if no messages need to be served/executed for block X, then all that available block space is there to be filled by other executions.

Notice that there is a similar set up for DMP messages.

I would recommend reading service_xcmp_queue documentation for some more insight on, and I quote:

Service the incoming XCMP message queue attempting to execute up to max_weight execution weight of messages

  • Yeah that was my intuition, thanks for the pointer. In that case I'm wondering what would happen if the XCMP and DMP limits are hit, which are typically MAXIMUM_BLOCK_WEIGHT / 4. Wouldn't the runtime then think it has NORMAL_DISPATCH_RATION amount of weight, usually 70%-75% of the MAXIMUM_BLOCK_WEIGHT, when it only has 50% remaining ? Commented Dec 7, 2022 at 10:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.