guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: system: Align zram priority with swap-space spec


From: guix-commits
Subject: branch master updated: system: Align zram priority with swap-space spec to clarify.
Date: Sat, 11 Jun 2022 01:55:15 -0400

This is an automated email from the git hooks/post-receive script.

apteryx pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new a99015c878 system: Align zram priority with swap-space spec to clarify.
a99015c878 is described below

commit a99015c8783eb5281618173779a0550b15a79617
Author: Josselin Poiret <dev@jpoiret.xyz>
AuthorDate: Tue May 24 19:16:30 2022 +0200

    system: Align zram priority with swap-space spec to clarify.
    
    Fixes <https://issues.guix.gnu.org/54783>.
    
    * gnu/services/linux.scm (zram-device-configuration)
    [priority]: Adapt to use #f or an integer from 0 to 32767.  Add sanitizer to
    warn for the change and delay the field.
    (zram-device-configuration->udev-string): Adapt as above.
    * doc/guix.texi (Zram Device Service): Remove double copyright line.
    Change priority description to refer to the Swap Space one, and suggest not
    leaving the default #f on to properly use zram.
    
    Reported-by: Stefan Baums <baums@stefanbaums.com>
    Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
    Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
---
 doc/guix.texi          | 11 +++++------
 gnu/services/linux.scm | 29 +++++++++++++++++++++++++----
 2 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 2961cf3608..2aef0380fb 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -96,10 +96,9 @@ Copyright @copyright{} 2021 Domagoj Stolfa@*
 Copyright @copyright{} 2021 Hui Lu@*
 Copyright @copyright{} 2021 pukkamustard@*
 Copyright @copyright{} 2021 Alice Brenon@*
-Copyright @copyright{} 2021 Josselin Poiret@*
+Copyright @copyright{} 2021, 2022 Josselin Poiret@*
 Copyright @copyright{} 2021 Andrew Tropin@*
 Copyright @copyright{} 2021 Sarah Morgensen@*
-Copyright @copyright{} 2021 Josselin Poiret@*
 Copyright @copyright{} 2022 Remco van 't Veer@*
 Copyright @copyright{} 2022 Aleksandr Vityazev@*
 Copyright @copyright{} 2022 Philip M@sup{c}Grath@*
@@ -35202,11 +35201,11 @@ that compression will be 2:1, it is possible that 
uncompressable data
 can be written to swap and this is a method to limit how much memory can
 be used.  It accepts a string and can be a number of bytes or use a
 suffix, eg.: @code{"2G"}.
-@item @code{priority} (default @code{-1})
+@item @code{priority} (default @code{#f})
 This is the priority of the swap device created from the zram device.
-@code{swapon} accepts values between -1 and 32767, with higher values
-indicating higher priority.  Higher priority swap will generally be used
-first.
+@xref{Swap Space} for a description of swap priorities.  You might want
+to set a specific priority for the zram device, otherwise it could end
+up not being used much for the reasons described there.
 @end table
 
 @end deftp
diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm
index 2eb02ac5a3..60e2093e1d 100644
--- a/gnu/services/linux.scm
+++ b/gnu/services/linux.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 raid5atemyhomework <raid5atemyhomework@protonmail.com>
 ;;; Copyright © 2021 B. Wilson <elaexuotee@wilsonb.com>
+;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,9 +22,12 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu services linux)
+  #:use-module (guix diagnostics)
   #:use-module (guix gexp)
   #:use-module (guix records)
   #:use-module (guix modules)
+  #:use-module (guix i18n)
+  #:use-module (guix ui)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu services shepherd)
@@ -252,7 +256,21 @@ representation."
   (memory-limit             zram-device-configuration-memory-limit
                             (default 0))        ; string or integer
   (priority                 zram-device-configuration-priority
-                            (default -1)))      ; integer
+                            (default #f)        ; integer | #f
+                            (delayed) ; to avoid printing the deprecation
+                                      ; warning multiple times
+                            (sanitize warn-zram-priority-change)))
+
+(define-with-syntax-properties
+  (warn-zram-priority-change (priority properties))
+  (if (eqv? priority -1)
+      (begin
+        (warning (source-properties->location properties)
+                 (G_ "using -1 for zram priority is deprecated~%"))
+        (display-hint (G_ "Use #f or leave as default instead (@pxref{Linux \
+Services})."))
+        #f)
+      priority))
 
 (define (zram-device-configuration->udev-string config)
   "Translate a <zram-device-configuration> into a string which can be
@@ -278,9 +296,12 @@ placed in a udev rules file."
          "")
        "RUN+=\"/run/current-system/profile/sbin/mkswap /dev/zram0\" "
        "RUN+=\"/run/current-system/profile/sbin/swapon "
-       (if (not (equal? -1 priority))
-         (string-append "--priority " (number->string priority) " ")
-         "")
+       ;; TODO: Revert to simply use 'priority' after removing the deprecation
+       ;; warning and the delayed property of the field.
+       (let ((priority* (force priority)))
+         (if priority*
+             (format #f "--priority ~a " priority*)
+             ""))
        "/dev/zram0\"\n"))))
 
 (define %zram-device-config



reply via email to

[Prev in Thread] Current Thread [Next in Thread]