|
1 | 1 | #![allow(clippy::arithmetic_side_effects)]
|
2 | 2 | use {
|
| 3 | + agave_banking_stage_ingress_types::BankingPacketBatch, |
| 4 | + assert_matches::assert_matches, |
3 | 5 | clap::{crate_description, crate_name, Arg, ArgEnum, Command},
|
4 | 6 | crossbeam_channel::{unbounded, Receiver},
|
5 | 7 | log::*,
|
6 | 8 | rand::{thread_rng, Rng},
|
7 | 9 | rayon::prelude::*,
|
8 | 10 | solana_client::connection_cache::ConnectionCache,
|
9 | 11 | solana_core::{
|
10 |
| - banking_stage::BankingStage, |
11 |
| - banking_trace::{ |
12 |
| - BankingPacketBatch, BankingTracer, Channels, BANKING_TRACE_DIR_DEFAULT_BYTE_LIMIT, |
13 |
| - }, |
| 12 | + banking_stage::{update_bank_forks_and_poh_recorder_for_new_tpu_bank, BankingStage}, |
| 13 | + banking_trace::{BankingTracer, Channels, BANKING_TRACE_DIR_DEFAULT_BYTE_LIMIT}, |
14 | 14 | validator::BlockProductionMethod,
|
15 | 15 | },
|
16 | 16 | solana_gossip::cluster_info::{ClusterInfo, Node},
|
@@ -349,7 +349,7 @@ fn main() {
|
349 | 349 | let (replay_vote_sender, _replay_vote_receiver) = unbounded();
|
350 | 350 | let bank0 = Bank::new_for_benches(&genesis_config);
|
351 | 351 | let bank_forks = BankForks::new_rw_arc(bank0);
|
352 |
| - let mut bank = bank_forks.read().unwrap().working_bank(); |
| 352 | + let mut bank = bank_forks.read().unwrap().working_bank_with_scheduler(); |
353 | 353 |
|
354 | 354 | // set cost tracker limits to MAX so it will not filter out TXs
|
355 | 355 | bank.write_cost_tracker()
|
@@ -552,21 +552,24 @@ fn main() {
|
552 | 552 | poh_time.stop();
|
553 | 553 |
|
554 | 554 | let mut new_bank_time = Measure::start("new_bank");
|
| 555 | + if let Some((result, _timings)) = bank.wait_for_completed_scheduler() { |
| 556 | + assert_matches!(result, Ok(_)); |
| 557 | + } |
555 | 558 | let new_slot = bank.slot() + 1;
|
556 |
| - let new_bank = Bank::new_from_parent(bank, &collector, new_slot); |
| 559 | + let new_bank = Bank::new_from_parent(bank.clone(), &collector, new_slot); |
557 | 560 | new_bank_time.stop();
|
558 | 561 |
|
559 | 562 | let mut insert_time = Measure::start("insert_time");
|
560 |
| - bank_forks.write().unwrap().insert(new_bank); |
561 |
| - bank = bank_forks.read().unwrap().working_bank(); |
| 563 | + assert_matches!(poh_recorder.read().unwrap().bank(), None); |
| 564 | + update_bank_forks_and_poh_recorder_for_new_tpu_bank( |
| 565 | + &bank_forks, |
| 566 | + &poh_recorder, |
| 567 | + new_bank, |
| 568 | + false, |
| 569 | + ); |
| 570 | + bank = bank_forks.read().unwrap().working_bank_with_scheduler(); |
| 571 | + assert_matches!(poh_recorder.read().unwrap().bank(), Some(_)); |
562 | 572 | insert_time.stop();
|
563 |
| - |
564 |
| - assert!(poh_recorder.read().unwrap().bank().is_none()); |
565 |
| - poh_recorder |
566 |
| - .write() |
567 |
| - .unwrap() |
568 |
| - .set_bank_for_test(bank.clone()); |
569 |
| - assert!(poh_recorder.read().unwrap().bank().is_some()); |
570 | 573 | debug!(
|
571 | 574 | "new_bank_time: {}us insert_time: {}us poh_time: {}us",
|
572 | 575 | new_bank_time.as_us(),
|
|
0 commit comments