python312Packages.publicsuffixlist: 1.0.2.20250124 -> 1.0.2.20250127 (#378379)
[NixPkgs.git] / pkgs / os-specific / linux / kernel / xanmod-kernels.nix
blobe8a291c5aeb115436d1990ec817afdf153cec8bd
2   lib,
3   stdenv,
4   fetchFromGitLab,
5   buildLinux,
6   variant,
7   ...
8 }@args:
10 let
11   # These names are how they are designated in https://xanmod.org.
13   # NOTE: When updating these, please also take a look at the changes done to
14   # kernel config in the xanmod version commit
15   variants = {
16     lts = {
17       version = "6.6.70";
18       hash = "sha256-5G3Lo+dWObVDaBRzn2Ho24R2vMjsupx5z2jRIQ0NAl0=";
19     };
20     main = {
21       version = "6.12.9";
22       hash = "sha256-vA1/OhhwSKVIaLJ7uN2ut1b1/UX/mIAITQ3BqTZD9Uk=";
23     };
24   };
26   xanmodKernelFor =
27     {
28       version,
29       suffix ? "xanmod1",
30       hash,
31     }:
32     buildLinux (
33       args
34       // rec {
35         inherit version;
36         pname = "linux-xanmod";
37         modDirVersion = lib.versions.pad 3 "${version}-${suffix}";
39         src = fetchFromGitLab {
40           owner = "xanmod";
41           repo = "linux";
42           rev = modDirVersion;
43           inherit hash;
44         };
46         structuredExtraConfig = with lib.kernel; {
47           # CPUFreq governor Performance
48           CPU_FREQ_DEFAULT_GOV_PERFORMANCE = lib.mkOverride 60 yes;
49           CPU_FREQ_DEFAULT_GOV_SCHEDUTIL = lib.mkOverride 60 no;
51           # Full preemption
52           PREEMPT = lib.mkOverride 60 yes;
53           PREEMPT_VOLUNTARY = lib.mkOverride 60 no;
55           # Google's BBRv3 TCP congestion Control
56           TCP_CONG_BBR = yes;
57           DEFAULT_BBR = yes;
59           # Preemptive Full Tickless Kernel at 250Hz
60           HZ = freeform "250";
61           HZ_250 = yes;
62           HZ_1000 = no;
64           # RCU_BOOST and RCU_EXP_KTHREAD
65           RCU_EXPERT = yes;
66           RCU_FANOUT = freeform "64";
67           RCU_FANOUT_LEAF = freeform "16";
68           RCU_BOOST = yes;
69           RCU_BOOST_DELAY = freeform "0";
70           RCU_EXP_KTHREAD = yes;
71         };
73         extraMeta = {
74           branch = lib.versions.majorMinor version;
75           maintainers = with lib.maintainers; [
76             moni
77             lovesegfault
78             atemu
79             shawn8901
80             zzzsy
81             eljamm
82           ];
83           description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
84           broken = stdenv.hostPlatform.isAarch64;
85         };
86       }
87       // (args.argsOverride or { })
88     );
90 xanmodKernelFor variants.${variant}