diff --git a/hwModules/lenovo/legion/go/default.nix b/hwModules/lenovo/legion/go/default.nix index 562f71ee..f8fe9226 100644 --- a/hwModules/lenovo/legion/go/default.nix +++ b/hwModules/lenovo/legion/go/default.nix @@ -38,19 +38,26 @@ in { kernelModules = ["amdgpu"]; }; - blacklistedKernelModules = ["k10temp"]; + blacklistedKernelModules = ["k10temp"]; # Conflicts with zenpower extraModulePackages = with config.boot.kernelPackages; [acpi_call zenpower]; kernel.sysctl = { + # Improved file monitoring "fs.inotify.max_user_instances" = 8192; "fs.inotify.max_user_watches" = 524288; + + # Disable wtachdogs for maximum performance at the cost of resiliency "kernel.nmi_watchdog" = 0; "kernel.soft_watchdog" = 0; "kernel.split_lock_mitigate" = 0; "kernel.watchdog" = 0; + + # Network optimizations "net.core.default_qdisc" = "fq"; "net.ipv4.tcp_congestion_control" = "bbr"; "net.ipv4.tcp_mtu_probing" = lib.mkForce 1; + + # Memory management "vm.dirty_background_bytes" = 134217728; "vm.dirty_bytes" = 268435456; "vm.max_map_count" = lib.mkForce 2147483642; @@ -60,7 +67,9 @@ in { "vm.watermark_scale_factor" = 125; }; - kernelModules = ["zenpower"]; + kernelModules = ["zenpower"]; # Improved temperature monitoring + + # Xanmod seems more responsive under load kernelPackages = lib.mkDefault pkgs.linuxPackages_xanmod_latest; }; @@ -132,16 +141,17 @@ in { # Lenovo Legion Go Controller ACTION=="add", ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="6182", RUN+="${pkgs.kmod}/bin/modprobe xpad" RUN+="/bin/sh -c 'echo 17ef 6182 > /sys/bus/usb/drivers/xpad/new_id'" - # SSD + # Significantly improved I/O performance + ## SSD ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="kyber" - # NVME + ## NVME ACTION=="add|change", KERNEL=="nvme[0-9]n[0-9]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="kyber" - # MicroSD + ## MicroSD ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="bfq" - # HDD + ## HDD ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq" '';