Namespace Ase::FastMemory
Namespace List > Ase > FastMemory
Utilities for allocating cache line aligned memory from huge pages.
Classes
Type | Name |
---|---|
struct | Allocator |
struct | Arena Memory area (over-)aligned to cache size and utilizing huge pages. |
struct | ArenaBlock |
struct | Block Reference for an allocated memory block. |
struct | EmptyArena |
struct | Extent32 |
struct | FastMemoryArena |
struct | HugePage Interface to the OS huge page allocator. |
struct | LinuxHugePage |
struct | MemoryMetaInfo |
class | NewDeleteBase |
struct | SequentialFitAllocator |
Public Types
Type | Name |
---|---|
typedef std::shared_ptr< Allocator > | AllocatorP |
typedef HugePage::HugePageP | HugePageP |
Public Attributes
Type | Name |
---|---|
constexpr size_t | cache_line_size = = 64 Minimum alignment >= cache line size, see getconf LEVEL1_DCACHE_LINESIZE. |
Public Static Attributes
Type | Name |
---|---|
std::vector< FastMemory::Arena > & | fast_mem_arenas = = *new std::vector<FastMemory::Arena>() |
std::mutex | fast_mem_mutex |
constexpr bool | trace_NewDeleteBase = = false |
Public Static Functions
Type | Name |
---|---|
Arena | create_arena (uint32 alignment, uint32 mem_size) |
ArenaBlock | fast_mem_allocate_aligned_block_L (uint32 length) |
Allocator * | fmallocator (const Arena & a) |
MemoryMetaInfo & | mm_info_lookup (void * ptr) |
ArenaBlock | mm_info_pop_mt (void * block_start) |
void | mm_info_push_mt (const ArenaBlock & ablock) |
Public Types Documentation
typedef AllocatorP
using Ase::FastMemory::AllocatorP = typedef std::shared_ptr<Allocator>;
typedef HugePageP
using Ase::FastMemory::HugePageP = typedef HugePage::HugePageP;
Public Attributes Documentation
variable cache_line_size
constexpr size_t Ase::FastMemory::cache_line_size;
Public Static Attributes Documentation
variable fast_mem_arenas
std::vector<FastMemory::Arena>& Ase::FastMemory::fast_mem_arenas;
variable fast_mem_mutex
std::mutex Ase::FastMemory::fast_mem_mutex;
variable trace_NewDeleteBase
constexpr bool Ase::FastMemory::trace_NewDeleteBase;
Public Static Functions Documentation
function create_arena
static Arena Ase::FastMemory::create_arena (
uint32 alignment,
uint32 mem_size
)
function fast_mem_allocate_aligned_block_L
static ArenaBlock Ase::FastMemory::fast_mem_allocate_aligned_block_L (
uint32 length
)
function fmallocator
static Allocator * Ase::FastMemory::fmallocator (
const Arena & a
)
function mm_info_lookup
static MemoryMetaInfo & Ase::FastMemory::mm_info_lookup (
void * ptr
)
function mm_info_pop_mt
static ArenaBlock Ase::FastMemory::mm_info_pop_mt (
void * block_start
)
function mm_info_push_mt
static void Ase::FastMemory::mm_info_push_mt (
const ArenaBlock & ablock
)
The documentation for this class was generated from the following file /__w/anklang/anklang/ase/memory.cc