Commit Graph

34 Commits

Author SHA1 Message Date
David Anderson ce9f195d6d Win bug fix
svn path=/trunk/boinc/; revision=21274
2010-04-24 03:28:57 +00:00
David Anderson cc8ea9de3c - client: Win: kill runaway apps using TerminateProcess()
rather than TerminateProcessById().
    The latter doesn't work in protected mode.
- client: pid_handle => process_handle.  misnomer

svn path=/trunk/boinc/; revision=21272
2010-04-23 22:31:08 +00:00
David Anderson d4bb95d5a6 - client: when a GPU job finishes, clear the "schedule backoff"
of other jobs of that type.
		They're waiting for GPU RAM, which may now be available.
	- client: bug fix in GPU RAM availability
	- client: fix testing setup for GPU RAM availability

svn path=/trunk/boinc/; revision=21206
2010-04-18 05:29:29 +00:00
Rom Walton e14e1cad34 - Remove BOINC_RCSID tags from source files, we are doing branching and tagging
properly.
        
    <Various Files>

svn path=/trunk/boinc/; revision=20873
2010-03-12 16:51:57 +00:00
David Anderson 8f3d111f5c - client: don't suspend non-CPU-intensive jobs because of CPU load
svn path=/trunk/boinc/; revision=20825
2010-03-10 18:59:40 +00:00
David Anderson 2a12a8fb8b - client: if suspending apps because of CPU benchmarks,
leave them in memory

svn path=/trunk/boinc/; revision=20765
2010-03-02 01:24:03 +00:00
David Anderson f10384af43 - client: add <stderr_head> config option;
sends the first rather than last 64KB of stderr to server.
    This doesn't belong here; this choice should come from the server.
    I may take this out later.
- user web: when add a private message, always add a notification

svn path=/trunk/boinc/; revision=20141
2010-01-12 18:39:59 +00:00
David Anderson 92294d06e7 - client: fix bug in insufficient video RAM feature
- client: improve CPU sched debug msgs
	- client: fix "temporary exit" feature

svn path=/trunk/boinc/; revision=19900
2009-12-14 19:24:06 +00:00
Charlie Fenton 1410703182 API and client: Fix bugs in recent chack-ins.
svn path=/trunk/boinc/; revision=19882
2009-12-14 05:26:21 +00:00
David Anderson a3f80676b7 - API and client: add an API function boinc_temporary_exit(dt).
This exits the app with status zero and no finish file,
    so the client will restart it.
    It creates a file "temporary_exit" containing dt.
    The (new) client reads this file and will postpone
    scheduling the job again for dt seconds.
    Old clients will treat it as a premature exit,
    and potentially try to reschedule the job immediately.

    This function is intended for GPU applications that
    fail to allocate GPU RAM,
    presumably because a non-GPU application has it allocated.
    We don't want the job to fail,
    and we want to wait for a while before trying the allocation again.

svn path=/trunk/boinc/; revision=19879
2009-12-13 05:16:40 +00:00
David Anderson a02630589c - client (Unix): use waitpid(-1, ...) instead of waitpid(0, ...).
This reaps child processes even if they've changed their process group
    (from Michael Melanson)


svn path=/trunk/boinc/; revision=19536
2009-11-11 00:28:51 +00:00
Rom Walton 10fb940425 - client: Fix crash that was introduced 7 months ago.
(From Nicolás Alvarez)
        
    client/
        app_control.cpp


svn path=/trunk/boinc/; revision=19265
2009-10-05 22:42:06 +00:00
David Anderson 6b39ae7dbe - client: add <fraction_done> to boinc_task_state.xml
svn path=/trunk/boinc/; revision=19050
2009-09-13 00:53:11 +00:00
David Anderson 563a55f37e - client/libs/samples: remove "#define read _read" etc. from boinc_win.h
These cause problems when "read" is a member name, etc.
		Do these #defines, conditioned on _MSC_VER,
		in the files that actually need them.
	- don't include boinc_win.h from parse.h.
		principle of minimal inclusion

svn path=/trunk/boinc/; revision=18902
2009-08-22 17:00:19 +00:00
David Anderson 1dba786d7b - API: add boinc_elapsed_time() to get elapsed time since start of episode;
add APP_INIT_DATA::starting_elapsed_time to get
    elapsed time from previous episodes

