1#ifndef JEMALLOC_INTERNAL_ARENA_TYPES_H 2#define JEMALLOC_INTERNAL_ARENA_TYPES_H 3 4#include "jemalloc/internal/sc.h" 5 6/* Maximum number of regions in one slab. */ 7#define LG_SLAB_MAXREGS (LG_PAGE - SC_LG_TINY_MIN) 8#define SLAB_MAXREGS (1U << LG_SLAB_MAXREGS) 9 10/* Default decay times in milliseconds. */ 11#define DIRTY_DECAY_MS_DEFAULT ZD(10 * 1000) 12#define MUZZY_DECAY_MS_DEFAULT (0) 13/* Number of event ticks between time checks. */ 14#define DECAY_NTICKS_PER_UPDATE 1000 15 16typedef struct arena_slab_data_s arena_slab_data_t; 17typedef struct arena_decay_s arena_decay_t; 18typedef struct arena_s arena_t; 19typedef struct arena_tdata_s arena_tdata_t; 20typedef struct alloc_ctx_s alloc_ctx_t; 21 22typedef enum { 23 percpu_arena_mode_names_base = 0, /* Used for options processing. */ 24 25 /* 26 * *_uninit are used only during bootstrapping, and must correspond 27 * to initialized variant plus percpu_arena_mode_enabled_base. 28 */ 29 percpu_arena_uninit = 0, 30 per_phycpu_arena_uninit = 1, 31 32 /* All non-disabled modes must come after percpu_arena_disabled. */ 33 percpu_arena_disabled = 2, 34 35 percpu_arena_mode_names_limit = 3, /* Used for options processing. */ 36 percpu_arena_mode_enabled_base = 3, 37 38 percpu_arena = 3, 39 per_phycpu_arena = 4 /* Hyper threads share arena. */ 40} percpu_arena_mode_t; 41 42#define PERCPU_ARENA_ENABLED(m) ((m) >= percpu_arena_mode_enabled_base) 43#define PERCPU_ARENA_DEFAULT percpu_arena_disabled 44 45/* 46 * When allocation_size >= oversize_threshold, use the dedicated huge arena 47 * (unless have explicitly spicified arena index). 0 disables the feature. 48 */ 49#define OVERSIZE_THRESHOLD_DEFAULT (8 << 20) 50 51#endif /* JEMALLOC_INTERNAL_ARENA_TYPES_H */ 52