(address . guix-patches@gnu.org)(name . Richard Sent)(address . richard@freakingpenguin.com)
* gnu/packages/linux.scm (make-linux-libre*): Parallelize kernel module
installation when possible.
Change-Id: I6ee8223d8a4a33f92907498d7f2b95675b2aa940
---
Hi Guix!
This patch aims to speed up the kernel build process. Because module
installation has a fair amount of CPU activity (GZIP+STRIP), it
benefits from additional jobs. On my 32 logical core machine, the
install phase of linux-libre went from 45.4 seconds to 9.4 seconds.
gnu/packages/linux.scm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
Toggle diff (27 lines)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index a9b78a7986..1357be4e86 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1041,7 +1041,7 @@ (define* (make-linux-libre* version gnu-revision source supported-systems
(close-port port))
(invoke "make" "oldconfig"))))
(replace 'install
- (lambda _
+ (lambda* (#:key parallel-build? #:allow-other-keys)
(let ((moddir (string-append #$output "/lib/modules"))
(dtbdir (string-append #$output "/lib/dtbs")))
;; Install kernel image, kernel configuration and link map.
@@ -1056,6 +1056,9 @@ (define* (make-linux-libre* version gnu-revision source supported-systems
;; Install kernel modules
(mkdir-p moddir)
(invoke "make"
+ "-j" (if parallel-build?
+ (number->string (parallel-job-count))
+ "1")
;; Disable depmod because the Guix system's module
;; directory is an union of potentially multiple
;; packages. It is not possible to use depmod to
base-commit: 9901416233867233192b63fde7f616751127b189
--
2.41.0