pub struct RdmaMemoryRegionView {
pub id: usize,
pub virtual_addr: usize,
pub rdma_addr: usize,
pub size: usize,
pub lkey: u32,
pub rkey: u32,
}Expand description
Represents a view of a memory region that can be registered with an RDMA device.
This is a ‘view’ of a registered Memory Region, allowing multiple views into a single large MR registration. This is commonly used with PyTorch’s caching allocator, which reserves large memory blocks and provides different data pointers into that space.
§Example
PyTorch Caching Allocator creates a 16GB segment at virtual address 0x01000000.
The underlying Memory Region registers 16GB but at RDMA address 0x0.
To access virtual address 0x01100000, we return a view at RDMA address 0x100000.
§Safety
The caller must ensure the memory remains valid and is not freed, moved, or overwritten while RDMA operations are in progress.
Fields§
§id: usize§virtual_addr: usizeVirtual address in the process address space. This is the pointer/address as seen by the local process.
rdma_addr: usizeMemory address assigned after Memory Region (MR) registration. This is the address may be offset a base MR addr.
size: usize§lkey: u32§rkey: u32Implementations§
Trait Implementations§
Source§impl Clone for RdmaMemoryRegionView
impl Clone for RdmaMemoryRegionView
Source§fn clone(&self) -> RdmaMemoryRegionView
fn clone(&self) -> RdmaMemoryRegionView
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RdmaMemoryRegionView
impl Debug for RdmaMemoryRegionView
Source§impl<'de> Deserialize<'de> for RdmaMemoryRegionView
impl<'de> Deserialize<'de> for RdmaMemoryRegionView
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Hash for RdmaMemoryRegionView
impl Hash for RdmaMemoryRegionView
Source§impl PartialEq for RdmaMemoryRegionView
impl PartialEq for RdmaMemoryRegionView
Source§impl Serialize for RdmaMemoryRegionView
impl Serialize for RdmaMemoryRegionView
impl Copy for RdmaMemoryRegionView
impl Eq for RdmaMemoryRegionView
impl Send for RdmaMemoryRegionView
impl StructuralPartialEq for RdmaMemoryRegionView
impl Sync for RdmaMemoryRegionView
Auto Trait Implementations§
impl Freeze for RdmaMemoryRegionView
impl RefUnwindSafe for RdmaMemoryRegionView
impl Unpin for RdmaMemoryRegionView
impl UnwindSafe for RdmaMemoryRegionView
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<A, M> Handler<IndexedErasedUnbound<M>> for A
impl<A, M> Handler<IndexedErasedUnbound<M>> for A
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more