Enable FEATURES=parallel-install in order to increase IO throughput by
allowing files to be merged or unmerged for one package while merge or
unmerge ebuild phases execute for a different package.

This feature introduces a small risk of file collisions going
undetected for packages that are merged at about the same time, but
the risk is considered to be practically negligible since those file
collisions would typically be detected and prevented long before such
an event would have an opportunity to occur.

Bug: https://bugs.gentoo.org/715110
Signed-off-by: Zac Medico <zmed...@gentoo.org>
---
[PATCH v2] documents the mechanism of increased IO throughput, and
adds a warning about the risk of undetected file collisions.

 cnf/make.globals |  2 +-
 man/make.conf.5  | 20 ++++++++++++++++----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/cnf/make.globals b/cnf/make.globals
index 4a59dbe3c..5ba1ac6fa 100644
--- a/cnf/make.globals
+++ b/cnf/make.globals
@@ -55,7 +55,7 @@ FETCHCOMMAND_SFTP="bash -c \"x=\\\${2#sftp://} ; 
host=\\\${x%%/*} ; port=\\\${ho
 FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs
           config-protect-if-modified distlocks ebuild-locks
           fixlafiles ipc-sandbox merge-sync multilib-strict
-          network-sandbox news parallel-fetch pid-sandbox
+          network-sandbox news parallel-fetch parallel-install pid-sandbox
           preserve-libs protect-owned qa-unresolved-soname-deps
           sandbox sfperms strict
           unknown-features-warn unmerge-logs unmerge-orphans userfetch
diff --git a/man/make.conf.5 b/man/make.conf.5
index f82fed65a..2380fe3ce 100644
--- a/man/make.conf.5
+++ b/man/make.conf.5
@@ -1,4 +1,4 @@
-.TH "MAKE.CONF" "5" "Nov 2019" "Portage VERSION" "Portage"
+.TH "MAKE.CONF" "5" "May 2020" "Portage VERSION" "Portage"
 .SH "NAME"
 make.conf \- custom settings for Portage
 .SH "SYNOPSIS"
@@ -550,9 +550,21 @@ Fetch in the background while compiling. Run
 terminal to view parallel-fetch progress.
 .TP
 .B parallel\-install
-Use finer\-grained locks when installing packages, allowing for greater
-parallelization. For additional parallelization, disable
-\fIebuild\-locks\fR.
+Use finer\-grained locks when installing packages, in order to increase
+IO throughput by allowing files to be merged or unmerged for one package
+while merge or unmerge ebuild phases execute for a different package. For
+additional parallelization, disable \fIebuild\-locks\fR.
+
+\fB***warning***\fR
+.br
+This feature introduces a small risk of file collisions going
+undetected (by collision\-protect or protect\-owned features) for
+packages that are merged at about the same time, but the risk is
+considered to be practically negligible since those file
+collisions would typically be detected and prevented long before such
+an event would have an opportunity to occur. The risk may increase when
+ACCEPT_KEYWORDS is used to accept packages which have not yet been
+deemed 'stable', or when using uncommon USE flag configurations.
 .TP
 .B pid\-sandbox
 Isolate the process space for the ebuild processes. This makes it
-- 
2.25.3


Reply via email to