Add 'legacy/server-config/' from commit '4bc5d57fa69a393877e7019d7673ceb33c3ab4b4'
git-subtree-dir: legacy/server-config git-subtree-mainline:dc481c24b0git-subtree-split:4bc5d57fa6
This commit is contained in:
41
legacy/server-config/modules/power.nix
Normal file
41
legacy/server-config/modules/power.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
powerManagement = {
|
||||
enable = true;
|
||||
cpuFreqGovernor = "powersave";
|
||||
};
|
||||
|
||||
# Always-on server: disable all sleep targets.
|
||||
systemd.targets = {
|
||||
sleep.enable = false;
|
||||
suspend.enable = false;
|
||||
hibernate.enable = false;
|
||||
hybrid-sleep.enable = false;
|
||||
};
|
||||
|
||||
boot.kernelParams = [
|
||||
# Disable NMI watchdog at boot. Eliminates periodic perf-counter interrupts
|
||||
# across all cores (~1 W). Safe: apcupsd provides hardware hang detection
|
||||
# via UPS, and softlockup watchdog remains active.
|
||||
"nmi_watchdog=0"
|
||||
|
||||
# Route kernel work items to already-busy CPUs rather than waking idle ones.
|
||||
# Reduces C-state exit frequency at the cost of slightly higher latency on
|
||||
# work items -- irrelevant for a server whose latency-sensitive paths are
|
||||
# all in userspace (caddy, jellyfin).
|
||||
"workqueue.power_efficient=1"
|
||||
];
|
||||
|
||||
boot.kernel.sysctl = {
|
||||
# Belt-and-suspenders: also set via boot param, but sysctl ensures it
|
||||
# stays off if anything re-enables it at runtime.
|
||||
"kernel.nmi_watchdog" = 0;
|
||||
};
|
||||
|
||||
# Server has no audio consumers. Power-gate the HDA codec at module load.
|
||||
boot.extraModprobeConfig = ''
|
||||
options snd_hda_intel power_save=1 power_save_controller=Y
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user