+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.
