pub struct RdmaConfig {
pub rails: Vec<(String, u32)>,
pub max_blade_bytes: u64,
pub swap_dir: Option<PathBuf>,
pub swap_cap_bytes: u64,
pub per_kind_swap_cap_bytes: HashMap<u8, u64>,
}Expand description
RDMA rail selection for the blade. One (dev, gid_idx) per CX7 adapter;
a client requests N rails and the peer registers its arena on each so the
client can stripe traffic across both adapters (~1.75x aggregate on GB10).
Fields§
§rails: Vec<(String, u32)>(device, gid_idx) per rail, in link order (rail 0 = .178, 1 = .177).
max_blade_bytes: u64Ceiling on total committed (registered) blade RAM across all
concurrent connections, in bytes. 0 = unlimited (the default).
swap_dir: Option<PathBuf>Directory for NVMe swap files backing paging-mode connections
. None = paging clients are refused (RAM-only). When set, a
paging connection’s RDMA arena becomes a page-cache over an O_DIRECT
swap file here, bounded by swap_cap_bytes.
swap_cap_bytes: u64Disk cap for the paging swap file, in bytes: bounds the on-disk
snapshot count (coldest dropped when full → later GET misses →
recompute). 0 = unbounded. Default 50 GiB (operator sanity limit).
In the multi-arena registry this is the SHARED ceiling carved across
kinds unless a kind has a per_kind_swap_cap_bytes override.
per_kind_swap_cap_bytes: HashMap<u8, u64>Per-PagingKind disk-cap overrides (kind.0 → bytes). When a kind
is present here, its arena gets this FIXED disk budget instead of
carving from the shared swap_cap_bytes remainder — so one kind
(e.g. KV) can’t starve another (e.g. SSM snapshots). 0 = unbounded
for that kind. Set via --swap-cap-gb-<kind>.
Trait Implementations§
Source§impl Clone for RdmaConfig
impl Clone for RdmaConfig
Source§fn clone(&self) -> RdmaConfig
fn clone(&self) -> RdmaConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more