![]() |
Realm
A distributed, event-based tasking library
|
#include <mem_impl.h>
Classes | |
| struct | PendingAlloc |
| struct | PendingRelease |
Public Types | |
| using | RangeAllocator = BasicRangeAllocator< size_t, RegionInstance > |
Public Types inherited from Realm::MemoryImpl | |
| enum | MemoryKind { MKIND_SYSMEM , MKIND_GLOBAL , MKIND_RDMA , MKIND_REMOTE , MKIND_GPUFB , MKIND_MANAGED , MKIND_ZEROCOPY , MKIND_DISK , MKIND_FILE } |
| enum | AllocationResult { ALLOC_INSTANT_SUCCESS , ALLOC_INSTANT_FAILURE , ALLOC_DEFERRED , ALLOC_EVENTUAL_SUCCESS , ALLOC_EVENTUAL_FAILURE , ALLOC_CANCELLED } |
Public Member Functions | |
| LocalManagedMemory (RuntimeImpl *_runtime_impl, Memory _me, size_t _size, MemoryKind _kind, size_t _alignment, Memory::Kind _lowlevel_kind, NetworkSegment *_segment) | |
| virtual | ~LocalManagedMemory (void) |
| virtual AllocationResult | allocate_storage_deferrable (RegionInstanceImpl *inst, bool need_alloc_result, Event precondition) |
| virtual void | release_storage_deferrable (RegionInstanceImpl *inst, Event precondition) |
| virtual AllocationResult | reuse_storage_deferrable (RegionInstanceImpl *old_inst, std::vector< RegionInstanceImpl * > &new_insts, Event precondition) |
| virtual AllocationResult | allocate_storage_immediate (RegionInstanceImpl *inst, bool need_alloc_result, bool poisoned, TimeLimit work_until) |
| virtual void | release_storage_immediate (RegionInstanceImpl *inst, bool poisoned, TimeLimit work_until) |
| virtual AllocationResult | reuse_storage_immediate (RegionInstanceImpl *old_inst, std::vector< RegionInstanceImpl * > &new_insts, bool poisoned, TimeLimit work_until) |
Public Member Functions inherited from Realm::MemoryImpl | |
| MemoryImpl (RuntimeImpl *_runtime_impl, Memory _me, size_t _size, MemoryKind _kind, Memory::Kind _lowlevel_kind, NetworkSegment *_segment) | |
| virtual | ~MemoryImpl (void) |
| RegionInstanceImpl * | get_instance (ID id) |
| RegionInstanceImpl * | new_instance (const ProfilingRequestSet &prs) |
| void | release_instance (RegionInstance inst) |
| virtual void | reuse_allocated_range (RegionInstanceImpl *old_inst, std::vector< RegionInstanceImpl * > &new_insts) |
| virtual bool | attempt_register_external_resource (RegionInstanceImpl *inst, size_t &inst_offset) |
| virtual void | unregister_external_resource (RegionInstanceImpl *inst) |
| virtual ExternalInstanceResource * | generate_resource_info (RegionInstanceImpl *inst, const IndexSpaceGeneric *subspace, span< const FieldID > fields, bool read_only) |
| virtual void | get_bytes (off_t offset, void *dst, size_t size)=0 |
| virtual void | put_bytes (off_t offset, const void *src, size_t size)=0 |
| virtual void * | get_direct_ptr (off_t offset, size_t size)=0 |
| virtual void * | get_inst_ptr (RegionInstanceImpl *inst, off_t offset, size_t size) |
| const ByteArray * | get_rdma_info (NetworkModule *network) const |
| virtual bool | get_local_addr (off_t offset, LocalAddress &local_addr) |
| virtual bool | get_remote_addr (off_t offset, RemoteAddress &remote_addr) |
| NetworkSegment * | get_network_segment () |
| Memory::Kind | get_kind (void) const |
| template<typename T > | |
| T * | find_module_specific () |
| template<typename T > | |
| const T * | find_module_specific () const |
| void | add_module_specific (ModuleSpecificInfo *info) |
| RuntimeImpl * | get_runtime_impl () const |
Public Attributes | |
| size_t | alignment |
| Mutex | allocator_mutex |
| RangeAllocator | current_allocator |
| RangeAllocator | future_allocator |
| RangeAllocator | release_allocator |
| unsigned | cur_release_seqid |
| std::deque< PendingAlloc > | pending_allocs |
| std::deque< PendingRelease > | pending_releases |
| ProfilingGauges::AbsoluteGauge< size_t > | usage |
| ProfilingGauges::AbsoluteGauge< size_t > | peak_usage |
| ProfilingGauges::AbsoluteGauge< size_t > | peak_footprint |
Public Attributes inherited from Realm::MemoryImpl | |
| Memory | me {REALM_NO_MEM} |
| size_t | size {0} |
| MemoryKind | kind |
| Memory::Kind | lowlevel_kind {Memory::Kind::NO_MEMKIND} |
| NetworkSegment * | segment {nullptr} |
| ModuleSpecificInfo * | module_specific {nullptr} |
| std::map< NodeID, InstanceList * > | instances_by_creator |
| Mutex | instance_map_mutex |
| InstanceList | local_instances |
Protected Member Functions | |
| AllocationResult | attempt_deferrable_allocation (RegionInstanceImpl *inst, size_t bytes, size_t alignment, size_t &inst_offset) |
| bool | attempt_release_reordering (std::vector< std::pair< RegionInstanceImpl *, size_t > > &successful_allocs) |
| void | remove_pending_release (RegionInstanceImpl *inst, std::vector< RegionInstanceImpl * > &failed_allocs) |
Additional Inherited Members | |
Static Public Member Functions inherited from Realm::MemoryImpl | |
| static Memory::Kind | get_memory_kind (const RuntimeImpl *runtime_impl, Memory memory) |
| static size_t | get_memory_size (const RuntimeImpl *runtime_impl, Memory memory) |
Protected Attributes inherited from Realm::MemoryImpl | |
| RuntimeImpl * | runtime_impl {nullptr} |
| using Realm::LocalManagedMemory::RangeAllocator = BasicRangeAllocator<size_t, RegionInstance> |
| Realm::LocalManagedMemory::LocalManagedMemory | ( | RuntimeImpl * | _runtime_impl, |
| Memory | _me, | ||
| size_t | _size, | ||
| MemoryKind | _kind, | ||
| size_t | _alignment, | ||
| Memory::Kind | _lowlevel_kind, | ||
| NetworkSegment * | _segment | ||
| ) |
|
virtual |
|
virtual |
Reimplemented from Realm::MemoryImpl.
|
virtual |
Implements Realm::MemoryImpl.
|
protected |
|
protected |
|
virtual |
Reimplemented from Realm::MemoryImpl.
|
virtual |
Implements Realm::MemoryImpl.
|
protected |
|
virtual |
Reimplemented from Realm::MemoryImpl.
|
virtual |
Reimplemented from Realm::MemoryImpl.
| size_t Realm::LocalManagedMemory::alignment |
| Mutex Realm::LocalManagedMemory::allocator_mutex |
| unsigned Realm::LocalManagedMemory::cur_release_seqid |
| RangeAllocator Realm::LocalManagedMemory::current_allocator |
| RangeAllocator Realm::LocalManagedMemory::future_allocator |
| ProfilingGauges::AbsoluteGauge<size_t> Realm::LocalManagedMemory::peak_footprint |
| ProfilingGauges::AbsoluteGauge<size_t> Realm::LocalManagedMemory::peak_usage |
| std::deque<PendingAlloc> Realm::LocalManagedMemory::pending_allocs |
| std::deque<PendingRelease> Realm::LocalManagedMemory::pending_releases |
| RangeAllocator Realm::LocalManagedMemory::release_allocator |
| ProfilingGauges::AbsoluteGauge<size_t> Realm::LocalManagedMemory::usage |