summary refs log tree commit diff
path: root/modules/tasks
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2011-12-20 22:44:58 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2011-12-20 22:44:58 +0000
commitcf36b3db809da129e2046d4948082d1ed0ac09ec (patch)
treea980ad22db96f50b771881e171dd29f21171bbe5 /modules/tasks
parent2ff7b1284a555f2f812e3dced3c5c36c155a7a1e (diff)
downloadnixpkgs-cf36b3db809da129e2046d4948082d1ed0ac09ec.tar
nixpkgs-cf36b3db809da129e2046d4948082d1ed0ac09ec.tar.gz
nixpkgs-cf36b3db809da129e2046d4948082d1ed0ac09ec.tar.bz2
nixpkgs-cf36b3db809da129e2046d4948082d1ed0ac09ec.tar.lz
nixpkgs-cf36b3db809da129e2046d4948082d1ed0ac09ec.tar.xz
nixpkgs-cf36b3db809da129e2046d4948082d1ed0ac09ec.tar.zst
nixpkgs-cf36b3db809da129e2046d4948082d1ed0ac09ec.zip
* If power management is enabled, set the governor to ‘ondemand’ by
  default.  See
  
    http://www.codon.org.uk/~mjg59/power/good_practices.html
    
  for the reasoning.  (Basically, the ‘performance’ and ‘powersave’
  governors don't actually provide extra performance or power savings
  in most cases.)

  It used to be that desktop environments like KDE were able to set
  the governor through HAL (e.g. KDE could be configured to switch to
  the powersave governor when the user unplugs his laptop).  However,
  this is no longer the case with upower — it is now expected that
  everybody uses the ondemand governor.  See

    http://old.nabble.com/-PATCH--powerdevil-remove-cpufreq.patch-td27815354.html

* Rename ‘cpuFreqGovernor’ to ‘powerManagement.cpuFreqGovernor’.

* Include cpufreq-utils in the system path if a governor is set, since
  we depend on it anyway.

svn path=/nixos/trunk/; revision=30991
Diffstat (limited to 'modules/tasks')
-rw-r--r--modules/tasks/cpu-freq.nix16
1 files changed, 11 insertions, 5 deletions
diff --git a/modules/tasks/cpu-freq.nix b/modules/tasks/cpu-freq.nix
index 6498b45a635..b7d9756db1b 100644
--- a/modules/tasks/cpu-freq.nix
+++ b/modules/tasks/cpu-freq.nix
@@ -6,7 +6,8 @@ with pkgs.lib;
   ###### interface
 
   options = {
-    cpuFreqGovernor = mkOption {
+  
+    powerManagement.cpuFreqGovernor = mkOption {
       default = "";
       example = "ondemand";
       description = ''
@@ -15,13 +16,17 @@ with pkgs.lib;
         "userspace".
       '';
     };
+    
   };
 
 
   ###### implementation
 
-  config = mkIf (config.cpuFreqGovernor != "") ({
-    jobs.cpuFreq =
+  config = mkIf (config.powerManagement.cpuFreqGovernor != "") {
+
+    environment.systemPackages = [ pkgs.cpufrequtils ];
+
+    jobs.cpufreq =
       { description = "Initialize CPU frequency governor";
 
         startOn = "started udev";
@@ -30,10 +35,11 @@ with pkgs.lib;
 
         script = ''
           for i in $(seq 0 $(($(nproc) - 1))); do
-            ${pkgs.cpufrequtils}/bin/cpufreq-set -g ${config.cpuFreqGovernor} -c $i
+            ${pkgs.cpufrequtils}/bin/cpufreq-set -g ${config.powerManagement.cpuFreqGovernor} -c $i
           done
         '';
       };
-  });
+      
+  };
 
 }