lib: Parallel emerge during ramfs/kernel builds
.. since it's possible that dependent packages can be emerge'ing for the
first time, then the non-parallel emerge'ing is not efficient.
BUG=none
TEST=./run_tests
Change-Id: I6cdccfe30084cedd8385681f01f25b706ac000f8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4229286
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Jae Hoon Kim <kimjae@chromium.org>
Commit-Queue: Jae Hoon Kim <kimjae@chromium.org>
diff --git a/scripts/build_minios.py b/scripts/build_minios.py
index 67b048d..7140ba7 100644
--- a/scripts/build_minios.py
+++ b/scripts/build_minios.py
@@ -7,6 +7,7 @@
And inserting them into the Chromium OS images.
"""
+import os
import tempfile
from chromite.lib import commandline
@@ -69,6 +70,13 @@
"debug flags. Use with --mod-for-dev in case kernel is "
"not already built or needs to be rebuilt.",
)
+ parser.add_argument(
+ "--jobs",
+ type=int,
+ default=os.cpu_count(),
+ help="Number of packages to build in parallel. "
+ "(Default: %(default)s)",
+ )
return parser
@@ -88,6 +96,7 @@
opts.private_key,
opts.keyblock,
opts.serial,
+ opts.jobs,
build_kernel,
opts.mod_for_dev,
)
diff --git a/scripts/build_minios_unittest.py b/scripts/build_minios_unittest.py
index a6d54b1..1e0d4cc 100644
--- a/scripts/build_minios_unittest.py
+++ b/scripts/build_minios_unittest.py
@@ -39,6 +39,11 @@
test_board = "test-board"
test_version = "0.0.0.0"
test_image = "/some/image/path"
+ self.PatchObject(
+ os,
+ "cpu_count",
+ return_value=777,
+ )
build_minios.main(
[
# --board is a required argument.
@@ -65,6 +70,7 @@
constants.MINIOS_DATA_PRIVATE_KEY,
constants.MINIOS_KEYBLOCK,
None,
+ 777,
True,
False,
)
@@ -91,6 +97,7 @@
test_private_key = "test-private-key"
test_keyblock = "test-keyblock"
test_serial = "test-serial"
+ test_jobs = 777
build_minios.main(
[
# --board is a required argument.
@@ -113,6 +120,8 @@
"--serial",
test_serial,
"--force-build",
+ "--jobs",
+ str(test_jobs),
]
)
@@ -128,6 +137,7 @@
test_private_key,
test_keyblock,
test_serial,
+ test_jobs,
True,
False,
)
@@ -149,6 +159,13 @@
test_board = "test-board"
test_version = "0.0.0.0"
test_image = "/some/image/path"
+ test_jobs = 777
+ self.PatchObject(
+ os,
+ "cpu_count",
+ return_value=str(test_jobs),
+ )
+
build_minios.main(
[
# --board is a required argument.
@@ -176,6 +193,7 @@
constants.MINIOS_DATA_PRIVATE_KEY,
constants.MINIOS_KEYBLOCK,
None,
+ test_jobs,
False,
True,
)
@@ -197,6 +215,7 @@
test_board = "test-board"
test_version = "0.0.0.0"
test_image = "/some/image/path"
+ test_jobs = 777
build_minios.main(
[
# --board is a required argument.
@@ -210,6 +229,8 @@
test_image,
"--mod-for-dev",
"--force-build",
+ "--jobs",
+ str(test_jobs),
]
)
@@ -225,6 +246,7 @@
constants.MINIOS_DATA_PRIVATE_KEY,
constants.MINIOS_KEYBLOCK,
None,
+ test_jobs,
True,
True,
)