Subject: Remove hugetlb control group on ARM32.

From: Mathieu Othacehe <[email-masked]>
Date: Wed, 20 Dec 2017 20:15:07 +0100

Hi Guix,

Mounting %control-groups fails on ARM32 platform because we build a
kernel without LPAE support which implies hugetlb control group cannot
be supported.

Like Debian we could have an ARMMP and ARMMP-LPAE kernel but the problem
would still exists for ARMMP.

I'm not sure what do about, a workaround could be the ugly hack
attached, WDYT ?

Thanks,

Mathieu
>From 2172a1897a9729b65767bb58883247a3c604109f Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <[email-masked]>
Date: Wed, 20 Dec 2017 20:02:33 +0100
Subject: [PATCH] file-systems: Do not mount hugetlb cgroup filesystem on
 arm32.

On ARM32 without LPAE support, hugetlb control group is not supported.

* gnu/system/file-systems.scm (%control-groups): Remove hugetlb from control
  groups on arm32 platforms.
---
 gnu/system/file-systems.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index 27734e892..cbe6a725a 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -21,6 +21,7 @@
   #:use-module (rnrs bytevectors)
   #:use-module (srfi srfi-1)
   #:use-module (guix records)
+  #:use-module (guix utils)
   #:use-module (gnu system uuid)
   #:re-export (uuid                               ;backward compatibility
                string->uuid
@@ -278,8 +279,9 @@ TARGET in the other system."
                    ;; This must be mounted after, and unmounted before the
                    ;; parent directory.
                    (dependencies (list parent))))
-               '("cpuset" "cpu" "cpuacct" "memory" "devices" "freezer"
-                 "blkio" "perf_event" "hugetlb")))))
+               `("cpuset" "cpu" "cpuacct" "memory" "devices" "freezer"
+                 "blkio" "perf_event"
+                 ,@(if (not (target-arm32?)) '("hugetlb") '()))))))
 
 (define %elogind-file-systems
   ;; We don't use systemd, but these file systems are needed for elogind,
-- 
2.15.0