Package: boinc-client
Version: 5.10.30-2
Severity: important
Tags: patch

--- Please enter the report below this line. ---
The CFS in Linux 2.6.24 has the side effect that the boinc user's idle process 
takes about half of the cpu cycles.
This causes severe performance regressions when running boinc-client: half of 
the cpu cycles are always assigned to boinc and the cpu stepping does not get 
increased (from 1GHz to 1.8GHz here), when there is non-boinc load.

The attached patch changes the cpu_share of the boinc user to "2" in the init 
script ("1" would be better probably, but that causes my system to hard-lock, 
others cannot confirm though, see 
http://bugzilla.kernel.org/show_bug.cgi?id=9779).


-- 
http://daniel.hahler.de/
--- debian/boinc-client.init	2008-01-19 20:50:40.000000000 +0100
+++ /etc/init.d/boinc-client	2008-01-19 16:12:43.000000000 +0100
@@ -129,6 +129,13 @@
       (schedtool -n 19 -N $pid $children >/dev/null \
         && log_progress_msg "normal")
     fi
+
+    # Adjust Linux CFS CPU share (default is 1024, 1 would halt the system):
+    UID=`id -u $BOINC_USER`
+    CPU_SHARE_FILE="/sys/kernel/uids/$UID/cpu_share"
+    if [ -f "$CPU_SHARE_FILE" ]; then
+      echo 2 > "$CPU_SHARE_FILE"
+    fi
   fi
   log_end_msg 0
 }
@@ -148,6 +155,13 @@
         schedtool $children
       fi
     fi
+
+    UID=`id -u $BOINC_USER`
+    CPU_SHARE_FILE="/sys/kernel/uids/$UID/cpu_share"
+    if [ -f "$CPU_SHARE_FILE" ]; then
+      log_success_msg "cpu_share: `cat "$CPU_SHARE_FILE"`"
+    fi
+
   else
     log_success_msg "$STATUS stopped."
   fi

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to