Subject: [PATCH] gnu: linux-libre: Parallelize linux-libre module installation

From: Richard Sent <[email-masked]>
Date: Fri, 24 May 2024 12:49:42 -0400

* 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(-)

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