pub struct IbvMemoryRegionView {
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 IbvMemoryRegionView
impl Clone for IbvMemoryRegionView
Source§fn clone(&self) -> IbvMemoryRegionView
fn clone(&self) -> IbvMemoryRegionView
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IbvMemoryRegionView
impl Debug for IbvMemoryRegionView
Source§impl<'de> Deserialize<'de> for IbvMemoryRegionView
impl<'de> Deserialize<'de> for IbvMemoryRegionView
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 IbvMemoryRegionView
impl Hash for IbvMemoryRegionView
Source§impl PartialEq for IbvMemoryRegionView
impl PartialEq for IbvMemoryRegionView
Source§impl Serialize for IbvMemoryRegionView
impl Serialize for IbvMemoryRegionView
impl Copy for IbvMemoryRegionView
impl Eq for IbvMemoryRegionView
impl Send for IbvMemoryRegionView
impl StructuralPartialEq for IbvMemoryRegionView
impl Sync for IbvMemoryRegionView
Auto Trait Implementations§
impl Freeze for IbvMemoryRegionView
impl RefUnwindSafe for IbvMemoryRegionView
impl Unpin for IbvMemoryRegionView
impl UnwindSafe for IbvMemoryRegionView
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
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].