diff options
author | Erlang/OTP <[email protected]> | 2011-07-11 15:40:42 +0200 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2011-07-11 15:40:42 +0200 |
commit | 3b2f96b9a1f079c9e0502db7d11984597ea5c4f1 (patch) | |
tree | eb14eeaeda15e219244540f0d270f212a5dc9554 /erts/emulator/beam/erl_instrument.c | |
parent | e0f60ce445b072b97353f3ab8f18c2f00b04cbe8 (diff) | |
parent | 1dfaae304dfcc4f249c62b5ab7ff3bd4acef0d50 (diff) | |
download | otp-3b2f96b9a1f079c9e0502db7d11984597ea5c4f1.tar.gz otp-3b2f96b9a1f079c9e0502db7d11984597ea5c4f1.tar.bz2 otp-3b2f96b9a1f079c9e0502db7d11984597ea5c4f1.zip |
Merge branch 'rickard/sbmbc/OTP-9339' into maint-r14
* rickard/sbmbc/OTP-9339:
Use separate memory carriers for small blocks
Diffstat (limited to 'erts/emulator/beam/erl_instrument.c')
-rw-r--r-- | erts/emulator/beam/erl_instrument.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_instrument.c b/erts/emulator/beam/erl_instrument.c index f3f3c22933..c5615818f2 100644 --- a/erts/emulator/beam/erl_instrument.c +++ b/erts/emulator/beam/erl_instrument.c @@ -1152,6 +1152,14 @@ erts_instr_get_type_info(Process *proc) return res; } +#if HALFWORD_HEAP +#define ERTS_IS_SBMBC_ALLOCATOR_NO__(NO) \ + ((NO) == ERTS_ALC_A_SBMBC || (NO) == ERTS_ALC_A_SBMBC_LOW) +#else +#define ERTS_IS_SBMBC_ALLOCATOR_NO__(NO) \ + ((NO) == ERTS_ALC_A_SBMBC) +#endif + Uint erts_instr_init(int stat, int map_stat) { @@ -1186,6 +1194,8 @@ erts_instr_init(int stat, int map_stat) sys_memzero((void *) stats->n, sizeof(Stat_t)*(ERTS_ALC_N_MAX+1)); for (i = ERTS_ALC_A_MIN; i <= ERTS_ALC_A_MAX; i++) { + if (ERTS_IS_SBMBC_ALLOCATOR_NO__(i)) + continue; if (erts_allctrs_info[i].enabled) stats->ap[i] = &stats->a[i]; else @@ -1199,6 +1209,8 @@ erts_instr_init(int stat, int map_stat) erts_instr_memory_map = 1; erts_instr_stat = 1; for (i = ERTS_ALC_A_MIN; i <= ERTS_ALC_A_MAX; i++) { + if (ERTS_IS_SBMBC_ALLOCATOR_NO__(i)) + continue; erts_allctrs[i].alloc = map_stat_alloc; erts_allctrs[i].realloc = map_stat_realloc; erts_allctrs[i].free = map_stat_free; @@ -1209,6 +1221,8 @@ erts_instr_init(int stat, int map_stat) else { erts_instr_stat = 1; for (i = ERTS_ALC_A_MIN; i <= ERTS_ALC_A_MAX; i++) { + if (ERTS_IS_SBMBC_ALLOCATOR_NO__(i)) + continue; erts_allctrs[i].alloc = stat_alloc; erts_allctrs[i].realloc = stat_realloc; erts_allctrs[i].free = stat_free; |