- client: when suspending a GPU job,

always remove it from memory, even if it hasn't checkpointed.
    Otherwise we'll typically run another GPU job right away,
    and it will bomb out or revert to CPU mode because it
    can't allocate video RAM

svn path=/trunk/boinc/; revision=18503
This commit is contained in:
David Anderson 2009-06-26 20:54:44 +00:00
parent 2a0a83d1c8
commit 6a22356497
2 changed files with 20 additions and 14 deletions

View File

@ -6031,3 +6031,13 @@ Charlie 23 June 2009
clientscr/
res/
ProgThruProc_ss_logo.png
David 26 June 2009
- client: when suspending a GPU job,
always remove it from memory, even if it hasn't checkpointed.
Otherwise we'll typically run another GPU job right away,
and it will bomb out or revert to CPU mode because it
can't allocate video RAM
client/
app.cpp

View File

@ -98,25 +98,21 @@ int ACTIVE_TASK::preempt(int preempt_type) {
remove = false;
break;
case REMOVE_MAYBE_USER:
if (checkpoint_elapsed_time == 0) {
remove = false;
break;
}
if (result->uses_coprocs() && checkpoint_wall_time) {
remove = true;
break;
}
remove = !gstate.global_prefs.leave_apps_in_memory;
break;
case REMOVE_MAYBE_SCHED:
if (checkpoint_elapsed_time == 0) {
remove = false;
break;
}
// GPU jobs: always remove from mem, since it's tying up GPU RAM
//
if (result->uses_coprocs()) {
remove = true;
break;
}
// if it's never checkpointed, leave in mem
//
if (checkpoint_elapsed_time == 0) {
remove = false;
break;
}
// otherwise obey user prefs
//
remove = !gstate.global_prefs.leave_apps_in_memory;
break;
case REMOVE_ALWAYS: