Memory management functionality. More...
Classes | |
| class | ThreadAwarePrivateHeap |
| Per-thread heaps using Galois thread aware construct. More... | |
| class | LockedHeap |
| Apply a lock to a heap. More... | |
| class | ZeroOut |
| class | AddHeader |
| Add a header to objects. More... | |
| class | OwnerTaggedHeap |
| Allow looking up parent heap pointers. More... | |
| class | FreeListHeap |
| Maintain a freelist. More... | |
| class | SelfLockFreeListHeap |
| Maintain a freelist using a lock which doesn't cover SourceHeap. More... | |
| class | BlockAlloc |
| class | SimpleBumpPtr |
| This implements a bump pointer though chunks of memory. More... | |
| class | SimpleBumpPtrWithMallocFallback |
| This implements a bump pointer though chunks of memory that falls back to malloc if the source heap cannot accommodate an allocation. More... | |
| class | SystemBaseAlloc |
| This is the base source of memory for all allocators. More... | |
| class | SizedAllocatorFactory |
| class | FixedSizeAllocator |
| class | FSBGaloisAllocator< void > |
| class | FSBGaloisAllocator |
| class | ExternRefGaloisAllocator< void, AllocTy > |
| class | ExternRefGaloisAllocator |
Functions | |
| void * | pageAlloc () |
| void | pageFree (void *) |
| void | pagePreAlloc (int numpages) |
| Preallocate numpages large pages for each thread. | |
| void | pageIn (void *buf, size_t len) |
| Forces the given block to be paged into physical memory. | |
| int | numPageAllocTotal () |
| Returns total large pages allocated by Galois memory management subsystem. | |
| int | numPageAllocForThread (unsigned tid) |
| Returns total large pages allocated for thread by Galois memory management subsystem. | |
| int | numNumaAllocForNode (unsigned nodeid) |
| Returns total small pages allocated by OS on a NUMA node. | |
| int | numNumaNodes () |
| Returns number of NUMA nodes on machine. | |
| void * | largeInterleavedAlloc (size_t bytes, bool full=true) |
| Allocates memory interleaved across NUMA nodes. | |
| void | largeInterleavedFree (void *mem, size_t bytes) |
| Frees memory allocated by largeInterleavedAlloc(). | |
| void * | largeAlloc (size_t bytes, bool preFault=true) |
| Allocates a large block of memory. | |
| void | largeFree (void *mem, size_t bytes) |
| Frees memory allocated by largeAlloc(). | |
| void | printInterleavedStats (int minPages=16 *1024) |
| Print lines from /proc/pid/numa_maps that contain at least n small pages. | |
Variables | |
| const size_t | smallPageSize = 4*1024 |
| const size_t | pageSize = 2*1024*1024 |
Memory management functionality.
| void * Galois::Runtime::MM::largeAlloc | ( | size_t | bytes, | |
| bool | preFault = true | |||
| ) |
Allocates a large block of memory.
| void Galois::Runtime::MM::largeFree | ( | void * | mem, | |
| size_t | bytes | |||
| ) |
Frees memory allocated by largeAlloc().
| void * Galois::Runtime::MM::largeInterleavedAlloc | ( | size_t | bytes, | |
| bool | full = true | |||
| ) |
Allocates memory interleaved across NUMA nodes.
If full, allocate across all NUMA nodes; otherwise, allocate across NUMA nodes corresponding to active threads.
| void Galois::Runtime::MM::largeInterleavedFree | ( | void * | mem, | |
| size_t | bytes | |||
| ) |
Frees memory allocated by largeInterleavedAlloc().
| int Galois::Runtime::MM::numNumaAllocForNode | ( | unsigned | nodeid | ) |
Returns total small pages allocated by OS on a NUMA node.
| int Galois::Runtime::MM::numNumaNodes | ( | ) |
Returns number of NUMA nodes on machine.
| int Galois::Runtime::MM::numPageAllocForThread | ( | unsigned | tid | ) |
Returns total large pages allocated for thread by Galois memory management subsystem.
| int Galois::Runtime::MM::numPageAllocTotal | ( | ) |
Returns total large pages allocated by Galois memory management subsystem.
| void * Galois::Runtime::MM::pageAlloc | ( | ) |
| void Galois::Runtime::MM::pageFree | ( | void * | m | ) |
| void Galois::Runtime::MM::pageIn | ( | void * | buf, | |
| size_t | len | |||
| ) |
Forces the given block to be paged into physical memory.
| void Galois::Runtime::MM::pagePreAlloc | ( | int | numpages | ) |
Preallocate numpages large pages for each thread.
| void Galois::Runtime::MM::printInterleavedStats | ( | int | minPages = 16*1024 |
) |
Print lines from /proc/pid/numa_maps that contain at least n small pages.
| const size_t Galois::Runtime::MM::pageSize = 2*1024*1024 |
| const size_t Galois::Runtime::MM::smallPageSize = 4*1024 |
1.6.1