[SCM] BOINC packaging branch, sid, updated. debian/7.0.27+dfsg-5-1-g5ad6009

Steffen Moeller steffen_moeller at gmx.de
Sat Jun 30 13:19:53 UTC 2012


The following commit has been merged in the sid branch:
commit 5ad6009542dee3cacdb6ae390412a01d0cab6dc8
Author: Steffen Moeller <steffen_moeller at gmx.de>
Date:   Sat Jun 30 15:19:30 2012 +0200

    Rendering priority levels configurable.

diff --git a/debian/boinc-client.default b/debian/boinc-client.default
index 8b4247b..0621d8a 100644
--- a/debian/boinc-client.default
+++ b/debian/boinc-client.default
@@ -25,3 +25,32 @@ BOINC_CLIENT="/usr/bin/boinc"
 # Type 'boinc --help' or 'man boinc' for a full summary of allowed options.
 #BOINC_OPTS="--allow_remote_gui_rpc"
 BOINC_OPTS=""
+
+# Scheduling options
+
+# Set SCHEDULE="0" if prefering to run with upstream default priority
+# settings.
+
+# Nice levels. When systems are truly busy, e.g. because of too many active
+# scientific applications started by the boinc client, there is a chance for
+# the boinc client not to be granted sufficient opportunity to check for
+# scientific applications to be alive and make the (wrong) decision to
+# terminate the scientific app. This is particularly an issue with many
+# apps started in parallel on modern multi-core systems and extra overheads
+# for the download and uploads of files with the project servers. Another
+# concern is the latency for scientific applications to communicate with the
+# graphics card, which should be low. All such values should be set and
+# controled from within the BOINC client. The Debian init script also sets
+# extra constrains via chrt on real time performance and via ionice on 
+# I/O performance, which is beyond the regular BOINC client. It then was
+# too easy to use that code to also constrain minimal nice levels. We still
+# think about how to best distinguish GPU applications from regular apps.
+BOINC_NICE_CLIENT=10
+BOINC_NICE_APP_DEFAULT=19
+#BOINC_NICE_APP_GPU=5        # not yet used
+
+# ionice classes. See manpage of ionice (1) in the util-linux package.
+BOINC_IONICE_CLIENT=3        # idle
+#BOINC_IONICE_APP_DEFAULT=3  # idle, not yet used
+#BOINC_IONICE_APP_GPU=2      # best effort, not yet used
+
diff --git a/debian/boinc-client.init b/debian/boinc-client.init
index dfb890e..2f94aad 100644
--- a/debian/boinc-client.init
+++ b/debian/boinc-client.init
@@ -33,6 +33,17 @@ BOINC_OOM_ADJ=15
 #VALGRIND_OPTIONS="-v --log-file=/tmp/valgrind_boinc.log "
 VALGRIND_OPTIONS=""
 
+# nice levels
+BOINC_NICE_CLIENT=10
+BOINC_NICE_APP_DEFAULT=19    # minimal
+#BOINC_NICE_APP_GPU=5        # less than regular, not yet used
+
+# ionice classes
+BOINC_IONICE_CLIENT=3        # idle
+#BOINC_IONICE_APP_DEFAULT=3  # idle, not yet used
+#BOINC_IONICE_APP_GPU=2      # best effort, not yet used
+
+
 # Source defaults file. Edit that file to configure this script.
 if [ -e /etc/default/boinc-client ]; then
   . /etc/default/boinc-client
@@ -169,7 +180,7 @@ schedule()
     if [ ! -x "`which ionice 2>/dev/null`" ]; then
       log_progress_msg "ionice not found,"
     else
-      if ionice -c 3 -p $pid 2>/dev/null; then
+      if ionice -c $BOINC_IONICE_CLIENT -p $pid 2>/dev/null; then
         log_progress_msg "idle,"
       else
         log_progress_msg "ionice failed,"
@@ -182,14 +193,14 @@ schedule()
       log_progress_msg "chrt not found"
     else
       # BOINC client needs higher priority than scientific apps
-      renice 10 -p $pid > /dev/null || renice -n 10 -p $pid
+      renice $BOINC_NICE_CLIENT -p $pid > /dev/null || renice -n $BOINC_NICE_CLIENT -p $pid
       # Apps receive minimal priority
       if [ -n "$children" ]; then
-        (chrt_many --idle 0 19 $children >/dev/null \
+        (chrt_many --idle 0 $BOINC_NICE_APP_DEFAULT $children >/dev/null \
           && log_progress_msg "idleprio") || \
-        (chrt_many --batch 0 19 $children >/dev/null \
+        (chrt_many --batch 0 $BOINC_NICE_APP_DEFAULT $children >/dev/null \
           && log_progress_msg "batch") || \
-        (chrt_many --other 0 19 $children >/dev/null \
+        (chrt_many --other 0 $BOINC_NICE_APP_DEFAULT $children >/dev/null \
           && log_progress_msg "normal") || \
         log_progress_msg "chrt failed"
       fi

-- 
BOINC packaging



More information about the pkg-boinc-commits mailing list