From fc5fb9af0ed91860e5f8a0a41ac95d323fefc7ce Mon Sep 17 00:00:00 2001 From: k3t Date: Sat, 8 Aug 2026 01:25:08 -0600 Subject: [PATCH] many performance optimizations --- modules/sys/hw/cpu/amd64.nix | 23 ++++++++++++++----- modules/sys/hw/cpu/intel.nix | 18 +++++++++++---- modules/sys/hw/gpu/amd.nix | 1 + modules/sys/hw/gpu/intel.nix | 34 ++++++++++++++++------------ modules/sys/perf.nix | 44 +++++++++++++++++++++++++++++------- 5 files changed, 86 insertions(+), 34 deletions(-) diff --git a/modules/sys/hw/cpu/amd64.nix b/modules/sys/hw/cpu/amd64.nix index cf4a151..e0d7d8f 100644 --- a/modules/sys/hw/cpu/amd64.nix +++ b/modules/sys/hw/cpu/amd64.nix @@ -1,9 +1,20 @@ { pkgs, ... }: { - hardware.cpu.amd.updateMicrocode = true; - boot.kernelPackages = pkgs.linuxPackages_xanmod_latest; - boot.binfmt.preferStaticEmulators = true; - boot.binfmt.emulatedSystems = [ "aarch64-linux" "x86_64-windows" ]; - boot.kernelModules = [ "kvm-amd" ]; -} \ No newline at end of file + hardware.cpu.amd = { + ryzen-smu.enable = true; + updateMicrocode = true; + }; + boot = { + binfmt = { + preferStaticEmulators = true; + emulatedSystems = [ "aarch64-linux" "x86_64-windows" ]; + }; + kernelModules = [ "kvm-amd" ]; + kernelPackages = pkgs.linuxPackages_xanmod_latest; + }; + programs = { + ryzen-monitor-ng.enable = true; + corectrl.enable = true; + }; +} diff --git a/modules/sys/hw/cpu/intel.nix b/modules/sys/hw/cpu/intel.nix index ef203b6..4f35a1e 100644 --- a/modules/sys/hw/cpu/intel.nix +++ b/modules/sys/hw/cpu/intel.nix @@ -2,8 +2,16 @@ { hardware.cpu.intel.updateMicrocode = true; - boot.kernelPackages = pkgs.linuxPackages_xanmod_latest; - boot.binfmt.preferStaticEmulators = true; - boot.binfmt.emulatedSystems = [ "aarch64-linux" "x86_64-windows" ]; - boot.kernelModules = [ "kvm-intel" ]; -} \ No newline at end of file + boot = { + binfmt = { + preferStaticEmulators = true; + emulatedSystems = [ "aarch64-linux" "x86_64-windows" ]; + }; + kernelModules = [ "kvm-intel" ]; + kernelPackages = pkgs.linuxPackages_xanmod_latest; + }; + services = { + thermald.enable = true; + throttled.enable = true; + }; +} diff --git a/modules/sys/hw/gpu/amd.nix b/modules/sys/hw/gpu/amd.nix index 9dcaa9b..735d1a9 100644 --- a/modules/sys/hw/gpu/amd.nix +++ b/modules/sys/hw/gpu/amd.nix @@ -6,6 +6,7 @@ nixpkgs.config.rocmSupport = true; hardware = { amdgpu = { + overdrive.enable = true; opencl.enable = true; initrd.enable = true; zluda.enable = true; diff --git a/modules/sys/hw/gpu/intel.nix b/modules/sys/hw/gpu/intel.nix index 5b2e44f..44e057a 100644 --- a/modules/sys/hw/gpu/intel.nix +++ b/modules/sys/hw/gpu/intel.nix @@ -2,20 +2,24 @@ { boot.kernelParams = [ "i915.enable_guc=3" ]; # Graphics - hardware.enableRedistributableFirmware = true; - hardware.graphics = { - enable = true; - enable32Bit = true; - extraPackages = with pkgs; [ - # Required for modern Intel GPUs (Xe iGPU and ARC) - intel-media-driver # VA-API (iHD) userspace - vpl-gpu-rt # oneVPL (QSV) runtime + hardware = { + enableRedistributableFirmware = true; + intel-gpu-tools.enable = true; + graphics = { + enable = true; + enable32Bit = true; + extraPackages = with pkgs; [ + # Required for modern Intel GPUs (Xe iGPU and ARC) + intel-media-driver # VA-API (iHD) userspace + vpl-gpu-rt # oneVPL (QSV) runtime - # Optional (compute / tooling): - intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe - # NOTE: 'intel-ocl' also exists as a legacy package; not recommended for Arc/Xe. - libvdpau-va-gl # Only if you must run VDPAU-only apps - vkbasalt - ]; + # Optional (compute / tooling): + intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe + # NOTE: 'intel-ocl' also exists as a legacy package; not recommended for Arc/Xe. + libvdpau-va-gl # Only if you must run VDPAU-only apps + vkbasalt + ]; + }; }; -} \ No newline at end of file + virtualisation.kvmgt.enable = true; +} diff --git a/modules/sys/perf.nix b/modules/sys/perf.nix index 21935c5..b50ed77 100644 --- a/modules/sys/perf.nix +++ b/modules/sys/perf.nix @@ -8,17 +8,45 @@ }; }; services.fstrim.enable = true; - services.system76-scheduler.enable = true; - #services.thermald.enable = true; + services.system76-scheduler = { + enable = true; + settings = { + processScheduler = { + foregroundBoost = { + #background = { + # ioClass = "idle"; + #}; + foreground = { + ioClass = "realtime"; + class = "fifo"; + }; + }; + pipewireBoost.profile = { + ioClass = "realtime"; + class = "fifo"; + }; + }; + }; + }; services.power-profiles-daemon.enable = true; - systemd.coredump.enable = false; + systemd.coredump = { # https://discourse.nixos.org/t/how-to-completely-disable-coredump/77335/11 + enable = true; + settings.Coredump = { + Storage = "none"; + ProcessSizeMax = "0"; + }; zramSwap = { enable = true; algorithm = "zstd"; memoryPercent = 90; }; - services.udev.extraRules = '' - ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="kyber" - ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="kyber" - ''; -} \ No newline at end of file + hardware.block.scheduler = { + "mmcblk[0-9]*" = "bfq"; + "nvme[0-9]*" = "kyber"; + "sd[a-z]" = "kyber"; + }; + services.scx = { + enable = true; + scheduler = "scx_cake"; + }; +}