{ config, lib, pkgs, ... }: { imports = [ ]; 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; }); in { # linux # linux_6_11 # linux_zen linux_znver4 = optimizeWithFlags super.linux_6_12 [ "-march=znver4" "-mtune=znver4" ]; } ) # ( # 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 # { # # CPUFreq governor Performance # CPU_FREQ_DEFAULT_GOV_PERFORMANCE = lib.mkOverride 60 lib.kernel.yes; # CPU_FREQ_DEFAULT_GOV_SCHEDUTIL = lib.mkOverride 60 lib.kernel.no; # # 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 250Hz # HZ = lib.kernel.freeform "250"; # HZ_250 = lib.kernel.yes; # HZ_1000 = lib.kernel.no; # } # ( # optimizeWithFlags super.linux_6_11 [ # "-march=znver4" # "-mtune=znver4" # ] # ); # } # ) ]; boot.kernelPackages = lib.mkIf (!config.me.buildingIso) (pkgs.linuxPackagesFor pkgs.linux_znver4); }