Commit Graph

6831 Commits

Author SHA1 Message Date
David Anderson ebbf9d5636 - client: if we're going to do a scheduler RPC for reasons
other than work fetch (e.g., user request, project request)
    temporarily clear resource backoffs while deciding
    whether to request work.
    The backoffs are there only to delay RPCs,
    and we're going an RPC anyway.

svn path=/trunk/boinc/; revision=17416
2009-03-01 18:11:18 +00:00
David Anderson 346ac348b3 - client: RR sim FLOPS estimate for GPU jobs should reflect
fraction of time BOINC is running.


svn path=/trunk/boinc/; revision=17412
2009-02-27 21:44:39 +00:00
David Anderson fd5fc4a24b - client: fix bug that could cause scheduler RPC
to ask for work inappropriately,
    and tell user that it wasn't asking for work.
    Here's what was going on:
    There are two different structures with work request fields
    (req_secs, req_instances, estimated_delay):
    COPROC_CUDA *coproc_cuda
    and
    RSC_WORK_FETCH cuda_work_fetch.
    WORK_FETCH::choose_project() copied from cuda_work_fetch to coproc_cuda,
    but only if a project was selected.
    WORK_FETCH::clear_request() clears cuda_work_fetch but not coproc_cuda.

    Scenario:
    - a scheduler op is made to project A requesting X>0 secs of CUDA
    - later, a scheduler op is made to project B for reason
        other than work fetch (e.g., user request)
    - choose_project() doesn't choose anything,
        so the value of coproc_cuda->req_secs remains X
    - clear_request() is called but that doesn't change *coproc_cuda

    Solution: work-fetch code no longer knows about internals of
        COPROC_CUDA and is not responsible for settings its request fields.
        The copying of request fields from RSC_WORK_FETCH to COPROC
        is done at a higher level,
        in CLIENT_STATE::make_scheduler_request()

    Additional bug fix: estimated_delay wasn't being cleared in some cases.


svn path=/trunk/boinc/; revision=17411
2009-02-27 18:46:00 +00:00
Rom Walton 7f0efb5437 - MGR: Make CTRL-SHIFT-A the accelerator in the simple GUI that
switches back to the advanced view.
        refs #147

    clientgui/
        sg_BoincSimpleGUI.cpp, .h

svn path=/trunk/boinc/; revision=17410
2009-02-27 17:04:04 +00:00
David Anderson 58593802de - manager: fix roundoff error in Advanced Prefs; fixes #613
svn path=/trunk/boinc/; revision=17409
2009-02-27 16:42:56 +00:00
Charlie Fenton 1b39ca2315 screensaver: remove error codes & messages handled by new default gfx app, add new error codes; better logic when coordinator window covered on Mac
svn path=/trunk/boinc/; revision=17408
2009-02-27 11:20:08 +00:00
David Anderson debef2bfc1 - boinccmd: make --get_messages output more readable
svn path=/trunk/boinc/; revision=17407
2009-02-27 00:53:15 +00:00
David Anderson 6a8e754f62 - screensaver: show correct info if CPU throttling;
show correct window title;
		show "no projects" message.

svn path=/trunk/boinc/; revision=17405
2009-02-26 23:32:29 +00:00
David Anderson 97b82d4685 - client: shuffle the startup code to avoid showing wrong prefs info
on first-time startup.
- client: don't do an RPC until we've done CPU benchmarks.
    We need the benchmark values to fill in app_version.flops

