Commit Graph

235 Commits

Author SHA1 Message Date
Charlie Fenton 9a4b695299 lib, MGR: Implement get_cc_config, set_cc_config RPCs
svn path=/trunk/boinc/; revision=23470
2011-04-27 11:01:07 +00:00
David Anderson 3b906a191c - client: generalize the GPU framework so that
- new GPU types can be added easily
		- users can specify GPUs in cc_config.xml,
			referred to by app_info.xml,
			and they will be scheduled by BOINC
			and passed --device N options
			Note: the parsing of cc_config.xml is not done yet.
		- RPC protocols (account manager and scheduler)
			can now specify GPU types in separate elements
			rather than embedding them in tag names
			e.g. <no_rsc>NVIDIA</no_rsc> rather than <no_cuda/>
	- client: in account manager replies, parse elements of the form
		<no_rsc>NAME</no_rsc>
		indicating the GPUs of type NAME should not be used.
		This allows account managers to control GPU types
		not hardwired into the client.
		Note: <no_cuda/> and <no_ati/> will continue to be supported.
	- scheduler RPC reply: add
		<no_rsc_apps>NAME</no_rsc_apps>
		(NAME = GPU name)
		to indicate that the project has no jobs for the indicated GPU type.
		<no_cuda_apps> etc. are still supported 
	- client/lib: remove set_debts() GUI RPC
	- client/scheduler RPC
		remove <cuda_backoff> etc. (superceded by no_app)
		Exception: <ip_result> elements in sched request
		still have <ncudas> and <natis>.
		Fix this later.

	Implementation notes:
	- client/lib: change "CUDA" to "NVIDIA" in type/variable names, and in XML
		Continue to recognize "CUDA" for compatibility
	- host_info.coprocs no longer used within the client;
		use a global var (COPROCS coprocs) instead.
		COPROCS now has an array of COPROCs;
		GPUs types are identified by the array index.
		Index zero means CPU.
	- a bunch of other resource-specific structs (like RSC_WORK_FETCH)
		are now stored in arrays, with same indices as COPROCS
		(i.e. index 0 is CPU)
	- COPROCS still has COPROC_NVIDIA and COPROC_ATI structs to hold vendor-specific info
	- APP_VERSION now has a struct GPU_USAGE to describe its GPU usage

svn path=/trunk/boinc/; revision=23253
2011-03-25 03:44:09 +00:00
David Anderson b2f04c9784 - client/manager: show venue in project properties
svn path=/trunk/boinc/; revision=22995
2011-02-04 18:52:14 +00:00
David Anderson 789f0b67fc - GUI RPC: parse GPU info, FLOPS from APP_VERSION records
(client already sends this info)

svn path=/trunk/boinc/; revision=22624
2010-11-04 21:32:05 +00:00
David Anderson 746f62ff1a - GUI RPC: remove unneeded isIPV6 flag, factor out sizeof() logic
svn path=/trunk/boinc/; revision=22472
2010-10-07 17:41:34 +00:00
Charlie Fenton 528d2b40cf lib: Fix problem with IPV6-compatible code on Mac
svn path=/trunk/boinc/; revision=22428
2010-09-30 07:42:32 +00:00
Charlie Fenton bbcc7cd36d lib: Temporary work-around for unknown problem with IPV6-compatible code on Mac
svn path=/trunk/boinc/; revision=22425
2010-09-29 23:27:44 +00:00
David Anderson 0d41de283a - client: revert to old network functions (gethostbyname() etc.) on Win:
- inet_ntop() etc. exist only on Vista+
		- the other functions are declared in winsock2.h.
			This breaks the Manager build, since wxwidgets includes winsock.h.
		So to hell with it.
	- windows build: manager doesn't depend on client

svn path=/trunk/boinc/; revision=22358
2010-09-15 20:33:44 +00:00
David Anderson 0f4735352a - client: a bit of IPv6 compatibility
- use "sockaddr_storage" to store network addresses
        (which may be IPv4 or IPv6)
        rather than assuming they fit in an int.
    - the entries in gui_rpc_auth.cfg may now be IPv6 addresses
        (a🅱️c:e:f:g format),
        or domain names of hosts that support only IPv6
    Note: GUI RPCs are still constrained to use IPv4,
    but this should be easy to change if it's every needed

    Also: replace deprecated gethostbyname() with getaddrinfo().

