Switch to a 300hz tickless kernel and enable BBR.

Aside from BBR, these settings are copied from arch linux.
This commit is contained in:
Tom Alexander 2025-01-18 20:15:20 -05:00
parent ed0d1e41d6
commit 8e22d8febb
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE

View File

@ -34,60 +34,37 @@
pkg.overrideAttrs (old: {
NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ flags;
});
addConfig =
additionalConfig: pkg:
pkg.override (oldconfig: {
structuredExtraConfig = pkg.structuredExtraConfig // additionalConfig;
});
in
{
# linux
# linux_6_11
# linux_zen
linux_znver4 = optimizeWithFlags super.linux_6_12 [
"-march=znver4"
"-mtune=znver4"
];
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"
]
);
}
)
# (
# 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);