Page-pin packet memory for cuda (#4250)
* Page-pin packet memory for cuda Bring back recyclers and pin offset buffers * Add packet recycler to streamer * Add set_pinnable to sigverify vecs to pin them * Add packets reset test * Add test for recycler and reduce the gc lock critical section * Add comments/tests to cuda_runtime * Add recycler to recv_blobs path. * Add trace/names for debug and PacketsRecycler to bench-streamer * Predict realloc and unpin beforehand. * Add helper to reserve and pin * Cap buffered packets length * Call cuda wrapper functions
This commit is contained in:
@@ -5,6 +5,7 @@ use crate::cluster_info::{ClusterInfo, Node, FULLNODE_PORT_RANGE};
|
||||
use crate::contact_info::ContactInfo;
|
||||
use crate::gossip_service::GossipService;
|
||||
use crate::packet::to_shared_blob;
|
||||
use crate::recycler::Recycler;
|
||||
use crate::repair_service::{RepairService, RepairSlotRange, RepairStrategy};
|
||||
use crate::result::{Error, Result};
|
||||
use crate::service::Service;
|
||||
@@ -121,7 +122,14 @@ fn create_request_processor(
|
||||
let (s_reader, r_reader) = channel();
|
||||
let (s_responder, r_responder) = channel();
|
||||
let storage_socket = Arc::new(socket);
|
||||
let t_receiver = receiver(storage_socket.clone(), exit, s_reader);
|
||||
let recycler = Recycler::default();
|
||||
let t_receiver = receiver(
|
||||
storage_socket.clone(),
|
||||
exit,
|
||||
s_reader,
|
||||
recycler,
|
||||
"replicator",
|
||||
);
|
||||
thread_handles.push(t_receiver);
|
||||
|
||||
let t_responder = responder("replicator-responder", storage_socket.clone(), r_responder);
|
||||
|
Reference in New Issue
Block a user