- client: CPU sched bug fixes when project has huge DCF.

Also prevent switching between two jobs with same deadline.

svn path=/trunk/boinc/; revision=14355
This commit is contained in:
David Anderson 2007-12-04 23:48:08 +00:00
parent c962ad507d
commit eaeacc8404
2 changed files with 10 additions and 3 deletions

View File

@ -12103,3 +12103,10 @@ David 4 Dec 2007
html/user/
team_edit_action.php
David 4 Dec 2007
- client: CPU sched bug fixes when project has huge DCF.
Also prevent switching between two jobs with same deadline.
client/
cpu_sched.C

View File

@ -205,14 +205,13 @@ RESULT* CLIENT_STATE::earliest_deadline_result() {
if (!rp->runnable()) continue;
if (rp->project->non_cpu_intensive) continue;
if (rp->already_selected) continue;
if (!rp->project->deadlines_missed) continue;
if (!rp->project->deadlines_missed && rp->project->duration_correction_factor < 90.0) continue;
// treat projects with DCF>90 as if they had deadline misses
bool new_best = false;
if (best_result) {
if (rp->report_deadline < best_result->report_deadline) {
new_best = true;
} else if (rp->project->duration_correction_factor > 90.0) {
new_best = true;
}
} else {
new_best = true;
@ -233,6 +232,7 @@ RESULT* CLIENT_STATE::earliest_deadline_result() {
if (best_atp && !atp) continue;
if (rp->estimated_cpu_time_remaining(false)
< best_result->estimated_cpu_time_remaining(false)
|| (!best_atp && atp)
) {
best_result = rp;
best_atp = atp;