boinc/lib
David Anderson d6da81b862 client: fix bugs with CPU throttling and GPU apps
Various bad things could happen when CPU throttling was used together w/ GPU apps.
Examples:
- on a multi-GPU system, several GPU tasks are assigned to the same GPU
- a suspended GPU task remains in memory (tying up its GPU resources)
while other tasks try to use the GPU.

The problem was that parts of the code assumed that suspended
GPU processes don't exist - i.e. that when a GPU task is suspended
it's always removed from memory.
This isn't true in the presence of CPU throttling.

So I made the following changes:
- When assigning GPUs to tasks, treat suspended tasks like running tasks
  (i.e. reserve their GPUs)
- At the end of the CPU-scheduling logic, if there are any GPU tasks
  that are suspended and not scheduled, remove them from memory,
  and trigger a reschedule so we can reallocate their GPUs.

Also, a cosmetic change: in the resource usage string shown in the GUI,
include "(device X)" even if the task is suspended (i.e. because of throttling).

Also: zero out COPROC::opencl_device_indexes[] so we don't write
a garbage number to init_data.xml for non-OpenCL jobs
2013-11-29 11:44:09 -08:00
..
mac Mac: Fixes to allow minor OS versions > 9 and major OS versions > 10 2013-11-15 05:02:04 -08:00
Makefile.am Fix for fcgi compiles. 2013-10-28 16:19:48 -07:00
Makefile.mingw Fix regression in c1ee472 (not fixed in d5fdf4b) 2013-11-08 15:59:47 +01:00
app_ipc.cpp client: Add vm_extensions_disabled as an element to APP_INIT_DAATA. We can use the additional information to selectively enable/disable hardware acceleration in VirtualBox. 2013-10-03 23:52:05 -04:00
app_ipc.h client: Add vm_extensions_disabled as an element to APP_INIT_DAATA. We can use the additional information to selectively enable/disable hardware acceleration in VirtualBox. 2013-10-03 23:52:05 -04:00
average.cpp
average.h - more code cleanup 2012-07-02 19:31:34 +00:00
base64.cpp - lib: switch include order to the way it was (general to specific). 2012-08-11 05:47:18 +00:00
base64.h
boinc_fcgi.cpp - lib: switch include order to the way it was (general to specific). 2012-08-11 05:47:18 +00:00
boinc_fcgi.h
boinc_win.cpp More Line Ending Changes 2013-03-04 17:19:38 +01:00
boinc_win.h client: Give boinc_master full control of any process spawned using the service token created by the client for boinc_project. 2013-11-14 23:26:06 -05:00
cal_boinc.h
cc_config.cpp client (Android): put default prefs in code instead of config file; make report_results_immediately the default 2013-08-15 12:32:48 -07:00
cc_config.h client: show event log line limit in event log at startup 2013-06-07 15:20:14 -07:00
cert_sig.cpp Line ending changes 2013-03-04 17:12:12 +01:00
cert_sig.h
cl_boinc.h
common_defs.h Remote job submission: add C++ APIs for query_batches() and query_batch() 2013-10-22 15:27:34 -07:00
coproc.cpp scheduler: fix bug that prevented Intel GPU work from being sent to anonymous platform clients 2013-11-21 22:31:15 -08:00
coproc.h client: fix bugs with CPU throttling and GPU apps 2013-11-29 11:44:09 -08:00
crypt.cpp Various: Fix some compile warnings; from Gianfranco 2013-07-09 10:34:32 -07:00
crypt.h - more code cleanup 2012-07-02 19:31:34 +00:00
crypt_prog.cpp
daemonmgt.h
daemonmgt_win.cpp
diagnostics.cpp Fix win compile warnings. Let's shoot for zero warnings, OK? 2013-11-11 10:42:03 -08:00
diagnostics.h Fix win compile warnings. Let's shoot for zero warnings, OK? 2013-11-11 10:42:03 -08:00
diagnostics_win.cpp LIB: Standardize on using windows_format_error_string and drop windows_error_string. 2013-03-04 17:39:24 +01:00
diagnostics_win.h Win compile fixes 2012-08-01 21:02:54 +00:00
error_numbers.h VBOX: Add code to vboxwrapper to bubble up out of memory errors for guest VM applications to the server. 2013-10-03 12:59:04 -04:00
filesys.cpp all components: change strcpy() to strlcpy() when possible. 2013-06-03 20:24:48 -07:00
filesys.h - client (Win) preallocate large files to avoid file fragmentation 2013-03-04 15:23:37 +01:00
gui_rpc_client.cpp client and manager: the set_cc_config and get_cc_config GUI RPCs had nonstandard replies, which weren't parsed correctly by the calling code. 2013-08-11 00:23:41 -07:00
gui_rpc_client.h GUI RPC: add cpu_time (as well as elapsed_time) to OLD_RESULT 2013-10-18 00:46:48 -07:00
gui_rpc_client_ops.cpp GUI RPC: add cpu_time (as well as elapsed_time) to OLD_RESULT 2013-10-18 00:46:48 -07:00
gui_rpc_client_print.cpp boinccmd: show daily xfers using %f to handle > 2 GB 2013-11-25 22:50:13 -08:00
hostinfo.cpp scheduler: parse OpenCL/CPU descriptors, and add plan class for OpenCL/CPU/Intel 2013-08-26 23:32:32 -07:00
hostinfo.h lib: fix a comment 2013-08-22 05:20:29 -07:00
idlemon.h
idlemon_win.cpp
md5.c
md5.h
md5_file.cpp - lib: switch include order to the way it was (general to specific). 2012-08-11 05:47:18 +00:00
md5_file.h - XML parser: return error if string exceeds buffer size. 2013-03-29 22:36:53 -07:00
md5_test.cpp
mem_usage.cpp - fix a few unlikely but possible file-descriptor leaks 2013-03-01 16:17:19 +01:00
mem_usage.h
mfile.cpp - restore 2 commits erased by Charlie's Dec 10 commit 2013-03-04 17:17:10 +01:00
mfile.h
miofile.cpp Fix for fcgi compiles. 2013-10-28 16:19:48 -07:00
miofile.h - tabs -> spaces 2013-04-02 17:23:37 -07:00
msg_log.cpp - client: treat all 4xx HTTP errors as permanent 2012-08-13 18:23:20 +00:00
msg_log.h - client: treat all 4xx HTTP errors as permanent 2012-08-13 18:23:20 +00:00
msg_queue.cpp - lib: switch include order to the way it was (general to specific). 2012-08-11 05:47:18 +00:00
msg_queue.h - more code cleanup 2012-07-02 19:31:34 +00:00
msg_test.cpp all components: change strcpy() to strlcpy() when possible. 2013-06-03 20:24:48 -07:00
network.cpp BOINC lib: change get_mac_address to return just one address; prefer Ethernet 2013-11-18 10:20:46 -08:00
network.h BOINC lib: change get_mac_address to return just one address; prefer Ethernet 2013-11-18 10:20:46 -08:00
notice.cpp - lib: switch include order to the way it was (general to specific). 2012-08-11 05:47:18 +00:00
notice.h
opencl_boinc.cpp client: fix Event Log descriptions of OpenCL CPUs: 2013-10-11 03:47:56 -07:00
opencl_boinc.h client: fix Event Log descriptions of OpenCL CPUs: 2013-10-11 03:47:56 -07:00
parse.cpp all components: change strcpy() to strlcpy() when possible. 2013-06-03 20:24:48 -07:00
parse.h all components: change strcpy() to strlcpy() when possible. 2013-06-03 20:24:48 -07:00
parse_test.cpp Condor interface: various fixes, mostly from Jaime Frey 2013-05-27 11:45:10 -07:00
prefs.cpp client (Android): put default prefs in code instead of config file; make report_results_immediately the default 2013-08-15 12:32:48 -07:00
prefs.h client (Android): make max battery temperature a preference 2013-06-20 21:47:34 -07:00
proc_control.cpp Fix win compile warnings. Let's shoot for zero warnings, OK? 2013-11-11 10:42:03 -08:00
proc_control.h David 11 Dec 2012 2013-03-04 17:02:40 +01:00
procinfo.cpp Fix warnings of class or global variables shadowed by local variables or arguments 2013-07-29 01:31:09 -07:00
procinfo.h - tabs -> spaces 2013-04-02 17:23:37 -07:00
procinfo_mac.cpp - lib: switch include order to the way it was (general to specific). 2012-08-11 05:47:18 +00:00
procinfo_unix.cpp client and API, Unix: code cleanup, no functional change 2013-08-16 12:20:01 -07:00
procinfo_win.cpp lib: Add missing entry for Charity Engine when identifying an application as a BOINC app or not. 2013-10-23 14:19:04 -04:00
proxy_info.cpp - tabs -> spaces 2013-04-02 17:23:37 -07:00
proxy_info.h - tabs -> spaces 2013-04-02 17:23:37 -07:00
remote_submit.cpp Remote job submission: add C++ APIs for query_batches() and query_batch() 2013-10-22 15:27:34 -07:00
remote_submit.h Client: for VM apps, use rsc_memory_bound as the working set size. 2013-10-22 22:21:13 -07:00
run_app_windows.cpp client: Give boinc_master full control of any process spawned using the service token created by the client for boinc_project. 2013-11-14 23:26:06 -05:00
run_app_windows.h client: Give boinc_master full control of any process spawned using the service token created by the client for boinc_project. 2013-11-14 23:26:06 -05:00
shmem.cpp - lib: switch include order to the way it was (general to specific). 2012-08-11 05:47:18 +00:00
shmem.h - Client: initial checkin for Android version. From Joachim Fritzsch. 2012-08-04 00:27:32 +00:00
shmem_test.cpp
stackwalker_imports.h - WIN: Don't include the newer DBGHELP symbols in MinGW64. 2012-08-06 15:39:37 +00:00
stackwalker_win.cpp
stackwalker_win.h
std_fixes.h
str_replace.h remove dependency of boinc_api.h on str_replace.h (and hence config.h) 2013-06-06 17:31:46 -07:00
str_util.cpp Compile fixes for C++11, from Rene Ladan 2013-11-05 09:19:27 -08:00
str_util.h Remote job submission: add C++ APIs for query_batches() and query_batch() 2013-10-22 15:27:34 -07:00
synch.cpp - server: compile fix 2012-08-11 16:42:29 +00:00
synch.h
synch_test.cpp
translate.cpp Mac installer: Don't load more languages for a catalog if we've already loaded it for English 2013-08-16 21:48:18 -07:00
translate.h lib: Fix bugs and license in simplified string localization code adapted from wxWidgets. 2013-06-13 16:33:15 -07:00
unix_util.cpp - lib: switch include order to the way it was (general to specific). 2012-08-11 05:47:18 +00:00
unix_util.h
url.cpp all components: change strcpy() to strlcpy() when possible. 2013-06-03 20:24:48 -07:00
url.h Mac installer: Fix build breaks due to recent changes for strcpy -> strlcpy. 2013-06-04 00:55:57 -07:00
util.cpp LIB: Simplify logic for get_exit_status(). Put caller to sleep until process exits, then check for it's exit status. 2013-07-15 19:34:25 -04:00
util.h LIB: Standardize on using windows_format_error_string and drop windows_error_string. 2013-03-04 17:39:24 +01:00
win_util.cpp client: Give boinc_master full control of any process spawned using the service token created by the client for boinc_project. 2013-11-14 23:26:06 -05:00
win_util.h client: Give boinc_master full control of any process spawned using the service token created by the client for boinc_project. 2013-11-14 23:26:06 -05:00
x_util.cpp