Skip to content

Commit 8f9d3d4

Browse files
authored
Apply more unified scheduler related core cleanups (#4453)
* Restore frozen_abi on TimedTracedEvent * Reorder some setup for unified scheduler * Remove redundant assert_matches dev dep
1 parent 11a84a4 commit 8f9d3d4

File tree

6 files changed

+40
-34
lines changed

6 files changed

+40
-34
lines changed

banking-bench/src/main.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,13 @@ fn main() {
453453
BANKING_TRACE_DIR_DEFAULT_BYTE_LIMIT,
454454
)))
455455
.unwrap();
456+
let prioritization_fee_cache = Arc::new(PrioritizationFeeCache::new(0u64));
457+
let cluster_info = {
458+
let keypair = Arc::new(Keypair::new());
459+
let node = Node::new_localhost_with_pubkey(&keypair.pubkey());
460+
ClusterInfo::new(node.info, keypair, SocketAddrSpace::Unspecified)
461+
};
462+
let cluster_info = Arc::new(cluster_info);
456463
let Channels {
457464
non_vote_sender,
458465
non_vote_receiver,
@@ -461,12 +468,6 @@ fn main() {
461468
gossip_vote_sender,
462469
gossip_vote_receiver,
463470
} = banking_tracer.create_channels(false);
464-
let cluster_info = {
465-
let keypair = Arc::new(Keypair::new());
466-
let node = Node::new_localhost_with_pubkey(&keypair.pubkey());
467-
ClusterInfo::new(node.info, keypair, SocketAddrSpace::Unspecified)
468-
};
469-
let cluster_info = Arc::new(cluster_info);
470471
let tpu_disable_quic = matches.is_present("tpu_disable_quic");
471472
let connection_cache = if tpu_disable_quic {
472473
ConnectionCache::with_udp(
@@ -493,7 +494,7 @@ fn main() {
493494
None,
494495
Arc::new(connection_cache),
495496
bank_forks.clone(),
496-
&Arc::new(PrioritizationFeeCache::new(0u64)),
497+
&prioritization_fee_cache,
497498
false,
498499
);
499500

core/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ tokio = { workspace = true, features = ["full"] }
107107
trees = { workspace = true }
108108

109109
[dev-dependencies]
110-
assert_matches = { workspace = true }
111110
fs_extra = { workspace = true }
112111
serde_json = { workspace = true }
113112
serial_test = { workspace = true }

core/src/banking_simulation.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,10 @@ impl BankingSimulator {
759759
BANKING_TRACE_DIR_DEFAULT_BYTE_LIMIT,
760760
);
761761

762+
// Create a partially-dummy ClusterInfo for the banking stage.
763+
let cluster_info_for_banking = Arc::new(DummyClusterInfo {
764+
id: simulated_leader.into(),
765+
});
762766
let Channels {
763767
non_vote_sender,
764768
non_vote_receiver,
@@ -781,7 +785,7 @@ impl BankingSimulator {
781785
// We only need it to write shreds into the blockstore and it seems given ClusterInfo is
782786
// irrelevant for the neccesary minimum work for this simulation.
783787
let random_keypair = Arc::new(Keypair::new());
784-
let cluster_info = Arc::new(ClusterInfo::new(
788+
let cluster_info_for_broadcast = Arc::new(ClusterInfo::new(
785789
Node::new_localhost_with_pubkey(&random_keypair.pubkey()).info,
786790
random_keypair,
787791
SocketAddrSpace::Unspecified,
@@ -790,7 +794,7 @@ impl BankingSimulator {
790794
// inserting produced shreds into the blockstore.
791795
let broadcast_stage = BroadcastStageType::Standard.new_broadcast_stage(
792796
vec![bind_to_localhost().unwrap()],
793-
cluster_info.clone(),
797+
cluster_info_for_broadcast.clone(),
794798
entry_receiver,
795799
retransmit_slots_receiver,
796800
exit.clone(),
@@ -801,15 +805,11 @@ impl BankingSimulator {
801805
);
802806

803807
info!("Start banking stage!...");
804-
// Create a partially-dummy ClusterInfo for the banking stage.
805-
let cluster_info = Arc::new(DummyClusterInfo {
806-
id: simulated_leader.into(),
807-
});
808808
let prioritization_fee_cache = &Arc::new(PrioritizationFeeCache::new(0u64));
809809
let banking_stage = BankingStage::new_num_threads(
810810
block_production_method.clone(),
811811
transaction_struct.clone(),
812-
&cluster_info,
812+
&cluster_info_for_banking,
813813
&poh_recorder,
814814
non_vote_receiver,
815815
tpu_vote_receiver,

core/src/banking_trace.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ pub struct BankingTracer {
5959
active_tracer: Option<ActiveTracer>,
6060
}
6161

62+
#[cfg_attr(
63+
feature = "frozen-abi",
64+
derive(AbiExample),
65+
frozen_abi(digest = "DAdZnX6ijBWaxKAyksq4nJa6PAZqT4RShZqLWTtNvyAM")
66+
)]
6267
#[derive(Serialize, Deserialize, Debug)]
6368
pub struct TimedTracedEvent(pub std::time::SystemTime, pub TracedEvent);
6469

core/src/tpu.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub use solana_streamer::quic::DEFAULT_MAX_QUIC_CONNECTIONS_PER_PEER as MAX_QUIC
1111
use {
1212
crate::{
1313
banking_stage::BankingStage,
14-
banking_trace::{BankingTracer, Channels, TracerThread},
14+
banking_trace::{Channels, TracerThread},
1515
cluster_info_vote_listener::{
1616
ClusterInfoVoteListener, DuplicateConfirmedSlotsSender, GossipVerifiedVoteHashSender,
1717
VerifiedVoteSender, VoteTracker,
@@ -112,7 +112,7 @@ impl Tpu {
112112
log_messages_bytes_limit: Option<usize>,
113113
staked_nodes: &Arc<RwLock<StakedNodes>>,
114114
shared_staked_nodes_overrides: Arc<RwLock<HashMap<Pubkey, u64>>>,
115-
banking_tracer: Arc<BankingTracer>,
115+
banking_tracer_channels: Channels,
116116
tracer_thread_hdl: TracerThread,
117117
tpu_enable_udp: bool,
118118
tpu_quic_server_config: QuicServerParams,
@@ -166,7 +166,7 @@ impl Tpu {
166166
tpu_vote_receiver,
167167
gossip_vote_sender,
168168
gossip_vote_receiver,
169-
} = banking_tracer.create_channels(false);
169+
} = banking_tracer_channels;
170170

171171
// Streamer for Votes:
172172
let SpawnServerResult {

core/src/validator.rs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,22 @@ impl Validator {
967967
};
968968
let poh_recorder = Arc::new(RwLock::new(poh_recorder));
969969

970+
let (banking_tracer, tracer_thread) =
971+
BankingTracer::new((config.banking_trace_dir_byte_limit > 0).then_some((
972+
&blockstore.banking_trace_path(),
973+
exit.clone(),
974+
config.banking_trace_dir_byte_limit,
975+
)))?;
976+
if banking_tracer.is_enabled() {
977+
info!(
978+
"Enabled banking trace (dir_byte_limit: {})",
979+
config.banking_trace_dir_byte_limit
980+
);
981+
} else {
982+
info!("Disabled banking trace");
983+
}
984+
let banking_tracer_channels = banking_tracer.create_channels(false);
985+
970986
match &config.block_verification_method {
971987
BlockVerificationMethod::BlockstoreProcessor => {
972988
info!("no scheduler pool is installed for block verification...");
@@ -1328,21 +1344,6 @@ impl Validator {
13281344
let (gossip_verified_vote_hash_sender, gossip_verified_vote_hash_receiver) = unbounded();
13291345
let (duplicate_confirmed_slot_sender, duplicate_confirmed_slots_receiver) = unbounded();
13301346

1331-
let (banking_tracer, tracer_thread) =
1332-
BankingTracer::new((config.banking_trace_dir_byte_limit > 0).then_some((
1333-
&blockstore.banking_trace_path(),
1334-
exit.clone(),
1335-
config.banking_trace_dir_byte_limit,
1336-
)))?;
1337-
if banking_tracer.is_enabled() {
1338-
info!(
1339-
"Enabled banking trace (dir_byte_limit: {})",
1340-
config.banking_trace_dir_byte_limit
1341-
);
1342-
} else {
1343-
info!("Disabled banking trace");
1344-
}
1345-
13461347
let entry_notification_sender = entry_notifier_service
13471348
.as_ref()
13481349
.map(|service| service.sender_cloned());
@@ -1584,7 +1585,7 @@ impl Validator {
15841585
config.runtime_config.log_messages_bytes_limit,
15851586
&staked_nodes,
15861587
config.staked_nodes_overrides.clone(),
1587-
banking_tracer,
1588+
banking_tracer_channels,
15881589
tracer_thread,
15891590
tpu_enable_udp,
15901591
tpu_quic_server_config,

0 commit comments

Comments
 (0)