{ config, lib, pkgs, ... }: { imports = [ ]; config = lib.mkMerge [ { } (lib.mkIf (!config.me.buildingIso) { nix.settings.system-features = lib.mkForce [ "gccarch-znver4" "gccarch-skylake" # "gccarch-alderlake" missing WAITPKG "gccarch-x86-64-v3" "gccarch-x86-64-v4" "benchmark" "big-parallel" "kvm" "nixos-test" ]; # nixpkgs.hostPlatform = { # gcc.arch = "znver4"; # gcc.tune = "znver4"; # system = "x86_64-linux"; # }; nixpkgs.overlays = [ ( self: super: let optimizeWithFlags = pkg: flags: pkg.overrideAttrs (old: { NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ flags; }); addConfig = additionalConfig: pkg: pkg.override (oldconfig: { structuredExtraConfig = pkg.structuredExtraConfig // additionalConfig; }); in { linux_znver4 = addConfig { # Full preemption PREEMPT = lib.mkOverride 60 lib.kernel.yes; PREEMPT_VOLUNTARY = lib.mkOverride 60 lib.kernel.no; # Google's BBRv3 TCP congestion Control TCP_CONG_BBR = lib.kernel.yes; DEFAULT_BBR = lib.kernel.yes; # Preemptive Full Tickless Kernel at 300Hz HZ = lib.kernel.freeform "300"; HZ_300 = lib.kernel.yes; HZ_1000 = lib.kernel.no; } ( optimizeWithFlags super.linux_6_12 [ "-march=znver4" "-mtune=znver4" ] ); } ) ]; boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_znver4; }) (lib.mkIf (config.me.buildingIso) { boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_6_12; boot.supportedFilesystems.zfs = true; }) ]; }