svn path=/trunk/boinc/; revision=17404
2009-02-26 22:41:48 +00:00
David Anderson ed3e3b0063 - client: fix bug where if a GPU job is running,
and a 2nd GPU job with an earlier deadline arrives,
    neither job is executed ever.
    Reorganized things so that scheduling of GPU jobs is
    done independently of CPU jobs.
    The policy for GPU jobs:
    - always EDF
    - jobs are always removed from memory, regardless of checkpoint
    (GPU memory is not paged, so it's bad to leave an idle app in memory)

svn path=/trunk/boinc/; revision=17402
2009-02-26 21:36:41 +00:00
Rom Walton cdb3304941 - MGR: Remove the ability to display graphics on a remote computer,
or from a remote computer on *nix machines using v5 graphics.
        fixes #674
        
    clientgui/
        ViewWork.cpp

svn path=/trunk/boinc/; revision=17401
2009-02-26 18:32:07 +00:00
David Anderson f1fa1dc5dc - client: skip the above elapsed-time check for non-CPU-intensive jobs
svn path=/trunk/boinc/; revision=17400
2009-02-26 17:59:38 +00:00
David Anderson feab684b3d - client: abort jobs that are unstarted and past deadline
- client: abort runaway jobs based on elapsed time instead of CPU time.
    Specifically, abort jobs for which
    elapsed time > WU.rsc_fpops_bound / app_version.flops
    This policy works for
    1) GPU jobs (which may use little CPU time)
    2) jobs that run but because of bugs use little CPU time
        (e.g., because they're sleeping)
    whereas the old policy didn't.

svn path=/trunk/boinc/; revision=17399
2009-02-26 17:51:38 +00:00
David Anderson 41fe3e40bf - client: tag messages with project where possible; fixes #852
- client: show fetch share rather than run share in wfd message

svn path=/trunk/boinc/; revision=17398
2009-02-26 17:12:55 +00:00
David Anderson 31e7127776 - client: make timeout values into #defines
svn path=/trunk/boinc/; revision=17396
2009-02-26 03:24:39 +00:00
David Anderson dcc3bbe36f - scheduler: slight code cleanup
svn path=/trunk/boinc/; revision=17395
2009-02-26 03:03:35 +00:00
Charlie Fenton 5f6aaf5d08 Fix a compiler error and a compiler warning
svn path=/trunk/boinc/; revision=17394
2009-02-26 02:31:33 +00:00
David Anderson 019ab4cdfc - API: file descriptor leak in obscure case.
fixes #103


svn path=/trunk/boinc/; revision=17391
2009-02-26 01:11:37 +00:00
David Anderson 2e2eacc2f5 - client: if you put <host_venue> in global_prefs_override.xml,
it should select the venue from the network prefs.
    Now it does.


svn path=/trunk/boinc/; revision=17389
2009-02-26 00:52: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
Rom Walton a44e2e9c24 - MGR: Remove the /s parameter from the argument list on Linux
until we know it is supported.  Fixes #615
        
    clientgui/
        BOINCGUIApp.cpp

svn path=/trunk/boinc/; revision=17385
2009-02-25 20:51:56 +00:00
David Anderson de2bacab35 - boinccmd: fix bug in --set_proxy_settings command
(it wasn't setting the "use_XXX" flags).  Fixes #776
- client: you can now include a <proxy_info> element
    in your cc_config.xml options.

TODO: the whole proxy info thing needs an overhaul:
- no separate "use_XXX" flags;
    non-empty http_server_name implies using HTTP proxy, etc.
- merge PROXY_INFO and GR_PROXY_INFO classes
- use XML_PARSER for parsing
- no PROXY_INFO element in HTTP_OP; just use gstate.proxy_info

svn path=/trunk/boinc/; revision=17379
2009-02-25 19:18:41 +00:00
David Anderson 3a8078bd5f - client: fix bugs in "abort_jobs_on_exit" feature:
- clear project backoffs when start abort sequence
    - don't back off projects if in abort sequence

svn path=/trunk/boinc/; revision=17375
2009-02-25 17:41:22 +00:00
Rom Walton e778824e81 - WINSCR: Remove unneeded header files
- SCR: Shuffle headers around so that it'll build on both Windows and
        Mac without having to put in duplicate entries.
        
    clientscr/
        screensaver.cpp

svn path=/trunk/boinc/; revision=17370
2009-02-25 14:56:48 +00:00
Rom Walton 39ec4ad5f2 Quick Updates
svn path=/trunk/boinc/; revision=17363
2009-02-25 00:26:25 +00:00
Rom Walton 956b06f624 - WINSCR: Remove the progress indication code from the coordinator.
It is not handled by the default screensaver app.
    - WINSCR: Clean-up some of the thread cleanup logic.
    
    clientscr/
        screensaver_win.cpp

svn path=/trunk/boinc/; revision=17349
2009-02-24 20:00:02 +00:00
Charlie Fenton 6ff6bda42d screensaver: Fix a bug I introduced during code consolidation
svn path=/trunk/boinc/; revision=17346
2009-02-24 12:47:54 +00:00
David Anderson 3709c1e9f4 - scheduler: include driver version in the CUDA description string
storing in the database;
- web: display the above

svn path=/trunk/boinc/; revision=17341
2009-02-24 00:06:45 +00:00
Charlie Fenton fd1e7b33ca screensaver: Code consolidation, fix bug terminating default graphics app on screensaver exit
svn path=/trunk/boinc/; revision=17339
2009-02-23 23:06:03 +00:00
David Anderson 125c90d1da - client: work-fetch bug fix: if we're fetching work for a starved
project, it most have no runnable jobs for ANY resource.
- client: work-fetch bug fix: when setting requests in the
    shortfall case, don't request anything if project is backed off
    or overworked for the resource.

svn path=/trunk/boinc/; revision=17338
2009-02-23 21:34:13 +00:00
David Anderson f257101d36 - client: fix work-fetch bug that caused infinite fetch;
cleanup/reorganization of work fetch logic

svn path=/trunk/boinc/; revision=17337
2009-02-23 20:35:52 +00:00
Rom Walton b402864705 - WINSCR: Fix the BOINC text displayed is the screensaver control
panel applet
    - WINSCR: Get rid of the 'Up to 5 second wait' for the data thread
        to terminate.  Force terminate the thread and clean up the
        graphics app in a clean-up routine.  Forcing the user to wait
        when they return to the system isn't a good idea.
    - WINSCR: Fix screensaver issue where the screensaver locks up
        when the graphics application deadlocks for one reason or
        another.
        
        Create two new threads:
          1. Monitor system for keyboard and mouse events.
          2. Shuffle window z-order positions if needed.
          
        The keyboard/mouse event monitor is isolated from either
          the core client getting stuck in a loop and not returning
          the results of an RPC or the window shuffling code which
          can get stuck if the graphics application dead locks.
          
        The window shuffle code is isolated due to the
          BroadcastSystemMessage() API using something akin to
          SendMessage() which waits for a return value from the
          target windows winproc.  If a graphics application
          deadlocks for one reason or another it'll cause
          the thread to stall.  This isn't terminal and so we
          just wait for the next time the data thread chooses
          a new application and terminates the old one which
          will cause the thread to resume.
          
        This should resolve all outstanding issues with the
          screensaver not exiting when the mouse or keyboard
          is used.
          
    clientscr/
        boinc_ss.rc
        screensaver.cpp
        screensaver_win.cpp, .h

svn path=/trunk/boinc/; revision=17336
2009-02-23 06:09:16 +00:00
David Anderson 2574afb41c - client: more instances of showing project with message. Fixes #848
svn path=/trunk/boinc/; revision=17335
2009-02-23 04:54:04 +00:00
David Anderson 26f4f33b22 - client: print message if downloaded file has wrong size
- client: associate file xfer messages with a project; fixes #848

svn path=/trunk/boinc/; revision=17334
2009-02-22 20:54:33 +00:00
David Anderson 7001c6f7c5 - client: tweak the LTD calculation so that the largest debt
always tends towards zero

svn path=/trunk/boinc/; revision=17333
2009-02-22 15:40:44 +00:00
David Anderson 16ca7cd359 svn path=/trunk/boinc/; revision=17332 2009-02-22 04:05:34 +00:00
Charlie Fenton 73dc776567 pdate various source filed to GPL 3
svn path=/trunk/boinc/; revision=17330
2009-02-21 02:42:50 +00:00
David Anderson 7c77fa14f3 - client: fix bug that can cause no GPU jobs to be scheduled
even when a GPU is free

svn path=/trunk/boinc/; revision=17329
2009-02-21 01:09:29 +00:00
David Anderson 3b31a9d803 - client: remove the "debt repair" mechanism added earlier today.
There are situations where multiple projects can legitimately
    have large negative LTD on a uniprocessor.
    Instead...
- client: add <zero_debts> option to cc_config.xml

svn path=/trunk/boinc/; revision=17328
2009-02-20 22:16:03 +00:00
David Anderson 6241fff21f - client: new work-fetch policy:
1) if an instance is idle, get work from highest-debt project,
        even if it's overworked.
    2) if resource has a shortfall, get work from highest-debt
        non-overworked project
    3) if there's a fetchable non-overworked project with no runnable jobs,
        get from from the highest-debt one.
    (each step is done first for GPU, then CPU)
    Clause 3) is new.
    It will cause the client to get jobs for as many projects as possible,
    even if there is no shortfall.
    This is necessary to make the notion of "overworked" meaningful
    (otherwise, any project with long jobs can become overworked).
    It also maintains as much variety as possible (like pre-6.6 clients).

    Also (small bug fix) if a project is overworked for resource R,
    request work for R only in case 1).


