forked from rarias/jungle
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { lib, ... }:
 | |
| 
 | |
| {
 | |
|   # Disable frequency boost by default. Use the intel_pstate driver instead of
 | |
|   # acpi_cpufreq driver because the acpi_cpufreq driver does not read the
 | |
|   # complete range of P-States [1]. Use the intel_pstate passive mode [2] to
 | |
|   # disable HWP, which allows a core to "select P-states by itself". Also, this
 | |
|   # disables intel governors, which confusingly, have the same names as the
 | |
|   # generic ones but behave differently [3].
 | |
| 
 | |
|   # Essentially, we use the generic governors, but use the intel driver to read
 | |
|   # the P-state list.
 | |
| 
 | |
|   # [1] - https://www.kernel.org/doc/html/latest/admin-guide/pm/intel_pstate.html#intel-pstate-vs-acpi-cpufreq
 | |
|   # [2] - https://www.kernel.org/doc/html/latest/admin-guide/pm/intel_pstate.html#passive-mode
 | |
|   # [3] - https://www.kernel.org/doc/html/latest/admin-guide/pm/intel_pstate.html#active-mode
 | |
|   # https://www.kernel.org/doc/html/latest/admin-guide/pm/cpufreq.html
 | |
| 
 | |
|   # set intel_pstate to passive mode
 | |
|   boot.kernelParams = [
 | |
|     "intel_pstate=passive"
 | |
|   ];
 | |
|   # Disable frequency boost
 | |
|   system.activationScripts = {
 | |
|     disableFrequencyBoost.text = ''
 | |
|       echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
 | |
|     '';
 | |
|   };
 | |
| 
 | |
|   ## disable intel_pstate
 | |
|   #boot.kernelParams = [
 | |
|   #  "intel_pstate=disable"
 | |
|   #];
 | |
|   ## Disable frequency boost
 | |
|   #system.activationScripts = {
 | |
|   #  disableFrequencyBoost.text = ''
 | |
|   #    echo 0 > /sys/devices/system/cpu/cpufreq/boost
 | |
|   #  '';
 | |
|   #};
 | |
| }
 |