svn path=/trunk/boinc/; revision=22353
2010-09-15 17:41:25 +00:00
David Anderson 5989051b73 - lib: removed unneeded include. Fixes #1004
svn path=/trunk/boinc/; revision=22235
2010-08-14 13:48:26 +00:00
David Anderson e2299ef8bb - client/manager/GUI RPC: add optional "translatable" arg
to get_messages() RPC; if absent or false,
    client will strip _( ) from messages.

svn path=/trunk/boinc/; revision=21946
2010-07-14 21:23:17 +00:00
David Anderson f575d3ddd9 - GUI RPC: add NOTICES::complete, so caller knows whether
what's being returned is new notices or all notices.

svn path=/trunk/boinc/; revision=21843
2010-06-29 21:40:12 +00:00
David Anderson 9a54d6e144 - GUI RPC: include HOST_INFO in CC_STATE
svn path=/trunk/boinc/; revision=21569
2010-05-18 20:32:17 +00:00
David Anderson a62782c910 - manager: if a project has pending trickle up,
show it in the project status


svn path=/trunk/boinc/; revision=21416
2010-05-07 20:41:43 +00:00
Rom Walton 1039cbdbe0 - lib: update client-side RPC files for configured
download url.
    - manager: update get_newer_version async RPC for
        configured download url.

    clientgui/
        AsyncRPC.cpp, .h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

svn path=/trunk/boinc/; revision=21386
2010-05-05 18:30:22 +00:00
David Anderson 71ecfd47a0 svn path=/trunk/boinc/; revision=21226 2010-04-21 04:00:17 +00:00
David Anderson 0fa5b4e129 - client/manager/GUI RPC: project_info.xml file can contain <team_name>.
If present, and a new user account is created,
    it will be made a member of that team if it exists.

svn path=/trunk/boinc/; revision=21030
2010-03-30 17:46:09 +00:00
David Anderson 582dcb2912 - client/manager: prefix anonymous platform apps with "Local: "
svn path=/trunk/boinc/; revision=21023
2010-03-29 22:33:08 +00:00
David Anderson 842a073bbd - client/maanager: show "No CPU prefs" etc. in project properties
svn path=/trunk/boinc/; revision=21020
2010-03-29 19:44:22 +00:00
David Anderson 3452bbbc87 - GUI RPC: more replacement of std::string
svn path=/trunk/boinc/; revision=20889
2010-03-13 04:40:37 +00:00
David Anderson 86582342a8 - GUI RPC: in the structures used in the C++ interface to GUI RPC,
change various std::string to char[n], to improve performance.

NOTE: std::string should ONLY be used in cases where there is
no a priori limit on string length.
If there's a limit (e.g. because the string originates in
a fixed-size database field) always use char[n].

svn path=/trunk/boinc/; revision=20877
2010-03-12 17:47:17 +00:00
Rom Walton 56391da25a - lib: fixup notice RPCs to make them manager compatible.
- lib: remove memset from notice constructor, bad things can happen
        when you null out a std::string structure.
        
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp
        notice.cpp, .h
        

svn path=/trunk/boinc/; revision=20065
2010-01-04 17:43:18 +00:00
David Anderson 089a496409 - manager/client: show PID in task properties;
add PID to RESULT structure in GUI RPC

