Sux
Classes | Enumerations
sux::util Namespace Reference

Classes

class  Expandable
 
class  FenwickBitF
 
class  FenwickBitL
 
class  FenwickByteF
 
class  FenwickByteL
 
class  FenwickFixedF
 
class  FenwickFixedL
 
class  SearchablePrefixSums
 
class  Vector
 

Enumerations

enum  AllocType { MALLOC, SMALLPAGE, TRANSHUGEPAGE, FORCEHUGEPAGE }
 

Enumeration Type Documentation

◆ AllocType

Possible types of memory allocation.

See also
https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html
https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html
Enumerator
MALLOC 

Standard allocation with malloc() (usually, the default).

SMALLPAGE 

Allocation with mmap(). Allocations are aligned on a memory page (typically, 4KiB).

TRANSHUGEPAGE 

Transparent huge pages support through mmap() and madvise() on Linux. Allocations are usually a mutiple of 4KiB, but they can be defragmented in blocks of 2MiB each.

FORCEHUGEPAGE 

Direct huge page support through mmap() on Linux. In this case allocations are aligned on a huge (typically, 2MiB) memory page. This feature is usually disabled by default and it requires the administrator to pre-reserve space for huge memory pages as documented in the reported external references