From 443b2e0fabe9dfbe78d7fe857b29e74f7533da39 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson
Date: Tue, 23 Jan 2018 22:26:44 +0100
Subject: erts: Add migration options "acnl" and "acfml"
acnl: Abandon Carrier Nr Limit
acfml: Abandon Carrier Free block Min Limit
---
erts/doc/src/erts_alloc.xml | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
(limited to 'erts/doc')
diff --git a/erts/doc/src/erts_alloc.xml b/erts/doc/src/erts_alloc.xml
index 8ab35851c1..0d2b89ae42 100644
--- a/erts/doc/src/erts_alloc.xml
+++ b/erts/doc/src/erts_alloc.xml
@@ -478,6 +478,28 @@
allocators based on the alloc_util framework, except
temp_alloc (which would be pointless).
+
+ acfml ]]>
+
+ -
+
Abandon carrier free block min limit. A valid ]]>
+ is a positive integer representing a block size limit. The largest
+ free block in a carrier must be at least bytes large, for the
+ carrier to be abandoned. The default is zero but can be changed
+ in the future.
+ See also acul.
+
+
+ acnl ]]>
+
+ -
+
Abandon carrier number limit. A valid ]]>
+ is a positive integer representing max number of abandoned carriers per
+ allocator instance. Defaults to 1000 which will practically disable
+ the limit, but this can be changed in the future.
+ See also acul.
+
+
as bf|aobf|aoff|aoffcbf|aoffcaobf|gf|af]]>
-
--
cgit v1.2.3
From defd43985282606e841e2bcb29ad7414080d5a80 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson
Date: Fri, 26 Jan 2018 18:42:32 +0100
Subject: erts: Add age order first fit allocator strategies
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.
---
erts/doc/src/erts_alloc.xml | 37 +++++++++++++++++++++++++++++++++++--
1 file changed, 35 insertions(+), 2 deletions(-)
(limited to 'erts/doc')
diff --git a/erts/doc/src/erts_alloc.xml b/erts/doc/src/erts_alloc.xml
index 0d2b89ae42..4b43836742 100644
--- a/erts/doc/src/erts_alloc.xml
+++ b/erts/doc/src/erts_alloc.xml
@@ -225,6 +225,33 @@
used. The time complexity is proportional to log N, where
N is the number of free blocks.
+ Age order first fit carrier address order first fit
+ -
+
Strategy: Find the oldest carrier that
+ can satisfy the requested block size, then find a block within
+ that carrier using the "address order first fit" strategy.
+ Implementation: A balanced binary search tree is
+ used. The time complexity is proportional to log N, where
+ N is the number of free blocks.
+
+ Age order first fit carrier best fit
+ -
+
Strategy: Find the oldest carrier that
+ can satisfy the requested block size, then find a block within
+ that carrier using the "best fit" strategy.
+ Implementation: Balanced binary search trees are
+ used. The time complexity is proportional to log N, where
+ N is the number of free blocks.
+
+ Age order first fit carrier address order best fit
+ -
+
Strategy: Find the oldest carrier that
+ can satisfy the requested block size, then find a block within
+ that carrier using the "address order best fit" strategy.
+ Implementation: Balanced binary search trees are
+ used. The time complexity is proportional to log N, where
+ N is the number of free blocks.
+
Good fit
-
Strategy: Try to find the best fit, but settle for the best fit
@@ -467,7 +494,8 @@
fetched, it will function as an ordinary carrier. This feature has
special requirements on the
allocation strategy used. Only
- the strategies aoff, aoffcbf, and aoffcaobf
+ the strategies aoff, aoffcbf, aoffcaobf,
+ ageffcaoffm, ageffcbf and ageffcaobf
support abandoned carriers.
This feature also requires
multiple thread specific instances
@@ -501,7 +529,7 @@
- as bf|aobf|aoff|aoffcbf|aoffcaobf|gf|af]]>
+ as bf|aobf|aoff|aoffcbf|aoffcaobf|ageffcaoff|ageffcbf|ageffcaobf|gf|af]]>
-
Allocation strategy. The following strategies are valid:
@@ -512,6 +540,11 @@
- aoffcaobf (address order first fit carrier address
order best fit)
+ - ageffcaoff (age order first fit carrier address order first fit)
+ - ageffcbf (age order first fit carrier best fit)
+
+ - ageffcaobf (age order first fit carrier address
+ order best fit)
- gf (good fit)
- af (a fit)
--
cgit v1.2.3
From d1e89f8df4be7197fdab36a3e1662183a7dfe6ae Mon Sep 17 00:00:00 2001
From: Sverker Eriksson
Date: Thu, 25 Jan 2018 19:05:50 +0100
Subject: erts: Add system_flags(erts_alloc,"+M?sbct *")
to change sbct limit in runtime for chosen allocator type.
With great power comes great responsibility.
---
erts/doc/src/erlang.xml | 37 +++++++++++++++++++++++++++----------
1 file changed, 27 insertions(+), 10 deletions(-)
(limited to 'erts/doc')
diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml
index 24a091073d..5f3652eeb3 100644
--- a/erts/doc/src/erlang.xml
+++ b/erts/doc/src/erlang.xml
@@ -6707,6 +6707,23 @@ ok
+ Set system flag for erts_alloc.
+
+ Sets system flags for
+ erts_alloc(3).
+ Alloc is the allocator to affect, for example
+ binary_alloc. F is the flag to change and
+ V is the new value.
+ Only a subset of all erts_alloc flags can be changed
+ at run time. This subset is currently only the flag
+ sbct.
+ Returns ok if the flag was set or notsup if not
+ supported by erts_alloc.
+
+
+
+
+
Set system flag fullsweep_after.
Sets system flag fullsweep_after.
@@ -6725,7 +6742,7 @@ ok
-
+
Set system flag microstate_accounting.
@@ -6738,7 +6755,7 @@ ok
-
+
Set system flag min_heap_size.
Sets the default minimum heap size for processes. The size
@@ -6753,7 +6770,7 @@ ok
-
+
Set system flag min_bin_vheap_size.
Sets the default minimum binary virtual heap size for
@@ -6770,7 +6787,7 @@ ok
-
+
Set system flag max_heap_size.
@@ -6788,7 +6805,7 @@ ok
-
+
Set system flag multi_scheduling.
@@ -6843,7 +6860,7 @@ ok
-
+
Set system flag scheduler_bind_type.
@@ -6969,7 +6986,7 @@ ok
-
+
Set system flag scheduler_wall_time.
@@ -6981,7 +6998,7 @@ ok
-
+
Set system flag schedulers_online.
@@ -7009,7 +7026,7 @@ ok
-
+
Set system flag trace_control_word.
Sets the value of the node trace control word to
@@ -7023,7 +7040,7 @@ ok
-
+
Finalize the time offset.
--
cgit v1.2.3
From e11c649522be8849cc21e364734be62c7783f090 Mon Sep 17 00:00:00 2001
From: Erlang/OTP
Date: Mon, 12 Feb 2018 13:38:43 +0100
Subject: Update release notes
---
erts/doc/src/notes.xml | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
(limited to 'erts/doc')
diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml
index 39dd90b8a0..f62788d2d8 100644
--- a/erts/doc/src/notes.xml
+++ b/erts/doc/src/notes.xml
@@ -31,6 +31,48 @@
This document describes the changes made to the ERTS application.
+Erts 9.2.1
+
+ Improvements and New Features
+
+ -
+
+ Improve search algorithm of abandoned memory carriers.
+ Instead of limited linear search, each allocator instance
+ maintain a balanced search tree of all its abandoned
+ carriers for faster and more exhaustive search.
+
+ Own Id: OTP-14915 Aux Id: ERIERL-88
+
+ -
+
+ New erts_alloc command line options +M_acnl and
+ +M_acfml to limit carrier abandonment.
+
+ Own Id: OTP-14916 Aux Id: ERIERL-88
+
+ -
+
+ New family of erts_alloc strategies: Age Order
+ First Fit. Similar to "address order", but instead the
+ oldest possible carrier is always chosen for allocation.
+
+ Own Id: OTP-14917 Aux Id: ERIERL-88
+
+ -
+
+ Add possibility to change allocator options at runtime
+ with system_info(erts_alloc, ...). Only option
+ sbct (single block carrier threshold) is currently
+ supported via this interface.
+
+ Own Id: OTP-14918 Aux Id: ERIERL-88
+
+
+
+
+
+
Erts 9.2
Fixed Bugs and Malfunctions
--
cgit v1.2.3