Blame jemalloc/include/jemalloc/internal/base_types.h
|
Packit |
345191 |
#ifndef JEMALLOC_INTERNAL_BASE_TYPES_H
|
|
Packit |
345191 |
#define JEMALLOC_INTERNAL_BASE_TYPES_H
|
|
Packit |
345191 |
|
|
Packit |
345191 |
typedef struct base_block_s base_block_t;
|
|
Packit |
345191 |
typedef struct base_s base_t;
|
|
Packit |
345191 |
|
|
Packit |
345191 |
#define METADATA_THP_DEFAULT metadata_thp_disabled
|
|
Packit |
345191 |
|
|
Packit |
345191 |
/*
|
|
Packit |
345191 |
* In auto mode, arenas switch to huge pages for the base allocator on the
|
|
Packit |
345191 |
* second base block. a0 switches to thp on the 5th block (after 20 megabytes
|
|
Packit |
345191 |
* of metadata), since more metadata (e.g. rtree nodes) come from a0's base.
|
|
Packit |
345191 |
*/
|
|
Packit |
345191 |
|
|
Packit |
345191 |
#define BASE_AUTO_THP_THRESHOLD 2
|
|
Packit |
345191 |
#define BASE_AUTO_THP_THRESHOLD_A0 5
|
|
Packit |
345191 |
|
|
Packit |
345191 |
typedef enum {
|
|
Packit |
345191 |
metadata_thp_disabled = 0,
|
|
Packit |
345191 |
/*
|
|
Packit |
345191 |
* Lazily enable hugepage for metadata. To avoid high RSS caused by THP
|
|
Packit |
345191 |
* + low usage arena (i.e. THP becomes a significant percentage), the
|
|
Packit |
345191 |
* "auto" option only starts using THP after a base allocator used up
|
|
Packit |
345191 |
* the first THP region. Starting from the second hugepage (in a single
|
|
Packit |
345191 |
* arena), "auto" behaves the same as "always", i.e. madvise hugepage
|
|
Packit |
345191 |
* right away.
|
|
Packit |
345191 |
*/
|
|
Packit |
345191 |
metadata_thp_auto = 1,
|
|
Packit |
345191 |
metadata_thp_always = 2,
|
|
Packit |
345191 |
metadata_thp_mode_limit = 3
|
|
Packit |
345191 |
} metadata_thp_mode_t;
|
|
Packit |
345191 |
|
|
Packit |
345191 |
#endif /* JEMALLOC_INTERNAL_BASE_TYPES_H */
|