From 71ecfd47a0dd363ffe3e8c953c3db5132a492798 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Wed, 21 Apr 2010 04:00:17 +0000 Subject: [PATCH] svn path=/trunk/boinc/; revision=21226 --- checkin_notes | 12 ++++++++++++ client/client_types.cpp | 1 + client/cpu_sched.cpp | 7 ++++++- clientgui/ViewWork.cpp | 3 +++ lib/gui_rpc_client.h | 1 + lib/gui_rpc_client_ops.cpp | 2 ++ 6 files changed, 25 insertions(+), 1 deletion(-) diff --git a/checkin_notes b/checkin_notes index 7613c17861..9d903fbcad 100644 --- a/checkin_notes +++ b/checkin_notes @@ -2967,3 +2967,15 @@ Charlie 19 Apr 2010 mac_installer/ PostInstall.cpp + +David 20 Apr 2010 + - client: show "waiting for GPU memory" in task status + + client/ + client_types.cpp + cpu_sched.cpp + clientgui/ + ViewWork.cpp + lib/ + gui_rpc_client.h + gui_rpc_client_ops.cpp diff --git a/client/client_types.cpp b/client/client_types.cpp index 303b81d671..b759c4c71b 100644 --- a/client/client_types.cpp +++ b/client/client_types.cpp @@ -1757,6 +1757,7 @@ int RESULT::write_gui(MIOFILE& out) { if (project->suspended_via_gui) out.printf(" \n"); if (edf_scheduled) out.printf(" \n"); if (coproc_missing) out.printf(" \n"); + if (schedule_backoff > gstate.now) out.printf(" \n"); ACTIVE_TASK* atp = gstate.active_tasks.lookup_result(this); if (atp) { atp->write_gui(out); diff --git a/client/cpu_sched.cpp b/client/cpu_sched.cpp index 05a96c6ecf..2ca331e67b 100644 --- a/client/cpu_sched.cpp +++ b/client/cpu_sched.cpp @@ -1114,9 +1114,14 @@ static inline bool get_integer_assignment( if (nfree < usage) { if (log_flags.coproc_debug) { msg_printf(rp->project, MSG_INFO, - "[coproc_debug] Insufficient %s for %s; %d < %d", + "[coproc_debug] Insufficient %s for %s; need %d, available %d", cp->type, rp->name, nfree, (int)usage ); + if (defer_sched) { + msg_printf(rp->project, MSG_INFO, + "[coproc_debug] some instances lack available memory" + ); + } } return false; } diff --git a/clientgui/ViewWork.cpp b/clientgui/ViewWork.cpp index 5a3ce0a5b8..d68d82efca 100644 --- a/clientgui/ViewWork.cpp +++ b/clientgui/ViewWork.cpp @@ -1185,6 +1185,9 @@ void CViewWork::GetDocStatus(wxInt32 item, wxString& strBuffer) const { } else { strBuffer += _("Ready to start"); } + if (result->gpu_mem_wait) { + strBuffer += _(" (waiting for GPU memory)"); + } break; case RESULT_COMPUTE_ERROR: strBuffer += _("Computation error"); diff --git a/lib/gui_rpc_client.h b/lib/gui_rpc_client.h index 791fcd1f06..f563b64c54 100644 --- a/lib/gui_rpc_client.h +++ b/lib/gui_rpc_client.h @@ -244,6 +244,7 @@ public: bool suspended_via_gui; bool project_suspended_via_gui; bool coproc_missing; + bool gpu_mem_wait; // the following defined if active bool active_task; diff --git a/lib/gui_rpc_client_ops.cpp b/lib/gui_rpc_client_ops.cpp index be3f3b7e1e..47f45e003d 100644 --- a/lib/gui_rpc_client_ops.cpp +++ b/lib/gui_rpc_client_ops.cpp @@ -458,6 +458,7 @@ int RESULT::parse(MIOFILE& in) { if (parse_bool(buf, "suspended_via_gui", suspended_via_gui)) continue; if (parse_bool(buf, "project_suspended_via_gui", project_suspended_via_gui)) continue; if (parse_bool(buf, "coproc_missing", coproc_missing)) continue; + if (parse_bool(buf, "gpu_mem_wait", gpu_mem_wait)) continue; if (match_tag(buf, "")) { active_task = true; continue; @@ -520,6 +521,7 @@ void RESULT::clear() { suspended_via_gui = false; project_suspended_via_gui = false; coproc_missing = false; + gpu_mem_wait = false; active_task = false; active_task_state = 0;