blob: eabe493146361c281631a1b3b4e5607074f02c11 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
{ config, lib, ... }:
let
kernelVersion = config.boot.kernelPackages.kernel.version;
hasZstd = lib.versionAtLeast kernelVersion "4.18";
in {
options.vuizvui.system.kernel.zswap.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to enable support for zswap with <literal>z3fold</literal> for
pooling and <literal>zstd</literal> for compression, if available
(otherwise it falls back to <literal>lzo</literal>).
Zswap is a compressed cache for swap pages, which is especially useful
for machines with limited RAM.
'';
};
config = lib.mkIf config.vuizvui.system.kernel.zswap.enable {
boot.kernelPatches = lib.singleton {
name = "zswap-config";
patch = null;
extraConfig = ''
CRYPTO_${if hasZstd then "ZSTD" else "LZO"} y
ZSWAP y
Z3FOLD y
'';
};
boot.kernelParams = [
"zswap.enabled=1"
"zswap.zpool=z3fold"
"zswap.compressor=${if hasZstd then "zstd" else "lzo"}"
];
};
}
|