File 0733-erts-Expand-docs-about-A-SDcpu-and-SDio.patch of Package erlang

From dda18eb095214755191bb277494f7baad0e786fe Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Mon, 25 Nov 2019 16:56:02 +0100
Subject: [PATCH 1/4] erts: Expand docs about +A, +SDcpu and +SDio

---
 erts/doc/src/erl.xml | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml
index ed1b0880b4..174a40b929 100644
--- a/erts/doc/src/erl.xml
+++ b/erts/doc/src/erl.xml
@@ -575,7 +575,11 @@
       <tag><marker id="async_thread_pool_size"/><c><![CDATA[+A size]]></c></tag>
       <item>
         <p>Sets the number of threads in async thread pool. Valid range
-          is 0-1024. Defaults to 1.</p>
+          is 0-1024. The async thread pool is used by linked-in drivers to
+          handle work that may take a very long time. Since OTP-21 there are
+          very few linked-in drivers in the default Erlang/OTP distribution
+          that uses the async thread pool. Most of them have been migrated to
+          dirty IO schedulers. Defaults to 1.</p>
       </item>
       <tag><c><![CDATA[+B [c | d | i]]]></c></tag>
       <item>
@@ -992,6 +996,12 @@
 	  executing on ordinary schedulers. If the amount of dirty CPU
 	  schedulers was allowed to be unlimited, dirty CPU bound jobs would
 	  potentially starve normal jobs.</p>
+        <p>Typical users of the dirty CPU schedulers are large garbage collections,
+          json protocol encode/decoders written as nifs and matrix manipulation
+          libraries.</p>
+        <p>You can use <seealso marker="runtime_tools:msacc">msacc(3)</seealso>
+          in order to see the current load of the dirty CPU schedulers threads
+          and adjust the number used accordingly.</p>
       </item>
       <tag><marker id="+SDPcpu"/><c><![CDATA[+SDPcpu
         DirtyCPUSchedulersPercentage:DirtyCPUSchedulersOnlinePercentage]]></c></tag>
@@ -1021,15 +1031,17 @@
       <item>
 	<p>Sets the number of dirty I/O scheduler threads to create.
 	  Valid range is 1-1024. By
-          default, the number of dirty I/O scheduler threads created is 10,
-          same as the default number of threads in the <seealso
-          marker="#async_thread_pool_size">async thread pool</seealso>.</p>
+          default, the number of dirty I/O scheduler threads created is 10.</p>
 	<p>The amount of dirty IO schedulers is not limited by the amount of
 	  normal schedulers <seealso marker="#+SDcpu">like the amount of
 	  dirty CPU schedulers</seealso>. This since only I/O bound work is
 	  expected to execute on dirty I/O schedulers. If the user should schedule CPU
 	  bound jobs on dirty I/O schedulers, these jobs might starve ordinary
 	  jobs executing on ordinary schedulers.</p>
+        <p>Typical users of the dirty IO schedulers are reading and writing to files.</p>
+        <p>You can use <seealso marker="runtime_tools:msacc">msacc(3)</seealso>
+          in order to see the current load of the dirty IO schedulers threads
+          and adjust the number used accordingly.</p>
       </item>
       <tag><c><![CDATA[+sFlag Value]]></c></tag>
       <item>
-- 
2.16.4

openSUSE Build Service is sponsored by