svn path=/trunk/boinc/; revision=20001
2009-12-21 17:25:43 +00:00
David Anderson 62156200f4 - client and GUI RPC: add some plumbing for notices
svn path=/trunk/boinc/; revision=19973
2009-12-18 21:52:08 +00:00
David Anderson 34a489c9bb - client/manager: show coprocessor short-term debts
svn path=/trunk/boinc/; revision=19898
2009-12-14 18:39:07 +00:00
David Anderson a98a0f4652 - boinccmd: fix output of --get_disk_usage
svn path=/trunk/boinc/; revision=19868
2009-12-12 05:11:50 +00:00
David Anderson 2ff21d2a21 - client/manager: finish "snooze GPU" button
svn path=/trunk/boinc/; revision=19854
2009-12-11 00:08:28 +00:00
David Anderson 5e862ac495 - client: on startup, if a coproc needed by a job is missing,
set a "coproc_missing" flag rather than aborting the job.
        If use removes a GPU board while there's a large queue of GPU jobs,
        they'll stay queued (until their deadline passes).

        Note: this doesn't fix the situation where user connects via
        Remote Desktop while GPU jobs are running or queued.
        We should check for Remote Desktop every minute or so, and stop GPU jobs.

svn path=/trunk/boinc/; revision=19287
2009-10-12 16:28:17 +00:00
David Anderson 208f53a51d - client/manager: add ATI stuff to GUI RPCs and manager display
svn path=/trunk/boinc/; revision=18853
2009-08-17 21:11:06 +00:00
David Anderson 786f61cfbe - file upload handler: don't treat zero-length file as an error!
(This bug has been there since 28 Oct 2004)
- GUI RPC and manager: include project backoff in FILE_TRANSFER,
    so that manager gets up-to-date value


svn path=/trunk/boinc/; revision=18786
2009-07-31 19:46:47 +00:00
David Anderson dfb1fdb034 - client/manager/GUI RPC: show project-level backoffs
svn path=/trunk/boinc/; revision=18603
2009-07-16 18:36:23 +00:00
David Anderson 9ec90c409e - GUI RPC: add get_message_seqno() RPC. fixes #931
svn path=/trunk/boinc/; revision=18576
2009-07-07 22:58:58 +00:00
Rom Walton 7546b0fe72 - MGR: Previous sorting method wasn't working, use a sort
function pointer instead.
        
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

svn path=/trunk/boinc/; revision=18532
2009-06-30 20:39:10 +00:00
David Anderson 46d9e8f087 - client: record the time results are received.
Process non-EDF GPU jobs in this order.


svn path=/trunk/boinc/; revision=18531
2009-06-30 20:22:54 +00:00
Rom Walton ed2df38f4e Group project list structures together.
svn path=/trunk/boinc/; revision=18530
2009-06-30 19:55:28 +00:00
Rom Walton d631a3c485 - MGR: Remove project list randomization, sort on name.
lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

svn path=/trunk/boinc/; revision=18529
2009-06-30 18:54:52 +00:00
Rom Walton 674437a3bc - MGR: Introduce the cookie detection failure URL to the
acct_mgr_logon.xml file. If the cookies cannot be found provide
        a hyperlink control on the AcctountInfo page in the wizard
        which will point to a fallback URL the user can go to to
        find out what logon credentials to use.
        
    client/
        acct_mgr.cpp, .h
        gui_rpc_server_ops.cpp
    clientgui/
        AccountInfoPage.cpp, .h
        BOINCWizards.h
        WizardAttachProject.cpp, .h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

svn path=/trunk/boinc/; revision=18400
2009-06-12 21:34:33 +00:00
David Anderson ca44344068 - GUI RPC: include hostid in PROJECT
- web: include timed-out and "client detached" results in error category


svn path=/trunk/boinc/; revision=18330
2009-06-08 17:08:52 +00:00
David Anderson 2d058c5cb4 - GUI RPC: add active_only option to get_results() RPC
svn path=/trunk/boinc/; revision=18304
2009-06-04 17:59:04 +00:00
David Anderson 97d50e12b9 - compile fixes for Haiku
svn path=/trunk/boinc/; revision=18213
2009-05-27 23:36:55 +00:00
David Anderson 87d50be302 - GUI RPC and manager: send slot and show it in task properties
rather than slot path
    (slot_path is defined only for apps with graphics app).

svn path=/trunk/boinc/; revision=17786
2009-04-10 19:18:44 +00:00
David Anderson cf638ae3a6 - client: instead of scheduling coproc jobs EDF:
- first schedule jobs projected to miss deadline in EDF order
    - then schedule remaining jobs in FIFO order
    This is intended to reduce the number of preemptions of coproc jobs,
    and hence (since they are always preempted by quit)
    to reduce the wasted time due to checkpoint gaps.
