From f3c6c08752e5fbc1b702e91c99eb9ff3fbe748a1 Mon Sep 17 00:00:00 2001 From: steviez Date: Tue, 5 Mar 2024 22:02:04 -0600 Subject: [PATCH] Give SigVerify and ShredFetch threads unique names (#98) - solTvuFetchPmod ==> solTvuPktMod + solTvuRepPktMod - solSigVerifier ==> solSigVerTpu + solSigVerTpuVot --- core/benches/sigverify_stage.rs | 2 +- core/src/shred_fetch_stage.rs | 5 ++++- core/src/sigverify_stage.rs | 23 +++++++++-------------- core/src/tpu.rs | 9 +++++++-- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/core/benches/sigverify_stage.rs b/core/benches/sigverify_stage.rs index 70f33020dd..7013f718e4 100644 --- a/core/benches/sigverify_stage.rs +++ b/core/benches/sigverify_stage.rs @@ -160,7 +160,7 @@ fn bench_sigverify_stage(bencher: &mut Bencher, use_same_tx: bool) { let (packet_s, packet_r) = unbounded(); let (verified_s, verified_r) = BankingTracer::channel_for_test(); let verifier = TransactionSigVerifier::new(verified_s); - let stage = SigVerifyStage::new(packet_r, verifier, "bench"); + let stage = SigVerifyStage::new(packet_r, verifier, "solSigVerBench", "bench"); bencher.iter(move || { let now = Instant::now(); diff --git a/core/src/shred_fetch_stage.rs b/core/src/shred_fetch_stage.rs index 39cc193ada..84f1520e64 100644 --- a/core/src/shred_fetch_stage.rs +++ b/core/src/shred_fetch_stage.rs @@ -148,6 +148,7 @@ impl ShredFetchStage { #[allow(clippy::too_many_arguments)] fn packet_modifier( receiver_thread_name: &'static str, + modifier_thread_name: &'static str, sockets: Vec>, exit: Arc, sender: Sender, @@ -178,7 +179,7 @@ impl ShredFetchStage { }) .collect(); let modifier_hdl = Builder::new() - .name("solTvuFetchPMod".to_string()) + .name(modifier_thread_name.to_string()) .spawn(move || { let repair_context = repair_context .as_ref() @@ -215,6 +216,7 @@ impl ShredFetchStage { let (mut tvu_threads, tvu_filter) = Self::packet_modifier( "solRcvrShred", + "solTvuPktMod", sockets, exit.clone(), sender.clone(), @@ -229,6 +231,7 @@ impl ShredFetchStage { let (repair_receiver, repair_handler) = Self::packet_modifier( "solRcvrShredRep", + "solTvuRepPktMod", vec![repair_socket.clone()], exit.clone(), sender.clone(), diff --git a/core/src/sigverify_stage.rs b/core/src/sigverify_stage.rs index e5e06a3bc7..cde1735611 100644 --- a/core/src/sigverify_stage.rs +++ b/core/src/sigverify_stage.rs @@ -238,9 +238,11 @@ impl SigVerifyStage { pub fn new( packet_receiver: Receiver, verifier: T, - name: &'static str, + thread_name: &'static str, + metrics_name: &'static str, ) -> Self { - let thread_hdl = Self::verifier_services(packet_receiver, verifier, name); + let thread_hdl = + Self::verifier_service(packet_receiver, verifier, thread_name, metrics_name); Self { thread_hdl } } @@ -407,7 +409,8 @@ impl SigVerifyStage { fn verifier_service( packet_receiver: Receiver, mut verifier: T, - name: &'static str, + thread_name: &'static str, + metrics_name: &'static str, ) -> JoinHandle<()> { let mut stats = SigVerifierStats::default(); let mut last_print = Instant::now(); @@ -415,7 +418,7 @@ impl SigVerifyStage { const DEDUPER_FALSE_POSITIVE_RATE: f64 = 0.001; const DEDUPER_NUM_BITS: u64 = 63_999_979; Builder::new() - .name("solSigVerifier".to_string()) + .name(thread_name.to_string()) .spawn(move || { let mut rng = rand::thread_rng(); let mut deduper = Deduper::<2, [u8]>::new(&mut rng, DEDUPER_NUM_BITS); @@ -440,7 +443,7 @@ impl SigVerifyStage { } } if last_print.elapsed().as_secs() > 2 { - stats.report(name); + stats.report(metrics_name); stats = SigVerifierStats::default(); last_print = Instant::now(); } @@ -449,14 +452,6 @@ impl SigVerifyStage { .unwrap() } - fn verifier_services( - packet_receiver: Receiver, - verifier: T, - name: &'static str, - ) -> JoinHandle<()> { - Self::verifier_service(packet_receiver, verifier, name) - } - pub fn join(self) -> thread::Result<()> { self.thread_hdl.join() } @@ -552,7 +547,7 @@ mod tests { let (packet_s, packet_r) = unbounded(); let (verified_s, verified_r) = BankingTracer::channel_for_test(); let verifier = TransactionSigVerifier::new(verified_s); - let stage = SigVerifyStage::new(packet_r, verifier, "test"); + let stage = SigVerifyStage::new(packet_r, verifier, "solSigVerTest", "test"); let now = Instant::now(); let packets_per_batch = 128; diff --git a/core/src/tpu.rs b/core/src/tpu.rs index 0f5431da4e..640caf6454 100644 --- a/core/src/tpu.rs +++ b/core/src/tpu.rs @@ -190,14 +190,19 @@ impl Tpu { let sigverify_stage = { let verifier = TransactionSigVerifier::new(non_vote_sender); - SigVerifyStage::new(packet_receiver, verifier, "tpu-verifier") + SigVerifyStage::new(packet_receiver, verifier, "solSigVerTpu", "tpu-verifier") }; let (tpu_vote_sender, tpu_vote_receiver) = banking_tracer.create_channel_tpu_vote(); let vote_sigverify_stage = { let verifier = TransactionSigVerifier::new_reject_non_vote(tpu_vote_sender); - SigVerifyStage::new(vote_packet_receiver, verifier, "tpu-vote-verifier") + SigVerifyStage::new( + vote_packet_receiver, + verifier, + "solSigVerTpuVot", + "tpu-vote-verifier", + ) }; let (gossip_vote_sender, gossip_vote_receiver) =