Make eligible global variables static
and/or const
For better or worse, Jemalloc has a significant number of global variables. Making all eligible global variables `static` and/or `const` at least makes it slightly easier to reason about them, as these qualifications communicate to the programmer restrictions on their use without having to `grep` the whole codebase.
This commit is contained in:
parent
e249d1a2a1
commit
589c63b424
@ -18,11 +18,10 @@ extern ssize_t opt_dirty_decay_ms;
|
|||||||
extern ssize_t opt_muzzy_decay_ms;
|
extern ssize_t opt_muzzy_decay_ms;
|
||||||
|
|
||||||
extern percpu_arena_mode_t opt_percpu_arena;
|
extern percpu_arena_mode_t opt_percpu_arena;
|
||||||
extern const char *percpu_arena_mode_names[];
|
extern const char *const percpu_arena_mode_names[];
|
||||||
|
|
||||||
extern div_info_t arena_binind_div_info[SC_NBINS];
|
extern div_info_t arena_binind_div_info[SC_NBINS];
|
||||||
|
|
||||||
extern malloc_mutex_t arenas_lock;
|
|
||||||
extern emap_t arena_emap_global;
|
extern emap_t arena_emap_global;
|
||||||
|
|
||||||
extern size_t opt_oversize_threshold;
|
extern size_t opt_oversize_threshold;
|
||||||
|
@ -23,7 +23,7 @@ typedef enum metadata_thp_mode_e metadata_thp_mode_t;
|
|||||||
|
|
||||||
#define METADATA_THP_DEFAULT metadata_thp_disabled
|
#define METADATA_THP_DEFAULT metadata_thp_disabled
|
||||||
extern metadata_thp_mode_t opt_metadata_thp;
|
extern metadata_thp_mode_t opt_metadata_thp;
|
||||||
extern const char *metadata_thp_mode_names[];
|
extern const char *const metadata_thp_mode_names[];
|
||||||
|
|
||||||
|
|
||||||
/* Embedded at the beginning of every block of base-managed virtual memory. */
|
/* Embedded at the beginning of every block of base-managed virtual memory. */
|
||||||
|
@ -11,7 +11,7 @@ typedef enum {
|
|||||||
#define DSS_PREC_DEFAULT dss_prec_secondary
|
#define DSS_PREC_DEFAULT dss_prec_secondary
|
||||||
#define DSS_DEFAULT "secondary"
|
#define DSS_DEFAULT "secondary"
|
||||||
|
|
||||||
extern const char *dss_prec_names[];
|
extern const char *const dss_prec_names[];
|
||||||
|
|
||||||
extern const char *opt_dss;
|
extern const char *opt_dss;
|
||||||
|
|
||||||
|
@ -12,6 +12,6 @@ struct hpa_hooks_s {
|
|||||||
uint64_t (*ms_since)(nstime_t *r_time);
|
uint64_t (*ms_since)(nstime_t *r_time);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern hpa_hooks_t hpa_hooks_default;
|
extern const hpa_hooks_t hpa_hooks_default;
|
||||||
|
|
||||||
#endif /* JEMALLOC_INTERNAL_HPA_HOOKS_H */
|
#endif /* JEMALLOC_INTERNAL_HPA_HOOKS_H */
|
||||||
|
@ -22,8 +22,8 @@ extern sec_opts_t opt_hpa_sec_opts;
|
|||||||
extern const char *opt_junk;
|
extern const char *opt_junk;
|
||||||
extern bool opt_junk_alloc;
|
extern bool opt_junk_alloc;
|
||||||
extern bool opt_junk_free;
|
extern bool opt_junk_free;
|
||||||
extern void (*junk_free_callback)(void *ptr, size_t size);
|
extern void (*JET_MUTABLE junk_free_callback)(void *ptr, size_t size);
|
||||||
extern void (*junk_alloc_callback)(void *ptr, size_t size);
|
extern void (*JET_MUTABLE junk_alloc_callback)(void *ptr, size_t size);
|
||||||
extern bool opt_utrace;
|
extern bool opt_utrace;
|
||||||
extern bool opt_xmalloc;
|
extern bool opt_xmalloc;
|
||||||
extern bool opt_experimental_infallible_new;
|
extern bool opt_experimental_infallible_new;
|
||||||
@ -31,7 +31,7 @@ extern bool opt_zero;
|
|||||||
extern unsigned opt_narenas;
|
extern unsigned opt_narenas;
|
||||||
extern zero_realloc_action_t opt_zero_realloc_action;
|
extern zero_realloc_action_t opt_zero_realloc_action;
|
||||||
extern malloc_init_t malloc_init_state;
|
extern malloc_init_t malloc_init_state;
|
||||||
extern const char *zero_realloc_mode_names[];
|
extern const char *const zero_realloc_mode_names[];
|
||||||
extern atomic_zu_t zero_realloc_count;
|
extern atomic_zu_t zero_realloc_count;
|
||||||
extern bool opt_cache_oblivious;
|
extern bool opt_cache_oblivious;
|
||||||
extern unsigned opt_debug_double_free_max_scan;
|
extern unsigned opt_debug_double_free_max_scan;
|
||||||
|
@ -56,7 +56,7 @@ enum prof_time_res_e {
|
|||||||
typedef enum prof_time_res_e prof_time_res_t;
|
typedef enum prof_time_res_e prof_time_res_t;
|
||||||
|
|
||||||
extern prof_time_res_t opt_prof_time_res;
|
extern prof_time_res_t opt_prof_time_res;
|
||||||
extern const char *prof_time_res_mode_names[];
|
extern const char *const prof_time_res_mode_names[];
|
||||||
|
|
||||||
JEMALLOC_ALWAYS_INLINE void
|
JEMALLOC_ALWAYS_INLINE void
|
||||||
nstime_init_zero(nstime_t *time) {
|
nstime_init_zero(nstime_t *time) {
|
||||||
|
@ -131,7 +131,7 @@ pa_shard_ehooks_get(pa_shard_t *shard) {
|
|||||||
|
|
||||||
/* Returns true on error. */
|
/* Returns true on error. */
|
||||||
bool pa_central_init(pa_central_t *central, base_t *base, bool hpa,
|
bool pa_central_init(pa_central_t *central, base_t *base, bool hpa,
|
||||||
hpa_hooks_t *hpa_hooks);
|
const hpa_hooks_t *hpa_hooks);
|
||||||
|
|
||||||
/* Returns true on error. */
|
/* Returns true on error. */
|
||||||
bool pa_shard_init(tsdn_t *tsdn, pa_shard_t *shard, pa_central_t *central,
|
bool pa_shard_init(tsdn_t *tsdn, pa_shard_t *shard, pa_central_t *central,
|
||||||
|
@ -102,7 +102,7 @@ typedef enum {
|
|||||||
#define THP_MODE_DEFAULT thp_mode_default
|
#define THP_MODE_DEFAULT thp_mode_default
|
||||||
extern thp_mode_t opt_thp;
|
extern thp_mode_t opt_thp;
|
||||||
extern thp_mode_t init_system_thp_mode; /* Initial system wide state. */
|
extern thp_mode_t init_system_thp_mode; /* Initial system wide state. */
|
||||||
extern const char *thp_mode_names[];
|
extern const char *const thp_mode_names[];
|
||||||
|
|
||||||
void *pages_map(void *addr, size_t size, size_t alignment, bool *commit);
|
void *pages_map(void *addr, size_t size, size_t alignment, bool *commit);
|
||||||
void pages_unmap(void *addr, size_t size);
|
void pages_unmap(void *addr, size_t size);
|
||||||
|
@ -21,7 +21,7 @@ JEMALLOC_DIAGNOSTIC_DISABLE_SPURIOUS
|
|||||||
* Define names for both unininitialized and initialized phases, so that
|
* Define names for both unininitialized and initialized phases, so that
|
||||||
* options and mallctl processing are straightforward.
|
* options and mallctl processing are straightforward.
|
||||||
*/
|
*/
|
||||||
const char *percpu_arena_mode_names[] = {
|
const char *const percpu_arena_mode_names[] = {
|
||||||
"percpu",
|
"percpu",
|
||||||
"phycpu",
|
"phycpu",
|
||||||
"disabled",
|
"disabled",
|
||||||
@ -37,7 +37,7 @@ static atomic_zd_t dirty_decay_ms_default;
|
|||||||
static atomic_zd_t muzzy_decay_ms_default;
|
static atomic_zd_t muzzy_decay_ms_default;
|
||||||
|
|
||||||
emap_t arena_emap_global;
|
emap_t arena_emap_global;
|
||||||
pa_central_t arena_pa_central_global;
|
static pa_central_t arena_pa_central_global;
|
||||||
|
|
||||||
div_info_t arena_binind_div_info[SC_NBINS];
|
div_info_t arena_binind_div_info[SC_NBINS];
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ static base_t *b0;
|
|||||||
|
|
||||||
metadata_thp_mode_t opt_metadata_thp = METADATA_THP_DEFAULT;
|
metadata_thp_mode_t opt_metadata_thp = METADATA_THP_DEFAULT;
|
||||||
|
|
||||||
const char *metadata_thp_mode_names[] = {
|
const char *const metadata_thp_mode_names[] = {
|
||||||
"disabled",
|
"disabled",
|
||||||
"auto",
|
"auto",
|
||||||
"always"
|
"always"
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
const char *opt_dss = DSS_DEFAULT;
|
const char *opt_dss = DSS_DEFAULT;
|
||||||
|
|
||||||
const char *dss_prec_names[] = {
|
const char *const dss_prec_names[] = {
|
||||||
"disabled",
|
"disabled",
|
||||||
"primary",
|
"primary",
|
||||||
"secondary",
|
"secondary",
|
||||||
|
@ -11,7 +11,7 @@ static void hpa_hooks_dehugify(void *ptr, size_t size);
|
|||||||
static void hpa_hooks_curtime(nstime_t *r_nstime, bool first_reading);
|
static void hpa_hooks_curtime(nstime_t *r_nstime, bool first_reading);
|
||||||
static uint64_t hpa_hooks_ms_since(nstime_t *past_nstime);
|
static uint64_t hpa_hooks_ms_since(nstime_t *past_nstime);
|
||||||
|
|
||||||
hpa_hooks_t hpa_hooks_default = {
|
const hpa_hooks_t hpa_hooks_default = {
|
||||||
&hpa_hooks_map,
|
&hpa_hooks_map,
|
||||||
&hpa_hooks_unmap,
|
&hpa_hooks_unmap,
|
||||||
&hpa_hooks_purge,
|
&hpa_hooks_purge,
|
||||||
|
@ -121,7 +121,7 @@ zero_realloc_action_t opt_zero_realloc_action =
|
|||||||
|
|
||||||
atomic_zu_t zero_realloc_count = ATOMIC_INIT(0);
|
atomic_zu_t zero_realloc_count = ATOMIC_INIT(0);
|
||||||
|
|
||||||
const char *zero_realloc_mode_names[] = {
|
const char *const zero_realloc_mode_names[] = {
|
||||||
"alloc",
|
"alloc",
|
||||||
"free",
|
"free",
|
||||||
"abort",
|
"abort",
|
||||||
@ -142,8 +142,8 @@ static void default_junk_free(void *ptr, size_t usize) {
|
|||||||
memset(ptr, junk_free_byte, usize);
|
memset(ptr, junk_free_byte, usize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void (*junk_alloc_callback)(void *ptr, size_t size) = &default_junk_alloc;
|
void (*JET_MUTABLE junk_alloc_callback)(void *ptr, size_t size) = &default_junk_alloc;
|
||||||
void (*junk_free_callback)(void *ptr, size_t size) = &default_junk_free;
|
void (*JET_MUTABLE junk_free_callback)(void *ptr, size_t size) = &default_junk_free;
|
||||||
|
|
||||||
bool opt_utrace = false;
|
bool opt_utrace = false;
|
||||||
bool opt_xmalloc = false;
|
bool opt_xmalloc = false;
|
||||||
@ -158,7 +158,7 @@ unsigned opt_debug_double_free_max_scan =
|
|||||||
SAFETY_CHECK_DOUBLE_FREE_MAX_SCAN_DEFAULT;
|
SAFETY_CHECK_DOUBLE_FREE_MAX_SCAN_DEFAULT;
|
||||||
|
|
||||||
/* Protects arenas initialization. */
|
/* Protects arenas initialization. */
|
||||||
malloc_mutex_t arenas_lock;
|
static malloc_mutex_t arenas_lock;
|
||||||
|
|
||||||
/* The global hpa, and whether it's on. */
|
/* The global hpa, and whether it's on. */
|
||||||
bool opt_hpa = false;
|
bool opt_hpa = false;
|
||||||
|
@ -228,7 +228,7 @@ nstime_monotonic_t *JET_MUTABLE nstime_monotonic = nstime_monotonic_impl;
|
|||||||
prof_time_res_t opt_prof_time_res =
|
prof_time_res_t opt_prof_time_res =
|
||||||
prof_time_res_default;
|
prof_time_res_default;
|
||||||
|
|
||||||
const char *prof_time_res_mode_names[] = {
|
const char *const prof_time_res_mode_names[] = {
|
||||||
"default",
|
"default",
|
||||||
"high",
|
"high",
|
||||||
};
|
};
|
||||||
|
2
src/pa.c
2
src/pa.c
@ -17,7 +17,7 @@ pa_nactive_sub(pa_shard_t *shard, size_t sub_pages) {
|
|||||||
|
|
||||||
bool
|
bool
|
||||||
pa_central_init(pa_central_t *central, base_t *base, bool hpa,
|
pa_central_init(pa_central_t *central, base_t *base, bool hpa,
|
||||||
hpa_hooks_t *hpa_hooks) {
|
const hpa_hooks_t *hpa_hooks) {
|
||||||
bool err;
|
bool err;
|
||||||
if (hpa) {
|
if (hpa) {
|
||||||
err = hpa_central_init(¢ral->hpa, base, hpa_hooks);
|
err = hpa_central_init(¢ral->hpa, base, hpa_hooks);
|
||||||
|
@ -42,7 +42,7 @@ static int mmap_flags;
|
|||||||
#endif
|
#endif
|
||||||
static bool os_overcommits;
|
static bool os_overcommits;
|
||||||
|
|
||||||
const char *thp_mode_names[] = {
|
const char *const thp_mode_names[] = {
|
||||||
"default",
|
"default",
|
||||||
"always",
|
"always",
|
||||||
"never",
|
"never",
|
||||||
|
@ -73,16 +73,16 @@ static malloc_mutex_t next_thr_uid_mtx;
|
|||||||
bool prof_booted = false;
|
bool prof_booted = false;
|
||||||
|
|
||||||
/* Logically a prof_backtrace_hook_t. */
|
/* Logically a prof_backtrace_hook_t. */
|
||||||
atomic_p_t prof_backtrace_hook;
|
static atomic_p_t prof_backtrace_hook;
|
||||||
|
|
||||||
/* Logically a prof_dump_hook_t. */
|
/* Logically a prof_dump_hook_t. */
|
||||||
atomic_p_t prof_dump_hook;
|
static atomic_p_t prof_dump_hook;
|
||||||
|
|
||||||
/* Logically a prof_sample_hook_t. */
|
/* Logically a prof_sample_hook_t. */
|
||||||
atomic_p_t prof_sample_hook;
|
static atomic_p_t prof_sample_hook;
|
||||||
|
|
||||||
/* Logically a prof_sample_free_hook_t. */
|
/* Logically a prof_sample_free_hook_t. */
|
||||||
atomic_p_t prof_sample_free_hook;
|
static atomic_p_t prof_sample_free_hook;
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ enum prof_logging_state_e {
|
|||||||
* - started: log_start called, log_stop not called yet. Allocations are logged.
|
* - started: log_start called, log_stop not called yet. Allocations are logged.
|
||||||
* - dumping: log_stop called but not finished; samples are not logged anymore.
|
* - dumping: log_stop called but not finished; samples are not logged anymore.
|
||||||
*/
|
*/
|
||||||
prof_logging_state_t prof_logging_state = prof_logging_state_stopped;
|
static prof_logging_state_t prof_logging_state = prof_logging_state_stopped;
|
||||||
|
|
||||||
/* Used in unit tests. */
|
/* Used in unit tests. */
|
||||||
static bool prof_log_dummy = false;
|
static bool prof_log_dummy = false;
|
||||||
|
@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
malloc_mutex_t prof_dump_filename_mtx;
|
malloc_mutex_t prof_dump_filename_mtx;
|
||||||
|
|
||||||
bool prof_do_mock = false;
|
|
||||||
|
|
||||||
static uint64_t prof_dump_seq;
|
static uint64_t prof_dump_seq;
|
||||||
static uint64_t prof_dump_iseq;
|
static uint64_t prof_dump_iseq;
|
||||||
static uint64_t prof_dump_mseq;
|
static uint64_t prof_dump_mseq;
|
||||||
|
@ -9,13 +9,13 @@
|
|||||||
#include "jemalloc/internal/mutex_prof.h"
|
#include "jemalloc/internal/mutex_prof.h"
|
||||||
#include "jemalloc/internal/prof_stats.h"
|
#include "jemalloc/internal/prof_stats.h"
|
||||||
|
|
||||||
const char *global_mutex_names[mutex_prof_num_global_mutexes] = {
|
static const char *const global_mutex_names[mutex_prof_num_global_mutexes] = {
|
||||||
#define OP(mtx) #mtx,
|
#define OP(mtx) #mtx,
|
||||||
MUTEX_PROF_GLOBAL_MUTEXES
|
MUTEX_PROF_GLOBAL_MUTEXES
|
||||||
#undef OP
|
#undef OP
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *arena_mutex_names[mutex_prof_num_arena_mutexes] = {
|
static const char *const arena_mutex_names[mutex_prof_num_arena_mutexes] = {
|
||||||
#define OP(mtx) #mtx,
|
#define OP(mtx) #mtx,
|
||||||
MUTEX_PROF_ARENA_MUTEXES
|
MUTEX_PROF_ARENA_MUTEXES
|
||||||
#undef OP
|
#undef OP
|
||||||
|
@ -37,7 +37,7 @@ static hpa_shard_opts_t test_hpa_shard_opts_default = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static hpa_shard_t *
|
static hpa_shard_t *
|
||||||
create_test_data(hpa_hooks_t *hooks, hpa_shard_opts_t *opts) {
|
create_test_data(const hpa_hooks_t *hooks, hpa_shard_opts_t *opts) {
|
||||||
bool err;
|
bool err;
|
||||||
base_t *base = base_new(TSDN_NULL, /* ind */ SHARD_IND,
|
base_t *base = base_new(TSDN_NULL, /* ind */ SHARD_IND,
|
||||||
&ehooks_default_extent_hooks, /* metadata_use_hooks */ true);
|
&ehooks_default_extent_hooks, /* metadata_use_hooks */ true);
|
||||||
|
Loading…
Reference in New Issue
Block a user