aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid James <davidjames@chromium.org>2011-05-06 21:53:31 -0700
committerZac Medico <zmedico@gentoo.org>2011-05-07 21:24:57 -0700
commitdffb2901d349a66bdbba30423c358da7c9938e47 (patch)
treeeafa1d54ba2f5326c65900934baba229b9dc924f /pym/portage/const.py
parentdoebuild: use EbuildBuildDir for locking (diff)
downloadportage-dffb2901d349a66bdbba30423c358da7c9938e47.tar.gz
portage-dffb2901d349a66bdbba30423c358da7c9938e47.tar.bz2
portage-dffb2901d349a66bdbba30423c358da7c9938e47.zip
Use finer grained locks for install.
Narrow scope of merge locks to improve performance. Instead of locking the DB for the entire package merge, just lock it when we actually need to do so. Also add locks around conf_mem_file updating and pkg_* phases. Locking in pkg_* phases can be turned off with FEATURES="no-ebuild-locks" if you use ebuilds that are careful not to mess with each other during theses phases. The default is to leave this locking enabled. Given this new locking, I've improved the scheduler to run merge jobs in parallel. Time required for merging 348 packages with --usepkgonly: - Before patch: 29m50s - After patch: 10m2s - After patch w/o locks: 7m9s Change-Id: I63588c4cc59fa6fe2f8327ea1e4a9e71b241d4fe Review URL: http://gerrit.chromium.org/gerrit/498
Diffstat (limited to 'pym/portage/const.py')
-rw-r--r--pym/portage/const.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/pym/portage/const.py b/pym/portage/const.py
index db3f8414b..dbbaa3e86 100644
--- a/pym/portage/const.py
+++ b/pym/portage/const.py
@@ -92,8 +92,8 @@ SUPPORTED_FEATURES = frozenset([
"fail-clean", "fixpackages", "force-mirror", "getbinpkg",
"installsources", "keeptemp", "keepwork", "fixlafiles", "lmirror",
"metadata-transfer", "mirror", "multilib-strict", "news",
- "noauto", "noclean", "nodoc", "noinfo", "noman", "nostrip",
- "notitles", "parallel-fetch", "parse-eapi-ebuild-head",
+ "no-ebuild-locks", "noauto", "noclean", "nodoc", "noinfo", "noman",
+ "nostrip", "notitles", "parallel-fetch", "parse-eapi-ebuild-head",
"prelink-checksums", "preserve-libs",
"protect-owned", "python-trace", "sandbox",
"selinux", "sesandbox", "severe", "sfperms",