Handle already discarded packets in gpu sigverify path (#22680)

This commit is contained in:
sakridge
2022-01-24 05:35:47 -08:00
committed by GitHub
parent 7569f282c6
commit 2e56c59bcb
8 changed files with 193 additions and 65 deletions

View File

@ -35,7 +35,10 @@ use {
cell::RefCell,
cmp,
ffi::OsStr,
sync::{Arc, Mutex, Once},
sync::{
atomic::{AtomicUsize, Ordering},
Arc, Mutex, Once,
},
thread::{self, JoinHandle},
time::Instant,
},
@ -497,11 +500,13 @@ pub fn start_verify_transactions(
})
.flatten()
.collect::<Vec<_>>();
let total_packets = AtomicUsize::new(0);
let mut packet_batches = entry_txs
.par_iter()
.chunks(PACKETS_PER_BATCH)
.map(|slice| {
let vec_size = slice.len();
total_packets.fetch_add(vec_size, Ordering::Relaxed);
let mut packet_batch = PacketBatch::new_with_recycler(
verify_recyclers.packet_recycler.clone(),
vec_size,
@ -544,6 +549,7 @@ pub fn start_verify_transactions(
&tx_offset_recycler,
&out_recycler,
false,
total_packets.load(Ordering::Relaxed),
);
let verified = packet_batches
.iter()