From 5a430c15e2c0470992f6d1dad69717d56adaa366 Mon Sep 17 00:00:00 2001 From: sakridge Date: Thu, 28 Apr 2022 01:16:17 -0700 Subject: [PATCH] Separate sigverify metrics for each verifier (#24744) --- core/benches/sigverify_stage.rs | 2 +- core/src/sigverify_stage.rs | 15 +++++++++------ core/src/tpu.rs | 8 +++++++- core/src/tvu.rs | 1 + 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/core/benches/sigverify_stage.rs b/core/benches/sigverify_stage.rs index 501ed1386b..64df3b1418 100644 --- a/core/benches/sigverify_stage.rs +++ b/core/benches/sigverify_stage.rs @@ -143,7 +143,7 @@ fn bench_sigverify_stage(bencher: &mut Bencher) { let (packet_s, packet_r) = unbounded(); let (verified_s, verified_r) = unbounded(); let verifier = TransactionSigVerifier::default(); - let stage = SigVerifyStage::new(packet_r, verified_s, verifier); + let stage = SigVerifyStage::new(packet_r, verified_s, verifier, "bench"); let use_same_tx = true; bencher.iter(move || { diff --git a/core/src/sigverify_stage.rs b/core/src/sigverify_stage.rs index b138827166..048fad5c65 100644 --- a/core/src/sigverify_stage.rs +++ b/core/src/sigverify_stage.rs @@ -66,9 +66,9 @@ struct SigVerifierStats { } impl SigVerifierStats { - fn report(&self) { + fn report(&self, name: &'static str) { datapoint_info!( - "sigverify_stage-total_verify_time", + name, ( "recv_batches_us_90pct", self.recv_batches_us_hist.percentile(90.0).unwrap_or(0), @@ -195,8 +195,9 @@ impl SigVerifyStage { packet_receiver: find_packet_sender_stake_stage::FindPacketSenderStakeReceiver, verified_sender: Sender>, verifier: T, + name: &'static str, ) -> Self { - let thread_hdl = Self::verifier_services(packet_receiver, verified_sender, verifier); + let thread_hdl = Self::verifier_services(packet_receiver, verified_sender, verifier, name); Self { thread_hdl } } @@ -315,6 +316,7 @@ impl SigVerifyStage { packet_receiver: find_packet_sender_stake_stage::FindPacketSenderStakeReceiver, verified_sender: Sender>, verifier: &T, + name: &'static str, ) -> JoinHandle<()> { let verifier = verifier.clone(); let mut stats = SigVerifierStats::default(); @@ -348,7 +350,7 @@ impl SigVerifyStage { } } if last_print.elapsed().as_secs() > 2 { - stats.report(); + stats.report(name); stats = SigVerifierStats::default(); last_print = Instant::now(); } @@ -361,8 +363,9 @@ impl SigVerifyStage { packet_receiver: find_packet_sender_stake_stage::FindPacketSenderStakeReceiver, verified_sender: Sender>, verifier: T, + name: &'static str, ) -> JoinHandle<()> { - Self::verifier_service(packet_receiver, verified_sender, &verifier) + Self::verifier_service(packet_receiver, verified_sender, &verifier, name) } pub fn join(self) -> thread::Result<()> { @@ -430,7 +433,7 @@ mod tests { let (packet_s, packet_r) = unbounded(); let (verified_s, verified_r) = unbounded(); let verifier = TransactionSigVerifier::default(); - let stage = SigVerifyStage::new(packet_r, verified_s, verifier); + let stage = SigVerifyStage::new(packet_r, verified_s, verifier, "test"); let use_same_tx = true; let now = Instant::now(); diff --git a/core/src/tpu.rs b/core/src/tpu.rs index e12712817f..f40ba7ee18 100644 --- a/core/src/tpu.rs +++ b/core/src/tpu.rs @@ -158,7 +158,12 @@ impl Tpu { let sigverify_stage = { let verifier = TransactionSigVerifier::default(); - SigVerifyStage::new(find_packet_sender_stake_receiver, verified_sender, verifier) + SigVerifyStage::new( + find_packet_sender_stake_receiver, + verified_sender, + verifier, + "tpu-verifier", + ) }; let (verified_tpu_vote_packets_sender, verified_tpu_vote_packets_receiver) = unbounded(); @@ -169,6 +174,7 @@ impl Tpu { vote_find_packet_sender_stake_receiver, verified_tpu_vote_packets_sender, verifier, + "tpu-vote-verifier", ) }; diff --git a/core/src/tvu.rs b/core/src/tvu.rs index 4cd61f9529..80dbe57c81 100644 --- a/core/src/tvu.rs +++ b/core/src/tvu.rs @@ -162,6 +162,7 @@ impl Tvu { fetch_receiver, verified_sender, ShredSigVerifier::new(bank_forks.clone(), leader_schedule_cache.clone()), + "shred-verifier", ); let cluster_slots = Arc::new(ClusterSlots::default());