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: usize
Virtual address in the process address space. This is the pointer/address as seen by the local process.
rdma_addr: usize
Memory address assigned after Memory Region (MR) registration. This is the address may be offset a base MR addr.
size: usize
§lkey: u32
§rkey: u32
Implementations§
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