mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 01:11:10 +00:00
Refactor PVF preparation memory stats (#6693)
* Refactor PVF preparation memory stats The original purpose of this change was to gate metrics that are unsupported by some systems behind conditional compilation directives (#[cfg]); see https://github.com/paritytech/polkadot/pull/6675#discussion_r1099996209. Then I started doing some random cleanups and simplifications and got a bit carried away. 🙈 The code should be overall tidier than before. Changes: - Don't register unsupported metrics (e.g. `max_rss` on non-Linux systems) - Introduce `PrepareStats` struct as an abstraction over the `Ok` values of `PrepareResult`. It is cleaner, and can be easily modified in the future. - Other small changes * Minor fixes to comments * Fix compile errors * Try to fix some Linux errors * Mep * Fix candidate-validation tests * Update docstring
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::{error::PrepareError, host::PrepareResultSender};
|
||||
use crate::{error::PrepareError, host::PrepareResultSender, prepare::PrepareStats};
|
||||
use always_assert::always;
|
||||
use polkadot_parachain::primitives::ValidationCodeHash;
|
||||
use std::{
|
||||
@@ -101,8 +101,8 @@ pub enum ArtifactState {
|
||||
/// This is updated when we get the heads up for this artifact or when we just discover
|
||||
/// this file.
|
||||
last_time_needed: SystemTime,
|
||||
/// The CPU time that was taken preparing this artifact.
|
||||
cpu_time_elapsed: Duration,
|
||||
/// Stats produced by successful preparation.
|
||||
prepare_stats: PrepareStats,
|
||||
},
|
||||
/// A task to prepare this artifact is scheduled.
|
||||
Preparing {
|
||||
@@ -177,12 +177,12 @@ impl Artifacts {
|
||||
&mut self,
|
||||
artifact_id: ArtifactId,
|
||||
last_time_needed: SystemTime,
|
||||
cpu_time_elapsed: Duration,
|
||||
prepare_stats: PrepareStats,
|
||||
) {
|
||||
// See the precondition.
|
||||
always!(self
|
||||
.artifacts
|
||||
.insert(artifact_id, ArtifactState::Prepared { last_time_needed, cpu_time_elapsed })
|
||||
.insert(artifact_id, ArtifactState::Prepared { last_time_needed, prepare_stats })
|
||||
.is_none());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user