svn path=/trunk/boinc/; revision=18535
2009-07-01 17:35:56 +00:00
David Anderson 575565dc22 - client: fixed nasty bug that caused GPU jobs to crash on startup
when they're preempting another GPU job.
        The problem was as follows:
        - job A is chosen to preempt job B
        - we tell job B to quit, and initialize job A but don't start it;
            however, we set if scheduler state to SCHEDULED
            (rather than UNINITIALIZED)
        - job B exits, and we start job A.
            Since its state is not UNITIALIZED, we don't set up its slot dir.
        - job A runs in an empty slot dir, doesn't find its files, and bombs out.
    - client: add <slot_debug> option (prints messages about
        allocation of slots, creating/removing files in slot dirs).

svn path=/trunk/boinc/; revision=18217
2009-05-28 19:26:27 +00:00
David Anderson 217b1a6086 - client: another try at fixing the above crash
- web: don't show plan class in separate column in apps list; fixes #874

svn path=/trunk/boinc/; revision=17838
2009-04-17 01:22:38 +00:00
David Anderson 20adddc862 - client: fixed a crash caused by using %f to write
working-set size into a fixed-size buffer.
    Use %e instead.
    TODO: figure out why WSS was huge.
- web: if "en" is primary language, don't read translation files

svn path=/trunk/boinc/; revision=17831
2009-04-16 09:01:41 +00:00
David Anderson af93af28f7 - client: eliminate the need to write the state file on each checkpoint.
Instead, write the info into a file in the slot directory,
		and check for these files on startup.
		This should reduce the overhead of state-file writing
		on machines with lots of cores.
		There will still be a flurry of writes each time a job finishes,
		but reducing that overhead would be a larger job.
	- client: make sure we write the state file after a failed RPC

svn path=/trunk/boinc/; revision=17814
2009-04-15 06:22:53 +00:00
Rom Walton 4b40bac424 - client: handle power events on Windows via a seperate thread and
hidden window.  The basic code was already in place to handle
        logoff events on Win9x but now it is enabled for all Windows
        versions.
        
    client/
        app_control.cpp
        main.cpp, .h

svn path=/trunk/boinc/; revision=17649
2009-03-24 16:57:28 +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 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 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 34af99f2a2 - client: if time intervals for debt adjustment or job elapsed time
are negative, ignore (must be clock reset)

svn path=/trunk/boinc/; revision=17158
2009-02-05 21:48:42 +00:00
David Anderson af86d4326f - client: when accounting job elapsed time,
ignore intervals longer than 10 secs;
    that could only happen if the client or host was suspended/hibernated.
- client: in adjust_debts(), ignore intervals longer than
    2*work fetch period, not 2*CPU sched period.
    adjust_debts() is called from work fetch.

svn path=/trunk/boinc/; revision=17154
2009-02-05 20:16:28 +00:00
David Anderson be177ee7a4 - client: clear debts when reset project
- client: respect work-fetch backoff for non-CPU-intensive projects
	- client: for non-CPU-intensive project, fetch new job
		if no currently running jobs
	- client: skip non-CPU-intensive projects in debt calculations
	- manager: show resource backoff times correctly

svn path=/trunk/boinc/; revision=16998
2009-01-23 18:29:28 +00:00
David Anderson 298fb2a328 svn path=/trunk/boinc/; revision=16993 2009-01-23 00:06:55 +00:00
David Anderson 57518b9a43 - client: when preempting a process, remove it from memory if:
1) it uses a coprocessor
    2) it has checkpointed since the client started
    3) it's being preempted because of a user action
        (suspend job, project, or all processing)
        or user preference (time of day, computer in use)
- scheduler: if shared mem seg doesn't exist,
    report it and don't crash

svn path=/trunk/boinc/; revision=16992
2009-01-23 00:02:39 +00:00
David Anderson 3900bca13e - client: fix bug that caused estimated time to completion to increase
while processing suspended

svn path=/trunk/boinc/; revision=16907
2009-01-14 22:31:50 +00:00
David Anderson 8c591e31df - client: first whack at new work-fetch logic. Very preliminary.
svn path=/trunk/boinc/; revision=16754
2008-12-31 23:07:59 +00:00
David Anderson 122f61996a - client: estimate time to completion based on elapsed time, not CPU time
(improves estimates for coproc apps)

svn path=/trunk/boinc/; revision=16600
2008-12-02 17:48:29 +00:00
David Anderson eae866f743 - client: for CPU throttling, don't suspend apps that
are non-CPU-intensive or that use < 1 CPU (e.g., CUDA)
	- client: get rid of spurious "internal error,
		expected process to be executing" msg
	- diag: don't check heap on every alloc
	- fix a few compile warnings

svn path=/trunk/boinc/; revision=16323
2008-10-27 20:17:22 +00:00
David Anderson 98cfb8d3b0 - rename .C files to .cpp so that Doxygen will work
svn path=/trunk/boinc/; revision=16069
2008-09-26 18:20:24 +00:00