diff options
author | Sverker Eriksson <[email protected]> | 2014-11-25 17:15:16 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2014-11-25 17:15:23 +0100 |
commit | 0ab1d950b2ead9611cb31abd6a612ef378ff5b88 (patch) | |
tree | 489e23b0e993f1c9cf25a81df2f9bde9d12057da /erts/emulator/beam/erl_alloc_util.h | |
parent | 5d87ae92f486a147be7e38af8ab5abae531b36b6 (diff) | |
parent | a0184cdca374f112ecfaa4c85a73b88d036f69f3 (diff) | |
download | otp-0ab1d950b2ead9611cb31abd6a612ef378ff5b88.tar.gz otp-0ab1d950b2ead9611cb31abd6a612ef378ff5b88.tar.bz2 otp-0ab1d950b2ead9611cb31abd6a612ef378ff5b88.zip |
Merge branch 'sverk/cpool-search-improvement' into maint
OTP-12323
* sverk/cpool-search-improvement:
erts: Add internal docs for super carrier and new cpool search.
erts: Fix bug causing mbc to be deleted from cpool before it was inserted
erts: Fix bug causing mbc removed from cpool to be used at pool entrance
erts: Add pooled_list and traitor_list
Diffstat (limited to 'erts/emulator/beam/erl_alloc_util.h')
-rw-r--r-- | erts/emulator/beam/erl_alloc_util.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_alloc_util.h b/erts/emulator/beam/erl_alloc_util.h index 7be6b1ed9d..eee920e66c 100644 --- a/erts/emulator/beam/erl_alloc_util.h +++ b/erts/emulator/beam/erl_alloc_util.h @@ -268,6 +268,11 @@ typedef union {char c[ERTS_ALLOC_ALIGN_BYTES]; long l; double d;} Unit_t; #ifdef ERTS_SMP +typedef struct ErtsDoubleLink_t_ { + struct ErtsDoubleLink_t_ *next; + struct ErtsDoubleLink_t_ *prev; +}ErtsDoubleLink_t; + typedef struct { erts_atomic_t next; erts_atomic_t prev; @@ -277,6 +282,7 @@ typedef struct { UWord abandon_limit; UWord blocks; UWord blocks_size; + ErtsDoubleLink_t abandoned; /* node in pooled_list or traitor_list */ } ErtsAlcCPoolData_t; #endif @@ -500,7 +506,12 @@ struct Allctr_t_ { CarrierList_t sbc_list; #ifdef ERTS_SMP struct { - CarrierList_t dc_list; + /* pooled_list, traitor list and dc_list contain only + carriers _created_ by this allocator */ + ErtsDoubleLink_t pooled_list; + ErtsDoubleLink_t traitor_list; + CarrierList_t dc_list; + UWord abandon_limit; int disable_abandon; int check_limit_count; |