- client: the CPU scheduling policy made use of the number
    of deadline misses in various places.
    This should include only the deadline misses of CPU jobs.
    So move "deadlines_missed" from RR_SIM_STATUS and PROJECT
    to RSC_PROJECT_WORK_FETCH so that we have separate counts
    for CPU and coproc jobs, and use the count for CPU jobs.
- GUI RPC: removed the rr_sim_deadlines_missed field
    from project descriptor.
    This is no longer meaningful, and it didn't seem to be used anywhere.

svn path=/trunk/boinc/; revision=17785
2009-04-10 19:01:38 +00:00
Charlie Fenton 8784e2126c Update a comment.
svn path=/trunk/boinc/; revision=17692
2009-03-29 00:26:30 +00:00
Charlie Fenton a20e70fc62 Better support if platforms don't have per-thread locale; ensure Mac BOINC libraries build OK using config/make; fix Mac build breaks for example_app.
svn path=/trunk/boinc/; revision=17677
2009-03-27 05:25:58 +00:00
Charlie Fenton 2a251d4daf Fix compile break on Windows
svn path=/trunk/boinc/; revision=17663
2009-03-26 16:10:17 +00:00
Charlie Fenton 78ecec4b16 MGR: SET_LOCALE constructor, destructor change locale only if no per-thread locale, XCode project supports weak-linking of uselocale()
svn path=/trunk/boinc/; revision=17662
2009-03-26 16:05:57 +00:00
Charlie Fenton a402e3f19a MGR: Remove erroneous call of locale in main thread; set locale only on a per-thread basis
svn path=/trunk/boinc/; revision=17661
2009-03-26 01:22:35 +00:00
David Anderson dfc62d896d - Manager: show elapsed time instead of CPU time in Task tab.
CPU time is visible in task Properties.
- Manager: in task Properties, show final CPU and elapsed times
    if job is finished
- client: honor backoff for account-manager-requested scheduler RPCs
- client: keep track final elapsed time for results
- GUI RPC: report final elapsed time

svn path=/trunk/boinc/; revision=17588
2009-03-11 22:01:38 +00:00
David Anderson 7b10a4649a - manager and GUI RPC: always show resource debt and backoff even if zero;
also show backoff interval

svn path=/trunk/boinc/; revision=17419
2009-03-02 00:12:50 +00:00
Eric J. Korpela 8f3abcc835 - Added checks for net/*.h, arpa/*.h, netinet/*.h and code to figure out
which of those files to include
    - Modified MAC address check to work on some non-Linux unixes.
      (mac_address.cpp)
    - Added suggested change to "already attached to project" checking.
      (ProjectInfoPage.cpp)
    - changed includes of standard c header files to their c++ equivalents
      (i.e. replaced <stdio.h> with <cstdio>) for namespace protection.
    - replaced "using namespace std;" with more explicit "using std::function" in
      several files.
    - Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2
      to the build environment. (boinc_platform.m4,configure.ac)
    - Changed build environment to not use -nostandardlibs unless we are using
      G++ and static linkage is specified. (configure.ac)
    - Added makefiles and package building files for solaris CSW package manager.
    - Fixed bug with attempting to find login name using logname. (configure.ac)
    - Added ifdef HAVE_* protection around some include files commonly found in
      sys.
    - Added support for unified binary for x86_64/i686-pc-solaris.
      (cs_platforms.cpp)
    - generate_host_cpid() now uses MAC address on non-linux unix.
      (hostinfo_network.cpp)
    - Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc
      compilers. (boinc_set_compile_flags.m4)
    - Library compiles no longer depend upon the library extension or require
      the library to be prefixed with lib.
    - More fixes for fcgi builds.
    - Added declaration of "struct ether_addr" and ether_ntoa().  Have not yet
      implemented ether_ntoa() for machines that don't have it, or where it is
      buggy.  (unix_util.h)
    - Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp})
    - Fixed library Makefiles so that all required headers get installed.


svn path=/trunk/boinc/; revision=17388
2009-02-26 00:23:23 +00:00