diff options
author | Sverker Eriksson <[email protected]> | 2018-05-22 14:43:30 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2018-05-22 14:43:30 +0200 |
commit | 9cf67430bff860d47c359df6b997c8bcd0985f4c (patch) | |
tree | 45dc24bf4d20077336e330ccc5a2e9ec4ae65b91 /erts/emulator/beam/erl_ao_firstfit_alloc.h | |
parent | 48f2d66707330667c6d3e268466b5440d1b930ab (diff) | |
download | otp-9cf67430bff860d47c359df6b997c8bcd0985f4c.tar.gz otp-9cf67430bff860d47c359df6b997c8bcd0985f4c.tar.bz2 otp-9cf67430bff860d47c359df6b997c8bcd0985f4c.zip |
erts: Let allocator pooled_tree also use Age Order
if configured for the allocator. This was not implemented
and pooled_tree always used address order first fit.
The "problem" was as a carrier can be part of both the pooled tree
(of its owner) and the allocation tree (of a foreign instance)
at the same time. Solved by duplicating 'birth_time' in both
AOFF_RBTree_t nodes for each carrier.
Blocks still cannot use age order and does not pay
any memory cost for birth_time.
Diffstat (limited to 'erts/emulator/beam/erl_ao_firstfit_alloc.h')
-rw-r--r-- | erts/emulator/beam/erl_ao_firstfit_alloc.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_ao_firstfit_alloc.h b/erts/emulator/beam/erl_ao_firstfit_alloc.h index 9cf4fc81a8..dad864801f 100644 --- a/erts/emulator/beam/erl_ao_firstfit_alloc.h +++ b/erts/emulator/beam/erl_ao_firstfit_alloc.h @@ -29,10 +29,10 @@ typedef struct AOFFAllctr_t_ AOFFAllctr_t; enum AOFFSortOrder { - FF_AGEFF = 0, + FF_AGEFF = 0, /* carrier trees only */ FF_AOFF = 1, - FF_AOBF = 2, - FF_BF = 3 + FF_AOBF = 2, /* block trees only */ + FF_BF = 3 /* block trees only */ }; typedef struct { |