+David  16 May 2011
+    - client: XML-escape the contents of stderr files;
+        otherwise non-ASCII characters in client_state.xml
+        make it invalid XML
+    - client: fix (I think) to scheduling logic.
+        a job is preemptable if it's finished its time slice and
+        Old: has checkpointed in last 10 sec
+        New: has checkpointed since the end of the time slice
+
+    client/
+        app_control.cpp
+        cpu_sched.cpp

The 10 seconds was there so that tasks that only occasionally checkpointed
would wait till the next checkpoint after the time slice ended to alow a
pre-empt.  Since this loop runs once per second, typically the amount of
work that would be discarded by a machine restart would only be a second,
maximum of 10 seconds.  The re-write allows very large amounts of work at
risk at a machine restart.  If a task belongs to a project with a high
resource share, and it checkpointed at 5 minutes and then not again, it
would be possible to have a couple of days of work that was at risk of loss
when BOINC switches to a different task.  This is not a hypothetical case
as there is a project that behaves pretty much like this.  I know that this
does not work quite as well with multi threaded applications, but most of
the projects are still single threaded.

jm7

_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to