diff options
author | Erlang/OTP <[email protected]> | 2018-02-12 13:38:23 +0100 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2018-02-12 13:38:23 +0100 |
commit | 8cfaa0cf95da91be39d116c2fb3b9d3419c9cfa6 (patch) | |
tree | b45e01c062de78b9229556faed6ce70d532dce57 /lib | |
parent | 5fcbb31beb1437124a181be4bd1cb2649d79c0b3 (diff) | |
parent | 06e88d07a4719a0e15b4e666b16347fad463cee6 (diff) | |
download | otp-8cfaa0cf95da91be39d116c2fb3b9d3419c9cfa6.tar.gz otp-8cfaa0cf95da91be39d116c2fb3b9d3419c9cfa6.tar.bz2 otp-8cfaa0cf95da91be39d116c2fb3b9d3419c9cfa6.zip |
Merge branch 'sverker/maint-20/alloc-n-migration/ERIERL-88' into maint-20
* sverker/maint-20/alloc-n-migration/ERIERL-88:
erts: Add system_flags(erts_alloc,"+M?sbct *")
erts: Add age order first fit allocator strategies
erts: Refactor erl_ao_firstfit_alloc
erts: Add migration options "acnl" and "acfml"
erts: Add more stats for mbcs_pool
erts: Fix alloc_SUITE:migration
stdlib: Make ets_SUITE memory check try again
erts: Improve carrier pool search
erts: Improve alloc_SUITE:migration
erts: Refactor carrier dealloc migration
Diffstat (limited to 'lib')
-rw-r--r-- | lib/runtime_tools/src/erts_alloc_config.erl | 8 | ||||
-rw-r--r-- | lib/stdlib/test/ets_SUITE.erl | 26 |
2 files changed, 27 insertions, 7 deletions
diff --git a/lib/runtime_tools/src/erts_alloc_config.erl b/lib/runtime_tools/src/erts_alloc_config.erl index 514530332c..4b028681a0 100644 --- a/lib/runtime_tools/src/erts_alloc_config.erl +++ b/lib/runtime_tools/src/erts_alloc_config.erl @@ -265,7 +265,13 @@ strategy_str(aoff) -> strategy_str(aoffcbf) -> "Address order first fit carrier best fit"; strategy_str(aoffcaobf) -> - "Address order first fit carrier adress order best fit". + "Address order first fit carrier adress order best fit"; +strategy_str(ageffcaoff) -> + "Age order first fit carrier address order first fit"; +strategy_str(ageffcbf) -> + "Age order first fit carrier best fit"; +strategy_str(ageffcaobf) -> + "Age order first fit carrier adress order best fit". default_acul(A, S) -> case carrier_migration_support(S) of diff --git a/lib/stdlib/test/ets_SUITE.erl b/lib/stdlib/test/ets_SUITE.erl index 05451a83fb..1a8260b041 100644 --- a/lib/stdlib/test/ets_SUITE.erl +++ b/lib/stdlib/test/ets_SUITE.erl @@ -6033,17 +6033,23 @@ etsmem() -> end}, {Mem,AllTabs}. -verify_etsmem({MemInfo,AllTabs}) -> + +verify_etsmem(MI) -> wait_for_test_procs(), + verify_etsmem(MI, 1). + +verify_etsmem({MemInfo,AllTabs}, Try) -> case etsmem() of {MemInfo,_} -> io:format("Ets mem info: ~p", [MemInfo]), - case MemInfo of - {ErlMem,EtsAlloc} when ErlMem == notsup; EtsAlloc == undefined -> + case {MemInfo, Try} of + {{ErlMem,EtsAlloc},_} when ErlMem == notsup; EtsAlloc == undefined -> %% Use 'erl +Mea max' to do more complete memory leak testing. {comment,"Incomplete or no mem leak testing"}; - _ -> - ok + {_, 1} -> + ok; + _ -> + {comment, "Transient memory discrepancy"} end; {MemInfo2, AllTabs2} -> @@ -6051,7 +6057,15 @@ verify_etsmem({MemInfo,AllTabs}) -> io:format("Actual: ~p", [MemInfo2]), io:format("Changed tables before: ~p\n",[AllTabs -- AllTabs2]), io:format("Changed tables after: ~p\n", [AllTabs2 -- AllTabs]), - ct:fail("Failed memory check") + case Try < 2 of + true -> + io:format("\nThis discrepancy could be caused by an " + "inconsistent memory \"snapshot\"" + "\nTry again...\n", []), + verify_etsmem({MemInfo, AllTabs}, Try+1); + false -> + ct:fail("Failed memory check") + end end. |