Skip to content

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