svn path=/trunk/boinc/; revision=17327
2009-02-20 21:44:39 +00:00
David Anderson f7f2f85b79 - client: if a project is at max backoff for a resource,
stop accumulating debt if it's at or around zero.
        This prevents other projects from being driven unboundedly negative.
    - client: if the number of overworked projects exceeds the number
        of device instances, clear debts; this indicates that an earlier
        client was buggy and produced bad debt values.

svn path=/trunk/boinc/; revision=17325
2009-02-20 18:37:27 +00:00
Charlie Fenton f0d4cff76b lib: Fix build break on Windows
svn path=/trunk/boinc/; revision=17324
2009-02-20 12:31:24 +00:00
Charlie Fenton 1956446863 update checkin_notes
svn path=/trunk/boinc/; revision=17323
2009-02-20 11:50:48 +00:00
Charlie Fenton b4c78c27b4 screensaver: Implement new screensaver coordinator logic as requested by Rom.
svn path=/trunk/boinc/; revision=17322
2009-02-20 11:49:49 +00:00
Charlie Fenton 72e5c0fc0d screensaver: Implement --test and --retry_connect command-line arguments as requested by Rom
svn path=/trunk/boinc/; revision=17321
2009-02-20 02:33:11 +00:00
David Anderson 8973e39479 - client: don't complain that master URLs differ if it's only in case
svn path=/trunk/boinc/; revision=17310
2009-02-19 21:34:48 +00:00
David Anderson 72c57735eb - client: add more info to <work_fetch_debug> messages
svn path=/trunk/boinc/; revision=17309
2009-02-19 21:32:54 +00:00
David Anderson 99a15ab052 - web: in lists of tasks, give the option of showing names instead of IDs
svn path=/trunk/boinc/; revision=17308
2009-02-19 18:39:03 +00:00
David Anderson 65679139c5 - scheduler: make host.p_features available to app_plan()
svn path=/trunk/boinc/; revision=17307
2009-02-19 15:43:37 +00:00
David Anderson d848e54518 - web tweaks
svn path=/trunk/boinc/; revision=17306
2009-02-19 05:03:02 +00:00