Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>, Zac Medico <zmedico@g.o>
Subject: [gentoo-portage-dev] [PATCH v2] Enable FEATURES=parallel-install by default (bug 715110)
Date: Sun, 17 May 2020 20:33:52
Message-Id: 20200517202939.18784-1-zmedico@gentoo.org
In Reply to: [gentoo-portage-dev] [PATCH] Enable FEATURES=parallel-install by default (bug 715110) by Zac Medico
1 Enable FEATURES=parallel-install in order to increase IO throughput by
2 allowing files to be merged or unmerged for one package while merge or
3 unmerge ebuild phases execute for a different package.
4
5 This feature introduces a small risk of file collisions going
6 undetected for packages that are merged at about the same time, but
7 the risk is considered to be practically negligible since those file
8 collisions would typically be detected and prevented long before such
9 an event would have an opportunity to occur.
10
11 Bug: https://bugs.gentoo.org/715110
12 Signed-off-by: Zac Medico <zmedico@g.o>
13 ---
14 [PATCH v2] documents the mechanism of increased IO throughput, and
15 adds a warning about the risk of undetected file collisions.
16
17 cnf/make.globals | 2 +-
18 man/make.conf.5 | 20 ++++++++++++++++----
19 2 files changed, 17 insertions(+), 5 deletions(-)
20
21 diff --git a/cnf/make.globals b/cnf/make.globals
22 index 4a59dbe3c..5ba1ac6fa 100644
23 --- a/cnf/make.globals
24 +++ b/cnf/make.globals
25 @@ -55,7 +55,7 @@ FETCHCOMMAND_SFTP="bash -c \"x=\\\${2#sftp://} ; host=\\\${x%%/*} ; port=\\\${ho
26 FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs
27 config-protect-if-modified distlocks ebuild-locks
28 fixlafiles ipc-sandbox merge-sync multilib-strict
29 - network-sandbox news parallel-fetch pid-sandbox
30 + network-sandbox news parallel-fetch parallel-install pid-sandbox
31 preserve-libs protect-owned qa-unresolved-soname-deps
32 sandbox sfperms strict
33 unknown-features-warn unmerge-logs unmerge-orphans userfetch
34 diff --git a/man/make.conf.5 b/man/make.conf.5
35 index f82fed65a..2380fe3ce 100644
36 --- a/man/make.conf.5
37 +++ b/man/make.conf.5
38 @@ -1,4 +1,4 @@
39 -.TH "MAKE.CONF" "5" "Nov 2019" "Portage VERSION" "Portage"
40 +.TH "MAKE.CONF" "5" "May 2020" "Portage VERSION" "Portage"
41 .SH "NAME"
42 make.conf \- custom settings for Portage
43 .SH "SYNOPSIS"
44 @@ -550,9 +550,21 @@ Fetch in the background while compiling. Run
45 terminal to view parallel-fetch progress.
46 .TP
47 .B parallel\-install
48 -Use finer\-grained locks when installing packages, allowing for greater
49 -parallelization. For additional parallelization, disable
50 -\fIebuild\-locks\fR.
51 +Use finer\-grained locks when installing packages, in order to increase
52 +IO throughput by allowing files to be merged or unmerged for one package
53 +while merge or unmerge ebuild phases execute for a different package. For
54 +additional parallelization, disable \fIebuild\-locks\fR.
55 +
56 +\fB***warning***\fR
57 +.br
58 +This feature introduces a small risk of file collisions going
59 +undetected (by collision\-protect or protect\-owned features) for
60 +packages that are merged at about the same time, but the risk is
61 +considered to be practically negligible since those file
62 +collisions would typically be detected and prevented long before such
63 +an event would have an opportunity to occur. The risk may increase when
64 +ACCEPT_KEYWORDS is used to accept packages which have not yet been
65 +deemed 'stable', or when using uncommon USE flag configurations.
66 .TP
67 .B pid\-sandbox
68 Isolate the process space for the ebuild processes. This makes it
69 --
70 2.25.3

Replies