diff mbox series

[bug#71175] gnu: linux-libre: Parallelize linux-libre module installation

Message ID f74cb275dc156964a8f109482b834e2f2705b6f9.1716569382.git.richard@freakingpenguin.com
State New
Headers show
Series [bug#71175] gnu: linux-libre: Parallelize linux-libre module installation | expand

Commit Message

Richard Sent May 24, 2024, 4:49 p.m. UTC
* 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(-)


base-commit: 9901416233867233192b63fde7f616751127b189

Comments

Richard Sent May 30, 2024, 3:02 a.m. UTC | #1
Closing due to c3566fccb6fa25b70bf2e78fafe71f9048a6a719.
diff mbox series

Patch

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