aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc/src/erts_alloc.xml
AgeCommit message (Collapse)Author
2018-06-28Allow cross-type carrier migrationJohn Högberg
2018-06-18Update copyright yearHenrik Nord
2018-04-23erts: Rewrite memory instrumentationJohn Högberg
This commit replaces the old memory instrumentation with a new implementation that scans carriers instead of wrapping erts_alloc/erts_free. The old implementation could not extract information without halting the emulator, had considerable runtime overhead, and the memory maps it produced were noisy and lacked critical information. Since the new implementation walks through existing data structures there's no longer a need to start the emulator with special flags to get information about carrier utilization/fragmentation. Memory fragmentation is also easier to diagnose as it's presented on a per-carrier basis which eliminates the need to account for "holes" between mmap segments. To help track allocations, each allocation can now be tagged with what it is and who allocated it at the cost of one extra word per allocation. This is controlled on a per-allocator basis with the +M<S>atags option, and is enabled by default for binary_alloc and driver_alloc (which is also used by NIFs).
2018-03-13Merge PR-1699 from sverker/hipe-amd64-high-code/OTP-14951Sverker Eriksson
Remove low memory need for HiPE on x86_64
2018-03-05erts: Remove hipe amd64 code super carrier (exec_mmap)Sverker Eriksson
2018-02-12Merge 'sverker/maint-20/alloc-n-migration/ERIERL-88'Sverker Eriksson
into 'sverker/master/alloc-n-migration/ERIERL-88'
2018-02-12Merge 'sverker/maint-19/alloc-n-migration/ERIERL-88'Sverker Eriksson
into 'sverker/maint-20/alloc-n-migration/ERIERL-88' OTP-14915 OTP-14916 OTP-14917 OTP-14918
2018-02-12erts: Add age order first fit allocator strategiesSverker Eriksson
ageffcaoff: Age First Fit Carrier, Address Order First Fit (within carrier) ageffcbf : Age First Fit Carrier, Best Fit (within carrier) ageffcaobf: Age First Fit Carrier, Address Order Best Fit (within carrier) Prefer old carriers, the older the better.
2018-02-08erts: Add migration options "acnl" and "acfml"Sverker Eriksson
acnl: Abandon Carrier Nr Limit acfml: Abandon Carrier Free block Min Limit
2017-10-02erts: temp_alloc can no longer be disabledLukas Larsson
temp_alloc is used in such a way that if it ever results in a malloc/free sequence it will slow down the system alot. So it will no longer be possible to disable it and it will not be disabled when using +Mea min. OTP-14651
2017-05-04Update copyright yearRaimo Niskanen
2017-03-14Fix sbct documentationLuis Rascao
The unit should be explicitly documented as kilobytes to avoid ambiguity.
2017-02-14Fixed typos in ertsAndrew Dryga
2016-09-01doc: Correct errors introduced by Editorial changesHans Bolinder
Fix some older errors as well.
2016-07-13erts: Review of documentation changesLukas Larsson
2016-07-13erts: Editorial changesxsipewe
2016-05-10erts: Fix doc typo in erts_allocSverker Eriksson
2016-04-20Merge branch 'sverker/hipe-code-alloc'Sverker Eriksson
2016-04-15erts: Add 'exec_alloc' for hipe codeSverker Eriksson
that uses its own super carrier (erts_exec_mmapper) to guarantee low addressed and executable memory (PROT_EXEC). Currently only used on x86_64 that needs low memory for HiPE/AMD64's small code model. By initializing erts_exec_mapper early we secure its low memory area before erts_literal_mmapper might steal it.
2016-03-15update copyright-yearHenrik Nord
2016-02-23erts: Add emulator flag +MIscs for literal super carrier sizeSverker Eriksson
2016-02-23erts: Make literal_alloc documented and configurableSverker Eriksson
Except it cannot be disabled and cannot be multi-threaded. The bit-vector 'erts_literal_vspace_map' on 32-bit is currently only protected by the literal allocator mutex. We could allow multiple instances on 64-bit (I think), but what would be the point?
2015-11-04[erts] Correct documentationHans Bolinder
Fix mistakes found by 'xmllint'.
2015-06-18Change license text to APLv2Bruce Yinhe
2014-06-12erts: Fix documentation for no of default allocator instancesSverker Eriksson
ll_alloc does not default to single instance since 17.0
2014-01-23Merge branch 'rickard/default_acul/OTP-11604'Rickard Green
* rickard/default_acul/OTP-11604: erts: Use "+Muacul de" as default
2013-12-02Merge branch 'maint'Rickard Green
* maint: Documentation fix
2013-12-02Documentation fixRickard Green
2013-11-25Merge branch 'maint'Rickard Green
* maint: Fix observer retrieval of alloc info Fix documentation of the +MMsco switch Replace the +MMscmgc switch with +MMscrfsd Add switch for disabling sys_alloc carriers Add support for locking mappings to physical memory
2013-11-05Fix documentation of the +MMsco switchRickard Green
2013-11-05Replace the +MMscmgc switch with +MMscrfsdRickard Green
Replaced the +MMscmgc switch with the +MMscrfsd switch. The old switch didn't reflect what it controlled.
2013-11-05Add switch for disabling sys_alloc carriersRickard Green
The switch "+Musac <boolean>" controls if sys_alloc carriers are allowed.
2013-11-05Add support for locking mappings to physical memoryRickard Green
Using "+Mlpm all" switch all mappings made by the emulator will be locked into physical memory.
2013-10-15Merge branch 'maint'Sverker Eriksson
Conflicts: erts/preloaded/ebin/erlang.beam
2013-09-30erts: Add documentation for +MMsc* system flagsRickard Green
2013-06-20Merge branch 'maint'Sverker Eriksson
Conflicts: erts/vsn.mk lib/kernel/vsn.mk lib/stdlib/vsn.mk
2013-06-19erts: Make aoffcbf default when migration is enabledSverker Eriksson
2013-06-19erts: Add new allocator strategy aoffcbfSverker Eriksson
with better performance than aoffcaobf as we don't have to rearrange the search tree when there are blocks of equal size.
2013-06-04erts: Use "+Muacul de" as defaultRickard Green
2013-06-04Merge branch 'maint'Rickard Green
* maint: erts: Document the +M<S>acul command line argument erts: Carrier pool information in allocator information erts: Use carrier pool for migration of carriers erts: Implement test case for carrier pool erts: Implement carrier pool erts: Fix type errors in info functions erts: Use Uint64 for call counts erts: Fix failing testcase alloc_SUITE:rbtree erts: Rename allocator aoffcbf to aoffcaobf erts: Remove unnecessary flag arguments in allocators erts: Remove SBMBC allocator erts: Add test for add_mbc and remove_mbc callbacks erts: Fix deallocation in removed carrier erts: Change naive list to rb-tree of carriers in AOFF allocator erts: Prepare aoff allocator for carrier migration erts: Make carrier header sizes customizable erts: Add "bestfit within carrier" for aoff allocator (aoffcbf) Conflicts: erts/preloaded/ebin/erlang.beam
2013-06-04erts: Document the +M<S>acul command line argumentRickard Green
2013-06-03erts: Rename allocator aoffcbf to aoffcaobfSverker Eriksson
and add documentation in erts_alloc
2013-06-03erts: Remove SBMBC allocatorSverker Eriksson
2013-04-19Convert XML files to UTF-8Hans Bolinder
2013-02-11erts: Increase default #cached segments to 10Björn-Egil Dahlberg
Previous default was 5.
2013-01-25Update copyright yearsBjörn-Egil Dahlberg
2012-12-14erts: Set super alignment (256kb) and limits for sbct (8Mb) and lmbcs (128Mb)Sverker Eriksson
2011-12-05Fix typo in erts_alloc(3)Tuncer Ayaz
2011-12-02Minor fix of erts_alloc.xmlHans Bolinder
2011-11-13Optimize memory allocationRickard Green
A number of memory allocation optimizations have been implemented. Most optimizations reduce contention caused by synchronization between threads during allocation and deallocation of memory. Most notably: * Synchronization of memory management in scheduler specific allocator instances has been rewritten to use lock-free synchronization. * Synchronization of memory management in scheduler specific pre-allocators has been rewritten to use lock-free synchronization. * The 'mseg_alloc' memory segment allocator now use scheduler specific instances instead of one instance. Apart from reducing contention this also ensures that memory allocators always create memory segments on the local NUMA node on a NUMA system.