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 */